From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59585) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fcvXg-0001NF-L8 for guix-patches@gnu.org; Tue, 10 Jul 2018 12:31:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fcvXa-0000qX-Nr for guix-patches@gnu.org; Tue, 10 Jul 2018 12:31:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:46335) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fcvXa-0000qR-K9 for guix-patches@gnu.org; Tue, 10 Jul 2018 12:31:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fcvXa-0001AA-Bw for guix-patches@gnu.org; Tue, 10 Jul 2018 12:31:02 -0400 Subject: [bug#32114] [PATCH] gnu: Add ddclient. Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59260) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fcvWu-0000wW-CA for guix-patches@gnu.org; Tue, 10 Jul 2018 12:30:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fcvWp-0000RN-Mr for guix-patches@gnu.org; Tue, 10 Jul 2018 12:30:20 -0400 Received: from mail-lf0-x233.google.com ([2a00:1450:4010:c07::233]:40175) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fcvWp-0000Qz-4m for guix-patches@gnu.org; Tue, 10 Jul 2018 12:30:15 -0400 Received: by mail-lf0-x233.google.com with SMTP id y200-v6so18826375lfd.7 for ; Tue, 10 Jul 2018 09:30:15 -0700 (PDT) From: Oleg Pykhalov Date: Tue, 10 Jul 2018 19:29:55 +0300 Message-Id: <20180710162955.10895-1-go.wigust@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 32114@debbugs.gnu.org * 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 ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017 Gregor Giesen +;;; Copyright © 2018 Oleg Pykhalov ;;; ;;; 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 +@uref{https://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