[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#32114] [PATCH] gnu: Add ddclient.
From: |
Nils Gillmann |
Subject: |
[bug#32114] [PATCH] gnu: Add ddclient. |
Date: |
Wed, 11 Jul 2018 06:27:58 +0000 |
Oleg Pykhalov transcribed 4.8K bytes:
> * gnu/packages/dns.scm (ddclient): New variable.
> ---
> gnu/packages/dns.scm | 85 +++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 84 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
> index 78479b2d3..b17016909 100644
> --- a/gnu/packages/dns.scm
> +++ b/gnu/packages/dns.scm
> @@ -9,6 +9,7 @@
> ;;; Copyright © 2016 Marius Bakke <address@hidden>
> ;;; Copyright © 2017 Vasile Dumitrascu <address@hidden>
> ;;; Copyright © 2017 Gregor Giesen <address@hidden>
> +;;; Copyright © 2018 Oleg Pykhalov <address@hidden>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -29,7 +30,9 @@
> #:use-module (gnu packages admin)
> #:use-module (gnu packages autotools)
> #:use-module (gnu packages base)
> + #:use-module (gnu packages bash)
> #:use-module (gnu packages databases)
> + #:use-module (gnu packages compression)
> #:use-module (gnu packages crypto)
> #:use-module (gnu packages datastructures)
> #:use-module (gnu packages flex)
> @@ -55,7 +58,8 @@
> #:use-module (guix packages)
> #:use-module (guix download)
> #:use-module (guix utils)
> - #:use-module (guix build-system gnu))
> + #:use-module (guix build-system gnu)
> + #:use-module (guix build-system trivial))
>
> (define-public dnsmasq
> (package
> @@ -576,3 +580,82 @@ synthesis, and on-the-fly re-configuration.")
> license:lgpl2.0+ ; parts of scr/contrib/ucw
> license:public-domain ; src/contrib/fnv and possibly
> murmurhash3
> license:gpl3+)))) ; everything else
> +
> +(define-public ddclient
> + (package
> + (name "ddclient")
> + (version "3.8.3")
> + (source (origin
> + (method url-fetch)
> + (uri (string-append
> "mirror://sourceforge/ddclient/ddclient/ddclient-"
> + version "/ddclient-" version ".tar.gz"))
> + (sha256
> + (base32
> + "1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy"))))
> + (build-system trivial-build-system)
> + (native-inputs
> + `(("bash" ,bash)
> + ("gzip" ,gzip)
> + ("perl" ,perl)
> + ("tar" ,tar)))
> + (inputs
> + `(("net-tools" ,net-tools)
> + ("perl-io-socket-ssl" ,perl-io-socket-ssl)
> + ("perl-digest-sha1" ,perl-digest-sha1)))
> + (arguments
> + `(#:modules ((guix build utils)
> + (ice-9 match)
> + (srfi srfi-26))
> + #:builder
> + (begin
> + (use-modules (guix build utils)
> + (ice-9 match)
> + (srfi srfi-26))
> + ;; bootstrap
> + (setenv "PATH" (string-append
> + (assoc-ref %build-inputs "bash") "/bin" ":"
> + (assoc-ref %build-inputs "tar") "/bin" ":"
> + (assoc-ref %build-inputs "gzip") "/bin" ":"
> + (assoc-ref %build-inputs "perl") "/bin"))
> + ;; extract source
> + (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
> + ;; package
> + (with-directory-excursion (string-append ,name "-" ,version)
> + (let* ((out (assoc-ref %outputs "out"))
> + (bin (string-append out "/bin")))
> + (let ((file "ddclient"))
> + (substitute* file
> + (("/usr/bin/perl") (which "perl")))
> + (install-file file bin)
> + (wrap-program (string-append bin "/" file)
> + `("PATH" ":" =
> + ("$PATH"
> + ,@(map (lambda (input)
> + (match input
> + ((name . store)
> + (string-append store "/bin"))))
> + %build-inputs)))
> + `("PERL5LIB" ":" =
> + ,(delete
> + ""
> + (map (match-lambda
> + (((? (cut string-prefix? "perl-" <>) name) . dir)
> + (string-append dir "/lib/perl5/site_perl"))
> + (_ ""))
> + %build-inputs)))))
> + (for-each (cut install-file <> (string-append out
> +
> "/share/ddclient"))
> + (find-files "." "sample.*$")))))))
> + (home-page "https://sourceforge.net/projects/ddclient/")
> + (synopsis "Address updating utility for dynamic DNS services")
> + (description "This package provides a client to update dynamic IP
> +addresses with several dynamic DNS service providers, such as
> address@hidden://www.dyndns.com/account/login.html,DynDNS.com}.
> +
> +This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to
> +access a machine with a dynamic IP address.
> +
> +This client supports both dynamic and (near) static services, as well as MX
> +record and alternative name management. It caches the address, and only
> +attempts the update when it has changed.")
> + (license license:gpl2+)))
> --
> 2.18.0
Looks good to me. maybe replace the "This" repetition in the description?