Merge pull request #105715 from AluisioASG/aasg/dyndnsc

This commit is contained in:
Sandro 2020-12-03 18:56:10 +01:00 committed by GitHub
commit 555641c504
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 105 additions and 0 deletions

View file

@ -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;
};
}

View file

@ -0,0 +1,42 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, click
, psutil
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "daemonocle";
version = "1.0.2";
src = fetchFromGitHub {
owner = "jnrbsn";
repo = "daemonocle";
rev = "v${version}";
hash = "sha256-kDCbosXTIffuCzHcReXhiW4YPbxDW3OPnTbMC/EGJrM=";
};
propagatedBuildInputs = [ click psutil ];
checkInputs = [ pytestCheckHook ];
# One third of the tests fail on the sandbox with
# "psutil.NoSuchProcess: no process found with pid 0".
doCheck = false;
disabledTests = [ "sudo" ];
pythonImportsCheck = [ "daemonocle" ];
meta = with lib; {
description = "A Python library for creating super fancy Unix daemons";
longDescription = ''
daemonocle is a library for creating your own Unix-style daemons
written in Python. It solves many problems that other daemon
libraries have and provides some really useful features you don't
often see in other daemons.
'';
homepage = "https://github.com/jnrbsn/daemonocle";
license = licenses.mit;
maintainers = [ maintainers.AluisioASG ];
platforms = platforms.unix;
};
}

View file

@ -2039,6 +2039,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 { };

View file

@ -1452,6 +1452,8 @@ in {
daemonize = callPackage ../development/python-modules/daemonize { };
daemonocle = callPackage ../development/python-modules/daemonocle { };
daphne = callPackage ../development/python-modules/daphne { };
darcsver = callPackage ../development/python-modules/darcsver { };