From b0d6df575c32f8cebd352c342657e1928648bdf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alu=C3=ADsio=20Augusto=20Silva=20Gon=C3=A7alves?= Date: Sun, 18 Aug 2019 13:37:45 -0300 Subject: [PATCH] dyndnsc: init at 0.5.1 --- .../networking/dyndns/dyndnsc/default.nix | 59 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/applications/networking/dyndns/dyndnsc/default.nix diff --git a/pkgs/applications/networking/dyndns/dyndnsc/default.nix b/pkgs/applications/networking/dyndns/dyndnsc/default.nix new file mode 100644 index 00000000000..65d46305741 --- /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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4420d2f0bc9..c36c6236a6d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2037,6 +2037,8 @@ in dyncall = callPackage ../development/libraries/dyncall { }; + dyndnsc = callPackage ../applications/networking/dyndns/dyndnsc { }; + earlyoom = callPackage ../os-specific/linux/earlyoom { }; EBTKS = callPackage ../development/libraries/science/biology/EBTKS { };