1{
2 lib,
3 fetchFromGitHub,
4 perlPackages,
5 autoreconfHook,
6 perl,
7 curl,
8}:
9
10let
11 myPerl = perl.withPackages (ps: [ ps.JSONPP ]);
12in
13perlPackages.buildPerlPackage rec {
14 pname = "ddclient";
15 version = "4.0.0";
16
17 outputs = [ "out" ];
18
19 src = fetchFromGitHub {
20 owner = "ddclient";
21 repo = "ddclient";
22 rev = "v${version}";
23 sha256 = "sha256-RCE24RKcW4EhicOTwgz5UE/gzqLxw+UNNk960vFx5Gs=";
24 };
25
26 postPatch = ''
27 touch Makefile.PL
28 '';
29
30 nativeBuildInputs = [ autoreconfHook ];
31
32 buildInputs = [
33 curl
34 myPerl
35 ];
36
37 # Prevent ddclient from picking up build time perl which is implicitly added
38 # by buildPerlPackage.
39 configureFlags = [
40 "--with-perl=${lib.getExe myPerl}"
41 ];
42
43 installPhase = ''
44 runHook preInstall
45
46 install -Dm755 ddclient $out/bin/ddclient
47 install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md
48
49 runHook postInstall
50 '';
51
52 # TODO: run upstream tests
53 doCheck = false;
54
55 meta = with lib; {
56 description = "Client for updating dynamic DNS service entries";
57 homepage = "https://ddclient.net/";
58 license = licenses.gpl2Plus;
59 platforms = platforms.linux;
60 maintainers = with maintainers; [ bjornfor ];
61 mainProgram = "ddclient";
62 };
63}