about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix6
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/services/networking/wicd.nix40
-rw-r--r--pkgs/applications/misc/taskopen/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix4
-rw-r--r--pkgs/applications/video/kodi-packages/youtube/default.nix4
-rw-r--r--pkgs/development/compilers/fstar/default.nix4
-rw-r--r--pkgs/development/libraries/libsigcxx/3.0.nix4
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix3
-rw-r--r--pkgs/development/tools/sslmate/default.nix4
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix2
-rw-r--r--pkgs/tools/backup/zfs-autobackup/default.nix33
-rw-r--r--pkgs/tools/networking/linux-router/default.nix81
-rw-r--r--pkgs/tools/networking/networkmanager/libnma/default.nix4
-rw-r--r--pkgs/tools/networking/wicd/default.nix121
-rw-r--r--pkgs/tools/networking/wicd/dhclient.patch120
-rw-r--r--pkgs/tools/networking/wicd/fix-app-icon.patch19
-rw-r--r--pkgs/tools/networking/wicd/fix-curses.patch15
-rw-r--r--pkgs/tools/networking/wicd/fix-gtk-issues.patch47
-rw-r--r--pkgs/tools/networking/wicd/no-optimization.patch21
-rw-r--r--pkgs/tools/networking/wicd/no-var-install.patch17
-rw-r--r--pkgs/tools/networking/wicd/pygtk.patch15
-rw-r--r--pkgs/tools/networking/wicd/urwid-api-update.patch21
-rw-r--r--pkgs/tools/networking/wicd/wpa2-ttls20
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix8
-rw-r--r--pkgs/top-level/release-small.nix1
30 files changed, 154 insertions, 478 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index c2ff4cec169f8..628a42ce1f00e 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -11838,6 +11838,12 @@
     githubId = 3992240;
     name = "Elijah Rum";
   };
