about summary refs log tree commit diff
path: root/pkgs/applications/networking/dyndns
diff options
context:
space:
mode:
authorAluísio Augusto Silva Gonçalves <aluisio@aasg.name>2019-08-18 13:37:45 -0300
committerAluísio Augusto Silva Gonçalves <aluisio@aasg.name>2020-12-02 17:44:04 -0300
commitb0d6df575c32f8cebd352c342657e1928648bdf4 (patch)
tree124eec0f1d0be6f6382cec275695390e5d499d8b /pkgs/applications/networking/dyndns
parent799cfd954519843dccfd656a5732200e62846168 (diff)
dyndnsc: init at 0.5.1
Diffstat (limited to 'pkgs/applications/networking/dyndns')
-rw-r--r--pkgs/applications/networking/dyndns/dyndnsc/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
new file mode 100644
index 0000000000000..65d4630574162
--- /dev/null
+++ b/pkgs/applications/networking/dyndns/dyndnsc/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "dyndnsc";
+  version = "0.5.1";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    hash = "sha256-Sy6U0XhIQ9mPmznmWKqoyqE34vaE84fwlivouaF7Dd0=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "bottle==" "bottle>="
+  '';
+
+  nativeBuildInputs = with python3Packages; [ pytestrunner ];
+  propagatedBuildInputs = with python3Packages; [
+    daemonocle
+    dnspython
+    netifaces
+    requests
+    setuptools
+  ];
+  checkInputs = with python3Packages; [ bottle pytestCheckHook ];
+
+  disabledTests = [
+    # dnswanip connects to an external server to discover the
+    # machine's IP address.
+    "dnswanip"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # The tests that spawn a server using Bottle cannot be run on
+    # macOS or Windows as the default multiprocessing start method
+    # on those platforms is 'spawn', which requires the code to be
+    # run to be picklable, which this code isn't.
+    # Additionaly, other start methods are unsafe and prone to failure
+    # on macOS; see https://bugs.python.org/issue33725.
+    "BottleServer"
+  ];
+  # Allow tests that bind or connect to localhost on macOS.
+  __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Dynamic DNS update client with support for multiple protocols";
+    longDescription = ''
+      Dyndnsc is a command line client for sending updates to Dynamic
+      DNS (DDNS, DynDNS) services.  It supports multiple protocols and
+      services, and it has native support for IPv6.  The configuration
+      file allows using foreign, but compatible services.  Dyndnsc
+      ships many different IP detection mechanisms, support for
+      configuring multiple services in one place and it has a daemon
+      mode for running unattended.  It has a plugin system to provide
+      external notification services.
+    '';
+    homepage = "https://github.com/infothrill/python-dyndnsc";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AluisioASG ];
+    platforms = platforms.unix;
+  };
+}