biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / networking / dyndns / dyndnsc / default.nix
blob6a9a57d67c3b185d78074792a106a48c1dc9dd41
1 { lib, python3Packages, fetchPypi, stdenv }:
3 python3Packages.buildPythonApplication rec {
4   pname = "dyndnsc";
5   version = "0.6.1";
7   src = fetchPypi {
8     inherit pname version;
9     sha256 = "13078d29eea2f9a4ca01f05676c3309ead5e341dab047e0d51c46f23d4b7fbb4";
10   };
12   postPatch = ''
13     substituteInPlace setup.py --replace "bottle==" "bottle>="
14   '';
16   nativeBuildInputs = with python3Packages; [ pytest-runner ];
17   propagatedBuildInputs = with python3Packages; [
18     daemonocle
19     dnspython
20     netifaces
21     requests
22     json-logging
23     setuptools
24   ];
25   nativeCheckInputs = with python3Packages; [ bottle mock pytest-console-scripts pytestCheckHook ];
27   disabledTests = [
28     # dnswanip connects to an external server to discover the
29     # machine's IP address.
30     "dnswanip"
31   ] ++ lib.optionals stdenv.isDarwin [
32     # The tests that spawn a server using Bottle cannot be run on
33     # macOS or Windows as the default multiprocessing start method
34     # on those platforms is 'spawn', which requires the code to be
35     # run to be picklable, which this code isn't.
36     # Additionaly, other start methods are unsafe and prone to failure
37     # on macOS; see https://bugs.python.org/issue33725.
38     "BottleServer"
39   ];
40   # Allow tests that bind or connect to localhost on macOS.
41   __darwinAllowLocalNetworking = true;
43   meta = with lib; {
44     description = "Dynamic DNS update client with support for multiple protocols";
45     mainProgram = "dyndnsc";
46     longDescription = ''
47       Dyndnsc is a command line client for sending updates to Dynamic
48       DNS (DDNS, DynDNS) services.  It supports multiple protocols and
49       services, and it has native support for IPv6.  The configuration
50       file allows using foreign, but compatible services.  Dyndnsc
51       ships many different IP detection mechanisms, support for
52       configuring multiple services in one place and it has a daemon
53       mode for running unattended.  It has a plugin system to provide
54       external notification services.
55     '';
56     homepage = "https://github.com/infothrill/python-dyndnsc";
57     license = licenses.mit;
58     maintainers = with maintainers; [ AluisioASG ];
59     platforms = platforms.unix;
60   };