+  x3ro = {
+    name = "^x3ro";
+    email = "nix@x3ro.dev";
+    github = "x3rAx";
+    githubId = 2268851;
+  };
   xaverdh = {
     email = "hoe.dom@gmx.de";
     github = "xaverdh";
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 3bc7c01d7ac02..76cc4411babac 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -874,7 +874,6 @@
   ./services/networking/wasabibackend.nix
   ./services/networking/websockify.nix
   ./services/networking/wg-quick.nix
-  ./services/networking/wicd.nix
   ./services/networking/wireguard.nix
   ./services/networking/wpa_supplicant.nix
   ./services/networking/xandikos.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 233e3ee848be8..4db6efb75d82e 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -27,6 +27,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
+    (mkRemovedOptionModule [ "networking" "wicd" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
     (mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")
     (mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
diff --git a/nixos/modules/services/networking/wicd.nix b/nixos/modules/services/networking/wicd.nix
deleted file mode 100644
index aa10a50f876a7..0000000000000
--- a/nixos/modules/services/networking/wicd.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-{
-
-  ###### interface
-
-  options = {
-
-    networking.wicd.enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Whether to start <command>wicd</command>. Wired and
-        wireless network configurations can then be managed by
-        wicd-client.
-      '';
-    };
-  };
-
-
-  ###### implementation
-
-  config = mkIf config.networking.wicd.enable {
-
-    environment.systemPackages = [pkgs.wicd];
-
-    systemd.services.wicd = {
-      after = [ "network-pre.target" ];
-      before = [ "network.target" ];
-      wants = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      script = "${pkgs.wicd}/sbin/wicd -f";
-    };
-
-    services.dbus.enable = true;
-    services.dbus.packages = [pkgs.wicd];
-  };
-}
diff --git a/pkgs/applications/misc/taskopen/default.nix b/pkgs/applications/misc/taskopen/default.nix
index 8933faf5fb012..91790359af4ed 100644
--- a/pkgs/applications/misc/taskopen/default.nix
+++ b/pkgs/applications/misc/taskopen/default.nix
@@ -1,10 +1,10 @@
 { fetchurl, lib, stdenv, makeWrapper, which, perl, perlPackages }:
 
 stdenv.mkDerivation {
-  name = "taskopen-1.1.4";
+  name = "taskopen-1.1.5";
   src = fetchurl {
-    url = "https://github.com/ValiValpas/taskopen/archive/v1.1.4.tar.gz";
-    sha256 = "774dd89f5c92462098dd6227e181268e5ec9930bbc569f25784000df185c71ba";
+    url = "https://github.com/ValiValpas/taskopen/archive/v1.1.5.tar.gz";
+    sha256 = "sha256-7fncdt1wCJ4zNLrCf93yRFD8Q4XQ3DCJ1+zJg9Gcl3w=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index a2be79f5589fc..6d9f62e75ab39 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,3 +1,8 @@
+# Update instructions:
+#
+# To update `thunderbird-bin`'s `release_sources.nix`, run from the nixpkgs root:
+#
+#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.firefox-bin-unwrapped
 { stdenv, lib, fetchurl, config, makeWrapper
 , alsa-lib
 , at-spi2-atk
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 314d2141de7e7..0be69104a5fef 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -44,12 +44,12 @@ rec {
 
   thunderbird-78 = common rec {
     pname = "thunderbird";
-    version = "78.13.0";
+    version = "78.14.0";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "daee9ea9e57bdfce231a35029807f279a06f8790d71efc8998c78eb42d99a93cf98623170947df99202da038f949ba9111a7ff7adbd43c161794deb6791370a0";
+      sha512 = "0zan30jvv45pd6i59l2kfyfjwivqk5qq6vyf77xhss2dk8qhk3mfrfxpfbkrab676l14b9hs09nr6ni1h1iwn82zx5k7fx5x8sh5dx6";
     };
     patches = [
       ./no-buildconfig-78.patch
diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
index fcf53e7a16946..7698e6619d91c 100644
--- a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
+++ b/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
@@ -2,11 +2,11 @@
 buildKodiAddon rec {
   pname = "inputstreamhelper";
   namespace = "script.module.inputstreamhelper";
-  version = "0.5.5+matrix.1";
+  version = "0.5.8+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "0y4xn3ygwv1kb7gya7iwdga0g9sa89snpnram0wwqzqn8wn2lyb4";
+    sha256 = "xdsUzmz8ji9JcYLEUFWwvXq0Oig5i08VPQD93K8R9hk=";
   };
 
   passthru = {
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi-packages/youtube/default.nix
index 8e57adbfb1af7..7c16aa606f240 100644
--- a/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/pkgs/applications/video/kodi-packages/youtube/default.nix
@@ -3,11 +3,11 @@
 buildKodiAddon rec {
   pname = "youtube";
   namespace = "plugin.video.youtube";
-  version = "6.8.14+matrix.1";
+  version = "6.8.17+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "1a18whh3fisprwipwhxf26kc958sxhwpvs8pxwq2sq96vr7b4xq7";
+    sha256 = "AuYoUyv0DDtHnxFiNl3AF5jrMjuNRXdlJvw7d7b+yh8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index 0ef2e89f123a1..dac50fc781bbc 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -17,13 +17,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "fstar";
-  version = "2021.08.27";
+  version = "2021.09.11";
 
   src = fetchFromGitHub {
     owner = "FStarLang";
     repo = "FStar";
     rev = "v${version}";
-    sha256 = "1bf5hrv2nv0ljvdf6jhk59lw1ds3j5qkkcylgxwakylw30g8rxqb";
+    sha256 = "1aqk6fx77zcb7mcm78dk4l4zzd323qiv7yc7hvc38494yf6gk8a0";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/libraries/libsigcxx/3.0.nix b/pkgs/development/libraries/libsigcxx/3.0.nix
index edb74c807bfa2..92229811207f3 100644
--- a/pkgs/development/libraries/libsigcxx/3.0.nix
+++ b/pkgs/development/libraries/libsigcxx/3.0.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libsigc++";
-  version = "3.0.6";
+  version = "3.0.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "tw7c9GEWUcVKQm4QmxcZbh+hfaCQWSpQAOLRNMA6xc4=";
+    sha256 = "v76RwNCU6mu8bL05CbfZjGVh7qi22cDCWt2Qam6D1zM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index a6638fc6ff494..f9535ac0f31fa 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -112,6 +112,9 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require a git repository
     "test_get_version"
+    # https://github.com/mitmproxy/mitmproxy/commit/36ebf11916704b3cdaf4be840eaafa66a115ac03
+    # Tests require terminal
+    "test_integration"
   ];
 
   pythonImportsCheck = [ "mitmproxy" ];
diff --git a/pkgs/development/tools/sslmate/default.nix b/pkgs/development/tools/sslmate/default.nix
index ede6364fa0678..2371600a7f4f4 100644
--- a/pkgs/development/tools/sslmate/default.nix
+++ b/pkgs/development/tools/sslmate/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sslmate";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://packages.sslmate.com/other/${pname}-${version}.tar.gz";
-    sha256 = "1i56za41cfqlml9g787xqqs0r8jifd3y7ks9nf4k2dhhi4rijkj5";
+    sha256 = "sha256-A1TkGi6b1psWflN0ogM1r/pYSVXcOi6aQEb6xtOsAsk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 23e78dd848edd..564fbca37ba8e 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg -DluaL_getn(L,i)=((int)lua_objlen(L,i))";
 
   preConfigure = ''
-    cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl")
+    cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl -labsl_synchronization")
 
     export INSTALL_MOD_PATH="$out"
   '' + optionalString (kernel != null) ''
diff --git a/pkgs/tools/backup/zfs-autobackup/default.nix b/pkgs/tools/backup/zfs-autobackup/default.nix
new file mode 100644
index 0000000000000..f6a684084661a
--- /dev/null
+++ b/pkgs/tools/backup/zfs-autobackup/default.nix
@@ -0,0 +1,33 @@
+{ lib, python3Packages }:
+
+let
+  pythonPackages = python3Packages;
+
+in
+pythonPackages.buildPythonApplication rec {
+  pname = "zfs_autobackup";
+  version = "3.1";
+
+  src = pythonPackages.fetchPypi {
+    inherit pname version;
+    sha256 = "42c22001717b3d7cfdae6297fedc11b2dd1eb2a4bd25b6bb1c9232dd3b70ad67";
+  };
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "argparse" ""
+  '';
+
+  propagatedBuildInputs = with pythonPackages; [ colorama ];
+
+  # tests need zfs filesystem
+  doCheck = false;
+  pythonImportsCheck = [ "colorama" "argparse" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/psy0rz/zfs_autobackup";
+    description = "ZFS backup, replicationand snapshot tool";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ mschneider ];
+  };
+}
diff --git a/pkgs/tools/networking/linux-router/default.nix b/pkgs/tools/networking/linux-router/default.nix
new file mode 100644
index 0000000000000..a378a729c7b5f
--- /dev/null
+++ b/pkgs/tools/networking/linux-router/default.nix
@@ -0,0 +1,81 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+
+# --- Runtime Dependencies ---
+, bash, procps, iproute2, dnsmasq, iptables
+, coreutils, flock, gawk, getopt, gnugrep, gnused, which
+# `nmcli` is not required for create_ap.
+# Use NetworkManager by default because it is very likely already present
+, useNetworkManager ? true
+, networkmanager
+
+# --- WiFi Hotspot Dependencies ---
+, useWifiDependencies ? true
+, hostapd, iw
+# You only need this if 'iw' can not recognize your adapter.
+, useWirelessTools ? true
+, wirelesstools # for iwconfig
+# To fall back to haveged if entropy is low.
+# Defaulting to false because not having it does not break things.
+# If it is really needed, warnings will be logged to journal.
+, useHaveged ? false
+, haveged
+# You only need this if you wish to show WiFi QR codes in terminal
+, useQrencode ? true
+, qrencode
+}:
+
+stdenv.mkDerivation rec {
+  pname = "linux-router";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "garywill";
+    repo = "linux-router";
+    rev = "${version}";
+    sha256 = "193bnlwmjxsk0cri6xdylf218qayldn02pdnppvbd39ls361776z";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = with lib; let
+      binPath = makeBinPath ([ procps iproute2 getopt bash dnsmasq
+        iptables coreutils which flock gnugrep gnused gawk ]
+        ++ optional useNetworkManager                          networkmanager
+        ++ optional useWifiDependencies                        hostapd
+        ++ optional useWifiDependencies                        iw
+        ++ optional (useWifiDependencies && useWirelessTools)  wirelesstools
+        ++ optional (useWifiDependencies && useHaveged)        haveged
+        ++ optional (useWifiDependencies && useQrencode)       qrencode);
+    in
+    ''
+      mkdir -p $out/bin/ $out/.bin-wrapped
+      mv lnxrouter $out/.bin-wrapped/lnxrouter
+      makeWrapper $out/.bin-wrapped/lnxrouter $out/bin/lnxrouter --prefix PATH : ${binPath}
+    '';
+
+  meta = with lib; {
+    homepage = "https://github.com/garywill/linux-router";
+    description = "Set Linux as router / Wifi hotspot / proxy in one command";
+    longDescription = ''
+      Features:
+
+      - Create a NATed sub-network
+      - Provide Internet
+      - DHCP server and RA
+      - DNS server
+      - IPv6 (behind NATed LAN, like IPv4)
+      - Creating Wifi hotspot:
+        - Channel selecting
+        - Choose encryptions: WPA2/WPA, WPA2, WPA, No encryption
+        - Create AP on the same interface you are getting Internet (require same channel)
+      - Transparent proxy (redsocks)
+      - DNS proxy
+      - Compatible with NetworkManager (automatically set interface as unmanaged)
+    '';
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ x3ro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/networkmanager/libnma/default.nix b/pkgs/tools/networking/networkmanager/libnma/default.nix
index 50fc66a8d68b2..14a7e11aade1f 100644
--- a/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.30";
+  version = "1.8.32";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys";
+    sha256 = "Cle5Oi+tQ6zHY/Mg3Tp6k8QpsOMRjfpUnWeCTN3E6QU=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/wicd/default.nix b/pkgs/tools/networking/wicd/default.nix
deleted file mode 100644
index e4eb0a2cdc8c8..0000000000000
--- a/pkgs/tools/networking/wicd/default.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-{ lib, stdenv, fetchurl, python2Packages
-, wpa_supplicant, dhcp, dhcpcd, wirelesstools
-, nettools, openresolv, iproute2, iputils }:
-
-let
-  inherit (python2Packages) python pygobject2 dbus-python pyGtkGlade pycairo;
-in stdenv.mkDerivation rec {
-  pname = "wicd";
-  version = "1.7.2.4";
-
-  src = fetchurl {
-    url = "https://launchpad.net/wicd/1.7/${version}/+download/${pname}-${version}.tar.gz";
-    sha256 = "15ywgh60xzmp5z8l1kzics7yi95isrjg1paz42dvp7dlpdfzpzfw";
-  };
-
-  buildInputs = with python2Packages; [
-    python Babel urwid notify
-  ];
-
-  patches = [
-    ./no-var-install.patch
-    ./pygtk.patch
-    ./no-optimization.patch
-    ./dhclient.patch
-    ./fix-app-icon.patch
-    ./fix-gtk-issues.patch
-    ./urwid-api-update.patch
-    ./fix-curses.patch
-    ];
-
-  # Should I be using pygtk's propagated build inputs?
-  # !!! Should use makeWrapper.
-  postPatch = ''
-    # We don't have "python2".
-    substituteInPlace wicd/wicd-daemon.py --replace 'misc.find_path("python2")' "'${python.interpreter}'"
-
-    substituteInPlace in/scripts=wicd.in --subst-var-by TEMPLATE-DEFAULT $out/share/other/dhclient.conf.template.default
-
-    sed -i "2iexport PATH=${lib.makeBinPath [ python wpa_supplicant dhcpcd dhcp wirelesstools nettools nettools iputils openresolv iproute2 ]}\$\{PATH:+:\}\$PATH" in/scripts=wicd.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pygobject2}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-client.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-client.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-gtk.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pygobject2})/gtk-2.0:$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.notify})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-gtk.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-cli.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-cli.in
-    sed -i "2iexport PATH=${python}/bin\$\{PATH:+:\}\$PATH" in/scripts=wicd-curses.in
-    sed -i "3iexport PYTHONPATH=$(toPythonPath $out):$(toPythonPath ${pyGtkGlade})/gtk-2.0:$(toPythonPath ${pygobject2}):$(toPythonPath ${pycairo}):$(toPythonPath ${dbus-python}):$(toPythonPath ${python2Packages.urwid})\$\{PYTHONPATH:+:\}\$PYTHONPATH" in/scripts=wicd-curses.in
-    rm po/ast.po
-  '';
-
-  configurePhase = ''
-    python setup.py configure \
-    --lib=$out/lib/ \
-    --share=$out/share/ \
-    --etc=/var/lib/wicd/ \
-    --scripts=$out/etc/scripts/ \
-    --pixmaps=$out/share/pixmaps/ \
-    --images=$out/share/pixmaps/wicd/ \
-    --encryption=$out/etc/encryption/templates/ \
-    --bin=$out/bin/ \
-    --sbin=$out/sbin/ \
-    --backends=$out/share/backends/ \
-    --daemon=$out/share/daemon/ \
-    --curses=$out/share/curses/ \
-    --gtk=$out/share/gtk/ \
-    --cli=$out/share/cli/ \
-    --networks=/var/lib/wicd/configurations/ \
-    --resume=$out/etc/acpi/resume.d/ \
-    --suspend=$out/etc/acpi/suspend.d/ \
-    --pmutils=$out/lib/pm-utils/sleep.d/ \
-    --dbus=$out/etc/dbus-1/system.d/ \
-    --dbus-service=$out/etc/dbus-1/system-services/ \
-    --systemd=$out/lib/systemd/ \
-    --logrotate=$out/etc/logrotate.d/ \
-    --desktop=$out/share/applications/ \
-    --icons=$out/share/icons/hicolor/ \
-    --translations=$out/share/locale/ \
-    --autostart=$out/etc/xdg/autostart/ \
-    --varlib=$out/var/lib/ \
-    --docdir=$out/share/doc/ \
-    --mandir=$out/share/man/ \
-    --kdedir=$out/share/autostart/ \
-    --python=${python}/bin/python \
-    --distro=nix \
-    --wicdgroup=users \
-    --no-install-init \
-    --no-install-kde \
-    --no-install-acpi \
-    --no-install-pmutils \
-  '';
-
-  installPhase = ''
-    python setup.py install --prefix=$out --install-lib=$out/${python.sitePackages}
-    mkdir -p $out/share/other
-    cp other/dhclient.conf.template.default $out/share/other/dhclient.conf.template.default
-
-    # Add a template for "WPA2 Enterprise" encryption as used, e.g., by the
-    # Eduroam network.  Taken and adapted from
-    # <http://wicd.net/punbb/viewtopic.php?id=87>.
-    cp -v "${./wpa2-ttls}" "$out/etc/encryption/templates/wpa2-ttls"
-    echo "wpa2-ttls" >> "$out/etc/encryption/templates/active"
-  '';
-
-  meta = with lib; {
-    homepage = "http://wicd.net/";
-    description = "A wiredless and wired network manager";
-    longDescription=''
-      A complete network connection manager
-      Wicd supports wired and wireless networks, and capable of
-      creating and tracking profiles for both.  It has a
-      template-based wireless encryption system, which allows the user
-      to easily add encryption methods used.  It ships with some common
-      encryption types, such as WPA and WEP. Wicd will automatically
-      connect at startup to any preferred network within range.
-    '';
-    maintainers = [ maintainers.roconnor ];
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/tools/networking/wicd/dhclient.patch b/pkgs/tools/networking/wicd/dhclient.patch
deleted file mode 100644
index fbda1caacb7a2..0000000000000
--- a/pkgs/tools/networking/wicd/dhclient.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/wicd/wicd-daemon.py wicd-1.7.2.4/wicd/wicd-daemon.py
---- wicd-1.7.2.4.orig/wicd/wicd-daemon.py	2013-06-22 18:55:02.641242947 +0000
-+++ wicd-1.7.2.4/wicd/wicd-daemon.py	2013-06-22 18:58:33.990244153 +0000
-@@ -69,6 +69,7 @@
- wireless_conf = os.path.join(wpath.etc, "wireless-settings.conf")
- wired_conf = os.path.join(wpath.etc, "wired-settings.conf")
- dhclient_conf = os.path.join(wpath.etc, "dhclient.conf.template")
-+dhclient_conf_default = os.path.join(wpath.share, "other", "dhclient.conf.template.default")
- 
- class WicdDaemon(dbus.service.Object):
-     """ The main wicd daemon class.
-@@ -910,7 +911,7 @@
- 
-         if not os.path.isfile(dhclient_conf):
-             print "dhclient.conf.template not found, copying..."
--            shutil.copy(dhclient_conf + ".default", dhclient_conf)            
-+            shutil.copy(dhclient_conf_default, dhclient_conf)
-         # Hide the files, so the keys aren't exposed.
-         print "chmoding configuration files 0600..."
-         os.chmod(app_conf.get_config(), 0600)diff -ruN wicd-1.7.2.4.orig/wicd/wnettools.py wicd-1.7.2.4/wicd/wnettools.py
---- wicd-1.7.2.4.orig/wicd/wnettools.py	2013-03-30 21:47:19.804907552 +0000
-+++ wicd-1.7.2.4/wicd/wnettools.py	2013-03-31 08:44:37.572792110 +0000
-@@ -37,6 +37,7 @@
- import time
- from string import maketrans, translate
- 
-+import tempfile
- import wpath
- import misc
- from misc import find_path 
-@@ -216,6 +217,7 @@
-         self.flush_tool = None
-         self.link_detect = None       
-         self.dhcp_object = None
-+        self.dhclient_conf_path = None;
-     
-     def SetDebugMode(self, value):
-         """ If True, verbose output is enabled. """
-@@ -277,12 +279,6 @@
-                 cmd = ""
-             return (client, cmd)
- 
--                # probably /var/lib/wicd/dhclient.conf with defaults
--        dhclient_conf_path = os.path.join(
--                    wpath.varlib,
--                    'dhclient.conf'
--                )
--        
-         client_dict = {
-             "dhclient" : 
-                 {'connect' : r"%(cmd)s -cf %(dhclientconf)s %(iface)s",
-@@ -307,41 +303,44 @@
-         }
-         (client_name, cmd) = get_client_name(self.DHCP_CLIENT)
- 
--        # cause dhclient doesn't have a handy dandy argument
--        # for specifing the hostname to be sent
--        if client_name == "dhclient" and flavor:
--            if hostname == None:
--                # <hostname> will use the system hostname
--                # we'll use that if there is hostname passed
--                # that shouldn't happen, though
--                hostname = '<hostname>'
--            print 'attempting to set hostname with dhclient'
--            print 'using dhcpcd or another supported client may work better'
--            dhclient_template = \
--                open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
--
--            output_conf = open(dhclient_conf_path, 'w')
--
--            for line in dhclient_template.readlines():
--                line = line.replace('$_HOSTNAME', hostname)
--                output_conf.write(line)
--
--            output_conf.close()
--            dhclient_template.close()
--            os.chmod(dhclient_conf_path, 0644)
--
-         if not client_name or not cmd:
-             print "WARNING: Failed to find a valid dhcp client!"
-             return ""
-             
-         if flavor == "connect":
-+            # cause dhclient doesn't have a handy dandy argument
-+            # for specifing the hostname to be sent
-+            if client_name == "dhclient" and flavor:
-+                if hostname == None:
-+                    # <hostname> will use the system hostname
-+                    # we'll use that if there is hostname passed
-+                    # that shouldn't happen, though
-+                    hostname = '<hostname>'
-+                print 'attempting to set hostname with dhclient'
-+                print 'using dhcpcd or another supported client may work better'
-+                if not self.dhclient_conf_path:
-+                    _,self.dhclient_conf_path = tempfile.mkstemp()
-+                    print 'New dhclient conf path: %s ' % self.dhclient_conf_path
-+                dhclient_template = \
-+                    open(os.path.join(wpath.etc, 'dhclient.conf.template'), 'r')
-+
-+                output_conf = open(self.dhclient_conf_path, 'w')
-+
-+                for line in dhclient_template.readlines():
-+                    line = line.replace('$_HOSTNAME', hostname)
-+                    output_conf.write(line)
-+
-+                output_conf.close()
-+                dhclient_template.close()
-+                os.chmod(self.dhclient_conf_path, 0644)
-+
-             if not hostname:
-                 hostname = os.uname()[1]
-             return client_dict[client_name]['connect'] % \
-                     { "cmd" : cmd,
-                       "iface" : self.iface,
-                       "hostname" : hostname,
--                      'dhclientconf' : dhclient_conf_path }
-+                      'dhclientconf' : self.dhclient_conf_path }
-         elif flavor == "release":
-             return client_dict[client_name]['release'] % {"cmd":cmd, "iface":self.iface}
-         else:
diff --git a/pkgs/tools/networking/wicd/fix-app-icon.patch b/pkgs/tools/networking/wicd/fix-app-icon.patch
deleted file mode 100644
index 31b47bb45881b..0000000000000
--- a/pkgs/tools/networking/wicd/fix-app-icon.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Someone forgot to pack wicd.png icon. We will replace it with existing one.
-
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-30 21:47:19.802907553 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 08:13:32.876871673 +0000
-@@ -205,8 +205,10 @@
- 
-         self.status_area.hide_all()
- 
--        if os.path.exists(os.path.join(wpath.images, "wicd.png")):
--            self.window.set_icon_from_file(os.path.join(wpath.images, "wicd.png"))
-+        if os.path.exists(os.path.join(wpath.images, "../../icons/hicolour/128x128/apps/wicd-gtk.png")):
-+            self.window.set_icon_from_file(os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png"))
-+        else:
-+            print 'icon doesn\'t exist %s' % os.path.join(wpath.images, "../../icons/hicolor/128x128/apps/wicd-gtk.png")
-         self.statusID = None
-         self.first_dialog_load = True
-         self.is_visible = True
-
diff --git a/pkgs/tools/networking/wicd/fix-curses.patch b/pkgs/tools/networking/wicd/fix-curses.patch
deleted file mode 100644
index 138dfbabfd5c3..0000000000000
--- a/pkgs/tools/networking/wicd/fix-curses.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/curses/wicd-curses.py	2015-01-27 22:35:25.414781192 -0300
-+++ b/curses/wicd-curses.py	2015-01-28 01:13:48.078904587 -0300
-@@ -1153,9 +1153,10 @@
-         if not ui._started:
-             return False
- 
--        input_data = ui.get_input_nonblocking()
-+        ui.set_input_timeouts(max_wait=0)
-+        input_data = ui.get_input()
-         # Resolve any "alarms" in the waiting
--        self.handle_keys(input_data[1])
-+        self.handle_keys(input_data)
- 
-         # Update the screen
-         canvas = self.frame.render((self.size), True)
diff --git a/pkgs/tools/networking/wicd/fix-gtk-issues.patch b/pkgs/tools/networking/wicd/fix-gtk-issues.patch
deleted file mode 100644
index 31e553b46b507..0000000000000
--- a/pkgs/tools/networking/wicd/fix-gtk-issues.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-diff -ruN wicd-1.7.2.4.orig/gtk/gui.py wicd-1.7.2.4/gtk/gui.py
---- wicd-1.7.2.4.orig/gtk/gui.py	2013-03-31 17:01:29.367001288 +0000
-+++ wicd-1.7.2.4/gtk/gui.py	2013-03-31 17:55:20.826028396 +0000
-@@ -35,7 +35,7 @@
- from wicd import misc
- from wicd import wpath
- from wicd import dbusmanager
--from wicd.misc import noneToString
-+from wicd.misc import noneToString, _status_dict
- from wicd.translations import _, language
- import prefs
- from prefs import PreferencesDialog
-@@ -250,7 +250,7 @@
-         
-     def handle_connection_results(self, results):
-         if results not in ['success', 'aborted'] and self.is_visible:
--            error(self.window, language[results], block=False)
-+            error(self.window, misc._status_dict[results], block=False)
- 
-     def create_adhoc_network(self, widget=None):
-         """ Shows a dialog that creates a new adhoc network. """
-diff -ruN wicd-1.7.2.4.orig/po/ru.po wicd-1.7.2.4/po/ru.po
---- wicd-1.7.2.4.orig/po/ru.po	2013-03-31 17:01:29.362001288 +0000
-+++ wicd-1.7.2.4/po/ru.po	2013-03-31 17:43:37.909022515 +0000
-@@ -173,7 +173,7 @@
- 
- #: wicd/misc.py:79
- msgid "Connection Failed: Bad password"
--msgstr "Ошибка соединения: Неверный пароль:"
-+msgstr "Ошибка соединения: Неверный пароль"
- 
- #: wicd/misc.py:89
- msgid "Connection Failed: No DHCP offers received."
-diff -ruN wicd-1.7.2.4.orig/wicd/misc.py wicd-1.7.2.4/wicd/misc.py
---- wicd-1.7.2.4.orig/wicd/misc.py	2013-03-31 17:01:29.369001288 +0000
-+++ wicd-1.7.2.4/wicd/misc.py	2013-03-31 17:23:56.822012593 +0000
-@@ -430,7 +430,9 @@
-     """ Sanitize property names to be used in config-files. """
-     allowed = string.ascii_letters + '_' + string.digits
-     table = string.maketrans(allowed, ' ' * len(allowed))
--    return s.translate(None, table)
-+    #return s.translate(None, table)
-+    #return s.translate(table)
-+    return s
- 
- def sanitize_escaped(s):
-     """ Sanitize double-escaped unicode strings. """
diff --git a/pkgs/tools/networking/wicd/no-optimization.patch b/pkgs/tools/networking/wicd/no-optimization.patch
deleted file mode 100644
index 785cae7b6ed5c..0000000000000
--- a/pkgs/tools/networking/wicd/no-optimization.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-With optimizations on, python will overwrite the nix store.
-
---- wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:09.733096865 -0400
-+++ wicd-1.7.0/in/scripts=wicd.in  2011-04-05 14:31:16.397096864 -0400
-@@ -1,3 +1,3 @@
- #!/bin/bash
- 
--exec %PYTHON% -O %SHARE%daemon/wicd-daemon.py $@
-+exec %PYTHON% -B %SHARE%daemon/wicd-daemon.py $@
-
---- wicd-1.7.2.4/wicd/wicd-daemon.py  2012-04-30 21:19:45.000000000 +0200
-+++ wicd-1.7.2.4/wicd/wicd-daemon.pynew       2013-03-14 21:35:23.250306592 +0100
-@@ -1812,7 +1812,7 @@
-     daemon = WicdDaemon(wicd_bus, auto_connect=auto_connect)
-     child_pid = None
-     if not no_poll:
--        child_pid = Popen([wpath.python, "-O", 
-+        child_pid = Popen([wpath.python, "-B", 
-                           os.path.join(wpath.daemon, "monitor.py")],
-                           shell=False, close_fds=True).pid
-     atexit.register(on_exit, child_pid)
diff --git a/pkgs/tools/networking/wicd/no-var-install.patch b/pkgs/tools/networking/wicd/no-var-install.patch
deleted file mode 100644
index b01f0e5a438ac..0000000000000
--- a/pkgs/tools/networking/wicd/no-var-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-The install tries to create files in /var.  This patch removes those steps.
-
---- wicd-1.7.2.4/setup.py     2013-03-14 21:28:21.360580941 +0100
-+++ wicd-1.7.2.4/setup.py  2013-03-14 21:22:50.125721943 +0100
-@@ -505,11 +505,8 @@
-         (wpath.dbus_service, ['other/org.wicd.daemon.service']),
-         (wpath.systemd, ['other/wicd.service']),
-         (wpath.logrotate, ['other/wicd.logrotate']),
--        (wpath.log, [empty_file]), 
--        (wpath.etc, ['other/dhclient.conf.template.default']),
-         (wpath.encryption, [('encryption/templates/' + b) for b in 
-                             os.listdir('encryption/templates') if not b.startswith('.')]),
--        (wpath.networks, [empty_file]),
-         (wpath.sbin,  ['scripts/wicd']),  
-         (wpath.daemon, ['wicd/monitor.py', 'wicd/wicd-daemon.py',
-                     'wicd/suspend.py', 'wicd/autoconnect.py']), 
-
diff --git a/pkgs/tools/networking/wicd/pygtk.patch b/pkgs/tools/networking/wicd/pygtk.patch
deleted file mode 100644
index f015e50d684a6..0000000000000
--- a/pkgs/tools/networking/wicd/pygtk.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-For some reason nix's pygtk doesn't have a pygtk module so we remove the version check.
-If this ever changes we could remove this patch.
-
---- wicd-1.7.0/gtk/wicd-client.py	2009-09-01 11:05:31.000000000 -0400
-+++ wicd-1.7.0/gtk/wicd-client.py	2009-12-28 00:22:57.000000000 -0500
-@@ -43,9 +43,6 @@
- import atexit
- from dbus import DBusException
- 
--import pygtk
--pygtk.require('2.0')
--
- HAS_NOTIFY = True
- try:
-     import pynotify
diff --git a/pkgs/tools/networking/wicd/urwid-api-update.patch b/pkgs/tools/networking/wicd/urwid-api-update.patch
deleted file mode 100644
index a794f6caaeeed..0000000000000
--- a/pkgs/tools/networking/wicd/urwid-api-update.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/curses/curses_misc.py
-+++ a/curses/curses_misc.py
-@@ -358,6 +358,19 @@ class ComboBox(urwid.WidgetWrap):
-         self.parent = None
-         self.ui = None
-         self.row = None
-+
-+    @property
-+    def focus(self):
-+        return self._focus
-+
-+    @focus.setter
-+    def focus(self, index):
-+        self._focus = index
-+
-+    @focus.deleter
-+    def focus(self):
-+        del self._focus
-+
-     def set_list(self,list):
-         self.list = list
diff --git a/pkgs/tools/networking/wicd/wpa2-ttls b/pkgs/tools/networking/wicd/wpa2-ttls
deleted file mode 100644
index 650375cbbaae8..0000000000000
--- a/pkgs/tools/networking/wicd/wpa2-ttls
+++ /dev/null
@@ -1,20 +0,0 @@
-name = WPA2-TTLS
-author = various contributors
-version = 1
-require identity *Identity anonymous_identity *Anonymous_identity password *Password ca_cert *Path_to_CA_Cert
-protected password *Password
------
-ctrl_interface=/run/wpa_supplicant
-network={
-        ssid="$_ESSID"
-        scan_ssid=$_SCAN
-        proto=WPA2
-        key_mgmt=WPA-EAP
-        group=CCMP TKIP
-        eap=TTLS
-        identity="$_IDENTITY"
-        password="$_PASSWORD"
-        anonymous_identity="$_ANONYMOUS_IDENTITY"
-        ca_cert="$_CA_CERT"
-        phase2="auth=PAP"
-}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index a4ca99052728a..dde0c63b9aad6 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -981,6 +981,7 @@ mapAliases ({
   webkitgtk24x-gtk3 = throw "webkitgtk24x-gtk3 has been removed because it's insecure. Please use webkitgtk."; # added 2019-12-05
   webkitgtk24x-gtk2 = throw "webkitgtk24x-gtk2 has been removed because it's insecure. Please use webkitgtk."; # added 2019-12-05
   weechat-matrix-bridge = weechatScripts.weechat-matrix-bridge; # added 2018-09-06
+  wicd = throw "wicd has been removed as it is abandoned."; # added 2021-09-11
   wineStaging = wine-staging; # added 2018-01-08
   winusb = woeusb; # added 2017-12-22
   winstone = throw "winstone is not supported anymore. Alternatives are Jetty or Tomcat."; # added 2019-05-14
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3168c3a1a3dd9..da57cd40a45ae 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -899,6 +899,10 @@ with pkgs;
 
   gofu = callPackage ../applications/misc/gofu { };
 
+  linux-router = callPackage ../tools/networking/linux-router { };
+
+  linux-router-without-wifi = linux-router.override { useWifiDependencies = false; };
+
   metapixel = callPackage ../tools/graphics/metapixel { };
 
   pferd = callPackage ../tools/misc/pferd {};
@@ -10358,8 +10362,6 @@ with pkgs;
 
   chase = callPackage ../tools/system/chase { };
 
-  wicd = callPackage ../tools/networking/wicd { };
-
   wimlib = callPackage ../tools/archivers/wimlib { };
 
   wipe = callPackage ../tools/security/wipe { };
@@ -10565,6 +10567,8 @@ with pkgs;
 
   zerofree = callPackage ../tools/filesystems/zerofree { };
 
+  zfs-autobackup = callPackage ../tools/backup/zfs-autobackup { };
+
   zfsbackup = callPackage ../tools/backup/zfsbackup { };
 
   zfstools = callPackage ../tools/filesystems/zfstools { };
diff --git a/pkgs/top-level/release-small.nix b/pkgs/top-level/release-small.nix
index 47c47e04e1cc0..66c6bb3734842 100644
--- a/pkgs/top-level/release-small.nix
+++ b/pkgs/top-level/release-small.nix
@@ -166,7 +166,6 @@ with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
   webkitgtk = linux;
   wget = all;
   which = all;
-  wicd = linux;
   wireshark = linux;
   wirelesstools = linux;
   wpa_supplicant = linux;