unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#64669] [PATCH 0/2] Remove ddclient and its service.
@ 2023-07-16 18:26 Bruno Victal
  2023-07-16 18:29 ` [bug#64669] [PATCH 1/2] Revert "services: Add ddclient service." Bruno Victal
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Bruno Victal @ 2023-07-16 18:26 UTC (permalink / raw)
  To: 64669; +Cc: Bruno Victal

ddclient has been archived by upstream [1] and the service in Guix
has been broken for a while [2]. It's unlikely that either will
receive fixes anytime soon, rather than ship a broken service and a
a package whose days are numbered, remove them.

In an attempt to ensure as little leftovers as possible I used:
   git log --author='Oleg Pykhalov' --follow -- gnu/services/dns.scm
to track down which lines could be removed while accounting for the
copyright notice and modules imported.

Bruno Victal (2):
  Revert "services: Add ddclient service."
  Revert "gnu: Add ddclient."

 doc/guix.texi        | 107 ---------------------------
 gnu/packages/dns.scm |  71 +-----------------
 gnu/services/dns.scm | 168 +------------------------------------------
 3 files changed, 3 insertions(+), 343 deletions(-)


base-commit: 796c823a0d1d0aec9f4af908eca462e58e5675b5
-- 
2.40.1





^ permalink raw reply	[flat|nested] 7+ messages in thread

* [bug#64669] [PATCH 1/2] Revert "services: Add ddclient service."
  2023-07-16 18:26 [bug#64669] [PATCH 0/2] Remove ddclient and its service Bruno Victal
@ 2023-07-16 18:29 ` Bruno Victal
  2023-07-16 18:29 ` [bug#64669] [PATCH 2/2] Revert "gnu: Add ddclient." Bruno Victal
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Bruno Victal @ 2023-07-16 18:29 UTC (permalink / raw)
  To: 64669; +Cc: Bruno Victal

ddclient is unmaintained as of 2023-07-04 [1] and this service has been broken
for a while [2]. Remove it rather than shipping a broken service for an
unmaintained program that's unlikely to be fixed.

[1]: <https://github.com/ddclient/ddclient>
[2]: <https://issues.guix.gnu.org/52770>

This reverts commit 8490a8346b5c8207f5798be55bea1de865b0bd42.
---
 doc/guix.texi        | 107 ---------------------------
 gnu/services/dns.scm | 168 +------------------------------------------
 2 files changed, 1 insertion(+), 274 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 9af1b4417b..6467b09ff4 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -32383,113 +32383,6 @@ DNS Services
 @end table
 @end deftp
 
-@subsubheading ddclient Service
-
-@cindex ddclient
-The ddclient service described below runs the ddclient daemon, which takes
-care of automatically updating DNS entries for service providers such as
-@uref{https://dyn.com/dns/, Dyn}.
-
-The following example show instantiates the service with its default
-configuration:
-
-@lisp
-(service ddclient-service-type)
-@end lisp
-
-Note that ddclient needs to access credentials that are stored in a
-@dfn{secret file}, by default @file{/etc/ddclient/secrets} (see
-@code{secret-file} below).  You are expected to create this file manually, in
-an ``out-of-band'' fashion (you @emph{could} make this file part of the
-service configuration, for instance by using @code{plain-file}, but it will be
-world-readable @i{via} @file{/gnu/store}).  See the examples in the
-@file{share/ddclient} directory of the @code{ddclient} package.
-
-@c %start of fragment
-
-Available @code{ddclient-configuration} fields are:
-
-@deftypevr {@code{ddclient-configuration} parameter} package ddclient
-The ddclient package.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} integer daemon
-The period after which ddclient will retry to check IP and domain name.
-
-Defaults to @samp{300}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean syslog
-Use syslog for the output.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail
-Mail to user.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail-failure
-Mail failed update to user.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string pid
-The ddclient PID file.
-
-Defaults to @samp{"/var/run/ddclient/ddclient.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean ssl
-Enable SSL support.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string user
-Specifies the user name or ID that is used when running ddclient
-program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string group
-Group of the user who will run the ddclient program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string secret-file
-Secret file which will be appended to @file{ddclient.conf} file.  This
-file contains credentials for use by ddclient.  You are expected to
-create it manually.
-
-Defaults to @samp{"/etc/ddclient/secrets.conf"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} list extra-options
-Extra options will be appended to @file{ddclient.conf} file.
-
-Defaults to @samp{'()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
 @node VNC Services
 @subsection VNC Services
 @cindex VNC (virtual network computing)
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index f45fc99c69..6608046909 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -1,6 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
@@ -53,10 +52,7 @@ (define-module (gnu services dns)
             knot-resolver-configuration
 
             dnsmasq-service-type
-            dnsmasq-configuration
-
-            ddclient-service-type
-            ddclient-configuration))
+            dnsmasq-configuration))
 
 ;;;
 ;;; Knot DNS.
@@ -901,165 +897,3 @@ (define dnsmasq-service-type
                              dnsmasq-activation)))
    (default-value (dnsmasq-configuration))
    (description "Run the dnsmasq DNS server.")))
-
-\f
-;;;
-;;; ddclient
-;;;
-
-(define (uglify-field-name field-name)
-  (string-delete #\? (symbol->string field-name)))
-
-(define (serialize-field field-name val)
-  (when (not (member field-name '(group secret-file user)))
-    (format #t "~a=~a\n" (uglify-field-name field-name) val)))
-
-(define (serialize-boolean field-name val)
-  (serialize-field field-name (if val "yes" "no")))
-
-(define (serialize-integer field-name val)
-  (serialize-field field-name (number->string val)))
-
-(define (serialize-string field-name val)
-  (if (and (string? val) (string=? val ""))
-      ""
-      (serialize-field field-name val)))
-
-(define (serialize-list field-name val)
-  (if (null? val) "" (serialize-field field-name (string-join val))))
-
-(define (serialize-extra-options extra-options)
-  (string-join extra-options "\n" 'suffix))
-
-(define-configuration ddclient-configuration
-  (ddclient
-   (file-like ddclient)
-   "The ddclient package.")
-  (daemon
-   (integer 300)
-   "The period after which ddclient will retry to check IP and domain name.")
-  (syslog
-   (boolean #t)
-   "Use syslog for the output.")
-  (mail
-   (string "root")
-   "Mail to user.")
-  (mail-failure
-   (string "root")
-   "Mail failed update to user.")
-  (pid
-   (string "/var/run/ddclient/ddclient.pid")
-   "The ddclient PID file.")
-  (ssl
-   (boolean #t)
-   "Enable SSL support.")
-  (user
-   (string "ddclient")
-   "Specifies the user name or ID that is used when running ddclient
-program.")
-  (group
-   (string "ddclient")
-   "Group of the user who will run the ddclient program.")
-  (secret-file
-   (string "/etc/ddclient/secrets.conf")
-   "Secret file which will be appended to @file{ddclient.conf} file.  This
-file contains credentials for use by ddclient.  You are expected to create it
-manually.")
-  (extra-options
-   (list '())
-   "Extra options will be appended to @file{ddclient.conf} file."))
-
-(define (ddclient-account config)
-  "Return the user accounts and user groups for CONFIG."
-  (let ((ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (user-group
-           (name ddclient-group)
-           (system? #t))
-          (user-account
-           (name ddclient-user)
-           (system? #t)
-           (group ddclient-group)
-           (comment "ddclientd privilege separation user")
-           (home-directory (string-append "/var/run/" ddclient-user))))))
-
-(define (ddclient-activation config)
-  "Return the activation GEXP for CONFIG."
-  (with-imported-modules '((guix build utils))
-    #~(begin
-        (use-modules (guix build utils)
-                     (ice-9 rdelim))
-        (let ((ddclient-user
-               (passwd:uid (getpw #$(ddclient-configuration-user config))))
-              (ddclient-group
-               (passwd:gid (getpw #$(ddclient-configuration-group config))))
-              (ddclient-secret-file
-               #$(ddclient-configuration-secret-file config)))
-          ;; 'ddclient' complains about ddclient.conf file permissions, which
-          ;; rules out /gnu/store.  Thus we copy the ddclient.conf to /etc.
-          (for-each (lambda (dir)
-                      (mkdir-p dir)
-                      (chmod dir #o700)
-                      (chown dir ddclient-user ddclient-group))
-                    '("/var/cache/ddclient" "/var/run/ddclient"
-                      "/etc/ddclient"))
-          (with-output-to-file "/etc/ddclient/ddclient.conf"
-            (lambda ()
-              (display
-               (string-append
-                "# Generated by 'ddclient-service'.\n\n"
-                #$(with-output-to-string
-                    (lambda ()
-                      (serialize-configuration config
-                                               ddclient-configuration-fields)))
-                (if (string-null? ddclient-secret-file)
-                    ""
-                    (format #f "\n\n# Appended from '~a'.\n\n~a"
-                            ddclient-secret-file
-                            (with-input-from-file ddclient-secret-file
-                              read-string)))))))
-          (chmod "/etc/ddclient/ddclient.conf" #o600)
-          (chown "/etc/ddclient/ddclient.conf"
-                 ddclient-user ddclient-group)))))
-
-(define (ddclient-shepherd-service config)
-  "Return a <shepherd-service> for ddclient with CONFIG."
-  (let ((ddclient (ddclient-configuration-ddclient config))
-        (ddclient-pid (ddclient-configuration-pid config))
-        (ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (shepherd-service
-           (provision '(ddclient))
-           (documentation "Run ddclient daemon.")
-           (start #~(make-forkexec-constructor
-                     (list #$(file-append ddclient "/bin/ddclient")
-                           "-foreground"
-                           "-file" "/etc/ddclient/ddclient.conf")
-                     #:pid-file #$ddclient-pid
-                     #:environment-variables
-                     (list "SSL_CERT_DIR=/run/current-system/profile\
-/etc/ssl/certs"
-                           "SSL_CERT_FILE=/run/current-system/profile\
-/etc/ssl/certs/ca-certificates.crt")
-                     #:user #$ddclient-user
-                     #:group #$ddclient-group))
-           (stop #~(make-kill-destructor))))))
-
-(define ddclient-service-type
-  (service-type
-   (name 'ddclient)
-   (extensions
-    (list (service-extension account-service-type
-                             ddclient-account)
-          (service-extension shepherd-root-service-type
-                             ddclient-shepherd-service)
-          (service-extension activation-service-type
-                             ddclient-activation)))
-   (default-value (ddclient-configuration))
-   (description "Configure address updating utility for dynamic DNS services,
-ddclient.")))
-
-(define (generate-ddclient-documentation)
-  (generate-documentation
-   `((ddclient-configuration ,ddclient-configuration-fields))
-   'ddclient-configuration))

base-commit: 796c823a0d1d0aec9f4af908eca462e58e5675b5
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#64669] [PATCH 2/2] Revert "gnu: Add ddclient."
  2023-07-16 18:26 [bug#64669] [PATCH 0/2] Remove ddclient and its service Bruno Victal
  2023-07-16 18:29 ` [bug#64669] [PATCH 1/2] Revert "services: Add ddclient service." Bruno Victal
@ 2023-07-16 18:29 ` Bruno Victal
  2023-07-16 18:47 ` [bug#64669] [PATCH v2 1/2] Revert "services: Add ddclient service." Bruno Victal
  2023-07-16 18:47 ` [bug#64669] [PATCH v2 2/2] gnu: ddclient: Remove package Bruno Victal
  3 siblings, 0 replies; 7+ messages in thread
From: Bruno Victal @ 2023-07-16 18:29 UTC (permalink / raw)
  To: 64669; +Cc: Bruno Victal

ddclient is unmaintained as of 2023-07-04 [1].
This reverts commit 0bc2d3e42b8800e875f24973f999739297f1f502.

[1]: <https://github.com/ddclient/ddclient/issues/528>
---
 gnu/packages/dns.scm | 71 ++------------------------------------------
 1 file changed, 2 insertions(+), 69 deletions(-)

diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 9879998776..adbb1c9439 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
-;;; Copyright © 2018, 2022 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -91,8 +91,7 @@ (define-module (gnu packages dns)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system meson)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system meson))
 
 (define-public cloudflare-cli
   (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
@@ -1069,72 +1068,6 @@ (define-public knot-resolver
                    license:cc0
                    license:lgpl2.0))))
 
-(define-public ddclient
-  (package
-    (name "ddclient")
-    (version "3.10.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ddclient/ddclient")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0l87d72apwrg6ipc9gix5gv64d4hr1ykxmss8x4r8d8mgj6j8rf1"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; XXX: erroneous version value, this is fixed in master
-        #~(begin
-            (substitute* "configure.ac"
-              (("3.10.0_2") #$version))))
-       (patches (search-patches "ddclient-skip-test.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake libtool
-           perl-test-warnings perl-test-mockmodule))
-    (inputs
-     (list inetutils ; logger
-           net-tools
-           bash-minimal                           ;for 'wrap-program'
-           perl
-           perl-digest-sha1
-           perl-io-socket-ssl
-           perl-io-socket-inet6  ;; XXX: this is likely to be removed in a future ddclient release
-                                 ;; https://github.com/ddclient/ddclient/issues/461
-           perl-json))
-    (arguments
-     (list
-      #:configure-flags #~(list "--localstatedir=/var")
-      #:phases
-      #~(modify-phases %standard-phases
-          (replace 'install
-            (lambda _
-              ;; XXX: Do not create /var
-              (invoke "make" "localstatedir=/tmp/discard" "install")))
-          (add-after 'wrap 'wrap-ddclient
-            (lambda* (#:key inputs #:allow-other-keys)
-              (wrap-program (string-append #$output "/bin/ddclient")
-                `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:))
-                `("PATH" prefix ,(map (lambda (x)
-                                        (string-append (assoc-ref inputs x) "/bin"))
-                                      '("inetutils" "net-tools")))))))))
-    (native-search-paths
-     (list $SSL_CERT_DIR $SSL_CERT_FILE))
-    (home-page "https://ddclient.net/")
-    (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.
-
-The 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+)))
-
 (define-public hnsd
    (package
      (name "hnsd")
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#64669] [PATCH v2 1/2] Revert "services: Add ddclient service."
  2023-07-16 18:26 [bug#64669] [PATCH 0/2] Remove ddclient and its service Bruno Victal
  2023-07-16 18:29 ` [bug#64669] [PATCH 1/2] Revert "services: Add ddclient service." Bruno Victal
  2023-07-16 18:29 ` [bug#64669] [PATCH 2/2] Revert "gnu: Add ddclient." Bruno Victal
@ 2023-07-16 18:47 ` Bruno Victal
  2023-07-17 20:17   ` [bug#64669] [PATCH 0/2] Remove ddclient and its service Ludovic Courtès
  2023-07-16 18:47 ` [bug#64669] [PATCH v2 2/2] gnu: ddclient: Remove package Bruno Victal
  3 siblings, 1 reply; 7+ messages in thread
From: Bruno Victal @ 2023-07-16 18:47 UTC (permalink / raw)
  To: 64669; +Cc: Bruno Victal

ddclient is unmaintained as of 2023-07-04 [1] and this service has been broken
for a while [2]. Remove it rather than shipping a broken service for an
unmaintained program that's unlikely to be fixed.

[1]: <https://github.com/ddclient/ddclient>
[2]: <https://issues.guix.gnu.org/52770>

This reverts commit 8490a8346b5c8207f5798be55bea1de865b0bd42.
---
 doc/guix.texi        | 107 ---------------------------
 gnu/services/dns.scm | 168 +------------------------------------------
 2 files changed, 1 insertion(+), 274 deletions(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 9af1b4417b..6467b09ff4 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -32383,113 +32383,6 @@ DNS Services
 @end table
 @end deftp
 
-@subsubheading ddclient Service
-
-@cindex ddclient
-The ddclient service described below runs the ddclient daemon, which takes
-care of automatically updating DNS entries for service providers such as
-@uref{https://dyn.com/dns/, Dyn}.
-
-The following example show instantiates the service with its default
-configuration:
-
-@lisp
-(service ddclient-service-type)
-@end lisp
-
-Note that ddclient needs to access credentials that are stored in a
-@dfn{secret file}, by default @file{/etc/ddclient/secrets} (see
-@code{secret-file} below).  You are expected to create this file manually, in
-an ``out-of-band'' fashion (you @emph{could} make this file part of the
-service configuration, for instance by using @code{plain-file}, but it will be
-world-readable @i{via} @file{/gnu/store}).  See the examples in the
-@file{share/ddclient} directory of the @code{ddclient} package.
-
-@c %start of fragment
-
-Available @code{ddclient-configuration} fields are:
-
-@deftypevr {@code{ddclient-configuration} parameter} package ddclient
-The ddclient package.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} integer daemon
-The period after which ddclient will retry to check IP and domain name.
-
-Defaults to @samp{300}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean syslog
-Use syslog for the output.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail
-Mail to user.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string mail-failure
-Mail failed update to user.
-
-Defaults to @samp{"root"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string pid
-The ddclient PID file.
-
-Defaults to @samp{"/var/run/ddclient/ddclient.pid"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} boolean ssl
-Enable SSL support.
-
-Defaults to @samp{#t}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string user
-Specifies the user name or ID that is used when running ddclient
-program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string group
-Group of the user who will run the ddclient program.
-
-Defaults to @samp{"ddclient"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} string secret-file
-Secret file which will be appended to @file{ddclient.conf} file.  This
-file contains credentials for use by ddclient.  You are expected to
-create it manually.
-
-Defaults to @samp{"/etc/ddclient/secrets.conf"}.
-
-@end deftypevr
-
-@deftypevr {@code{ddclient-configuration} parameter} list extra-options
-Extra options will be appended to @file{ddclient.conf} file.
-
-Defaults to @samp{'()}.
-
-@end deftypevr
-
-
-@c %end of fragment
-
 @node VNC Services
 @subsection VNC Services
 @cindex VNC (virtual network computing)
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index f45fc99c69..6608046909 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -1,6 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
 ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
@@ -53,10 +52,7 @@ (define-module (gnu services dns)
             knot-resolver-configuration
 
             dnsmasq-service-type
-            dnsmasq-configuration
-
-            ddclient-service-type
-            ddclient-configuration))
+            dnsmasq-configuration))
 
 ;;;
 ;;; Knot DNS.
@@ -901,165 +897,3 @@ (define dnsmasq-service-type
                              dnsmasq-activation)))
    (default-value (dnsmasq-configuration))
    (description "Run the dnsmasq DNS server.")))
-
-\f
-;;;
-;;; ddclient
-;;;
-
-(define (uglify-field-name field-name)
-  (string-delete #\? (symbol->string field-name)))
-
-(define (serialize-field field-name val)
-  (when (not (member field-name '(group secret-file user)))
-    (format #t "~a=~a\n" (uglify-field-name field-name) val)))
-
-(define (serialize-boolean field-name val)
-  (serialize-field field-name (if val "yes" "no")))
-
-(define (serialize-integer field-name val)
-  (serialize-field field-name (number->string val)))
-
-(define (serialize-string field-name val)
-  (if (and (string? val) (string=? val ""))
-      ""
-      (serialize-field field-name val)))
-
-(define (serialize-list field-name val)
-  (if (null? val) "" (serialize-field field-name (string-join val))))
-
-(define (serialize-extra-options extra-options)
-  (string-join extra-options "\n" 'suffix))
-
-(define-configuration ddclient-configuration
-  (ddclient
-   (file-like ddclient)
-   "The ddclient package.")
-  (daemon
-   (integer 300)
-   "The period after which ddclient will retry to check IP and domain name.")
-  (syslog
-   (boolean #t)
-   "Use syslog for the output.")
-  (mail
-   (string "root")
-   "Mail to user.")
-  (mail-failure
-   (string "root")
-   "Mail failed update to user.")
-  (pid
-   (string "/var/run/ddclient/ddclient.pid")
-   "The ddclient PID file.")
-  (ssl
-   (boolean #t)
-   "Enable SSL support.")
-  (user
-   (string "ddclient")
-   "Specifies the user name or ID that is used when running ddclient
-program.")
-  (group
-   (string "ddclient")
-   "Group of the user who will run the ddclient program.")
-  (secret-file
-   (string "/etc/ddclient/secrets.conf")
-   "Secret file which will be appended to @file{ddclient.conf} file.  This
-file contains credentials for use by ddclient.  You are expected to create it
-manually.")
-  (extra-options
-   (list '())
-   "Extra options will be appended to @file{ddclient.conf} file."))
-
-(define (ddclient-account config)
-  "Return the user accounts and user groups for CONFIG."
-  (let ((ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (user-group
-           (name ddclient-group)
-           (system? #t))
-          (user-account
-           (name ddclient-user)
-           (system? #t)
-           (group ddclient-group)
-           (comment "ddclientd privilege separation user")
-           (home-directory (string-append "/var/run/" ddclient-user))))))
-
-(define (ddclient-activation config)
-  "Return the activation GEXP for CONFIG."
-  (with-imported-modules '((guix build utils))
-    #~(begin
-        (use-modules (guix build utils)
-                     (ice-9 rdelim))
-        (let ((ddclient-user
-               (passwd:uid (getpw #$(ddclient-configuration-user config))))
-              (ddclient-group
-               (passwd:gid (getpw #$(ddclient-configuration-group config))))
-              (ddclient-secret-file
-               #$(ddclient-configuration-secret-file config)))
-          ;; 'ddclient' complains about ddclient.conf file permissions, which
-          ;; rules out /gnu/store.  Thus we copy the ddclient.conf to /etc.
-          (for-each (lambda (dir)
-                      (mkdir-p dir)
-                      (chmod dir #o700)
-                      (chown dir ddclient-user ddclient-group))
-                    '("/var/cache/ddclient" "/var/run/ddclient"
-                      "/etc/ddclient"))
-          (with-output-to-file "/etc/ddclient/ddclient.conf"
-            (lambda ()
-              (display
-               (string-append
-                "# Generated by 'ddclient-service'.\n\n"
-                #$(with-output-to-string
-                    (lambda ()
-                      (serialize-configuration config
-                                               ddclient-configuration-fields)))
-                (if (string-null? ddclient-secret-file)
-                    ""
-                    (format #f "\n\n# Appended from '~a'.\n\n~a"
-                            ddclient-secret-file
-                            (with-input-from-file ddclient-secret-file
-                              read-string)))))))
-          (chmod "/etc/ddclient/ddclient.conf" #o600)
-          (chown "/etc/ddclient/ddclient.conf"
-                 ddclient-user ddclient-group)))))
-
-(define (ddclient-shepherd-service config)
-  "Return a <shepherd-service> for ddclient with CONFIG."
-  (let ((ddclient (ddclient-configuration-ddclient config))
-        (ddclient-pid (ddclient-configuration-pid config))
-        (ddclient-user (ddclient-configuration-user config))
-        (ddclient-group (ddclient-configuration-group config)))
-    (list (shepherd-service
-           (provision '(ddclient))
-           (documentation "Run ddclient daemon.")
-           (start #~(make-forkexec-constructor
-                     (list #$(file-append ddclient "/bin/ddclient")
-                           "-foreground"
-                           "-file" "/etc/ddclient/ddclient.conf")
-                     #:pid-file #$ddclient-pid
-                     #:environment-variables
-                     (list "SSL_CERT_DIR=/run/current-system/profile\
-/etc/ssl/certs"
-                           "SSL_CERT_FILE=/run/current-system/profile\
-/etc/ssl/certs/ca-certificates.crt")
-                     #:user #$ddclient-user
-                     #:group #$ddclient-group))
-           (stop #~(make-kill-destructor))))))
-
-(define ddclient-service-type
-  (service-type
-   (name 'ddclient)
-   (extensions
-    (list (service-extension account-service-type
-                             ddclient-account)
-          (service-extension shepherd-root-service-type
-                             ddclient-shepherd-service)
-          (service-extension activation-service-type
-                             ddclient-activation)))
-   (default-value (ddclient-configuration))
-   (description "Configure address updating utility for dynamic DNS services,
-ddclient.")))
-
-(define (generate-ddclient-documentation)
-  (generate-documentation
-   `((ddclient-configuration ,ddclient-configuration-fields))
-   'ddclient-configuration))

base-commit: 796c823a0d1d0aec9f4af908eca462e58e5675b5
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#64669] [PATCH v2 2/2] gnu: ddclient: Remove package.
  2023-07-16 18:26 [bug#64669] [PATCH 0/2] Remove ddclient and its service Bruno Victal
                   ` (2 preceding siblings ...)
  2023-07-16 18:47 ` [bug#64669] [PATCH v2 1/2] Revert "services: Add ddclient service." Bruno Victal
@ 2023-07-16 18:47 ` Bruno Victal
  3 siblings, 0 replies; 7+ messages in thread
From: Bruno Victal @ 2023-07-16 18:47 UTC (permalink / raw)
  To: 64669; +Cc: Bruno Victal

ddclient is unmaintained as of 2023-07-04 [1].
This reverts changes related to
commit 0bc2d3e42b8800e875f24973f999739297f1f502.

[1]: <https://github.com/ddclient/ddclient/issues/528>

* gnu/packages/dns.scm (ddclient): Remove variable.
* gnu/packages/patches/ddclient-skip-test.patch: Remove file.
* gnu/local.mk: Unregister it.
---
 gnu/local.mk                                  |  1 -
 gnu/packages/dns.scm                          | 71 +------------------
 gnu/packages/patches/ddclient-skip-test.patch | 43 -----------
 3 files changed, 2 insertions(+), 113 deletions(-)
 delete mode 100644 gnu/packages/patches/ddclient-skip-test.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b460d3bc91..0e90f05035 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1050,7 +1050,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/dbus-c++-gcc-compat.patch		\
   %D%/packages/patches/dbus-c++-threading-mutex.patch		\
   %D%/packages/patches/dbxfs-remove-sentry-sdk.patch		\
-  %D%/packages/patches/ddclient-skip-test.patch			\
   %D%/packages/patches/debops-constants-for-external-program-names.patch \
   %D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
   %D%/packages/patches/dee-vapi.patch			\
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 9879998776..adbb1c9439 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -9,7 +9,7 @@
 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
-;;; Copyright © 2018, 2022 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
 ;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
@@ -91,8 +91,7 @@ (define-module (gnu packages dns)
   #:use-module (guix build-system copy)
   #:use-module (guix build-system glib-or-gtk)
   #:use-module (guix build-system gnu)
-  #:use-module (guix build-system meson)
-  #:use-module (guix build-system trivial))
+  #:use-module (guix build-system meson))
 
 (define-public cloudflare-cli
   (let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
@@ -1069,72 +1068,6 @@ (define-public knot-resolver
                    license:cc0
                    license:lgpl2.0))))
 
-(define-public ddclient
-  (package
-    (name "ddclient")
-    (version "3.10.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/ddclient/ddclient")
-             (commit (string-append "v" version))))
-       (file-name (git-file-name name version))
-       (sha256
-        (base32 "0l87d72apwrg6ipc9gix5gv64d4hr1ykxmss8x4r8d8mgj6j8rf1"))
-       (modules '((guix build utils)))
-       (snippet
-        ;; XXX: erroneous version value, this is fixed in master
-        #~(begin
-            (substitute* "configure.ac"
-              (("3.10.0_2") #$version))))
-       (patches (search-patches "ddclient-skip-test.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     (list autoconf automake libtool
-           perl-test-warnings perl-test-mockmodule))
-    (inputs
-     (list inetutils ; logger
-           net-tools
-           bash-minimal                           ;for 'wrap-program'
-           perl
-           perl-digest-sha1
-           perl-io-socket-ssl
-           perl-io-socket-inet6  ;; XXX: this is likely to be removed in a future ddclient release
-                                 ;; https://github.com/ddclient/ddclient/issues/461
-           perl-json))
-    (arguments
-     (list
-      #:configure-flags #~(list "--localstatedir=/var")
-      #:phases
-      #~(modify-phases %standard-phases
-          (replace 'install
-            (lambda _
-              ;; XXX: Do not create /var
-              (invoke "make" "localstatedir=/tmp/discard" "install")))
-          (add-after 'wrap 'wrap-ddclient
-            (lambda* (#:key inputs #:allow-other-keys)
-              (wrap-program (string-append #$output "/bin/ddclient")
-                `("PERL5LIB" ":" prefix ,(string-split (getenv "PERL5LIB") #\:))
-                `("PATH" prefix ,(map (lambda (x)
-                                        (string-append (assoc-ref inputs x) "/bin"))
-                                      '("inetutils" "net-tools")))))))))
-    (native-search-paths
-     (list $SSL_CERT_DIR $SSL_CERT_FILE))
-    (home-page "https://ddclient.net/")
-    (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.
-
-The 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+)))
-
 (define-public hnsd
    (package
      (name "hnsd")
diff --git a/gnu/packages/patches/ddclient-skip-test.patch b/gnu/packages/patches/ddclient-skip-test.patch
deleted file mode 100644
index 28d748997b..0000000000
--- a/gnu/packages/patches/ddclient-skip-test.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e5657802025f238b39581534f3b4d408565c8943 Mon Sep 17 00:00:00 2001
-From: Bruno Victal <mirai@makinata.eu>
-Date: Sun, 5 Feb 2023 21:05:00 +0000
-Subject: [PATCH] Disable sandbox incompatible tests.
-
-See: https://github.com/ddclient/ddclient/issues/465
----
- t/get_ip_from_if.pl | 21 ---------------------
- 1 file changed, 21 deletions(-)
-
-diff --git a/t/get_ip_from_if.pl b/t/get_ip_from_if.pl
-index 6f08e5d..d78c3d0 100644
---- a/t/get_ip_from_if.pl
-+++ b/t/get_ip_from_if.pl
-@@ -39,25 +39,4 @@ subtest "get_ip_from_interface tests" => sub {
-     }
- };
- 
--subtest "Get default interface and IP for test system" => sub {
--    my $interface = ddclient::get_default_interface(4);
--    if ($interface) {
--        isnt($interface, "lo", "Check for loopback 'lo'");
--        isnt($interface, "lo0", "Check for loopback 'lo0'");
--        my $ip1 = ddclient::get_ip_from_interface("default", 4);
--        my $ip2 = ddclient::get_ip_from_interface($interface, 4);
--        is($ip1, $ip2, "Check IPv4 from default interface");
--        ok(ddclient::is_ipv4($ip1), "Valid IPv4 from get_ip_from_interface($interface)");
--    }
--    $interface = ddclient::get_default_interface(6);
--    if ($interface) {
--        isnt($interface, "lo", "Check for loopback 'lo'");
--        isnt($interface, "lo0", "Check for loopback 'lo0'");
--        my $ip1 = ddclient::get_ip_from_interface("default", 6);
--        my $ip2 = ddclient::get_ip_from_interface($interface, 6);
--        is($ip1, $ip2, "Check IPv6 from default interface");
--        ok(ddclient::is_ipv6($ip1), "Valid IPv6 from get_ip_from_interface($interface)");
--    }
--};
--
- done_testing();
--- 
-2.38.1
-
-- 
2.40.1





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [bug#64669] [PATCH 0/2] Remove ddclient and its service.
  2023-07-16 18:47 ` [bug#64669] [PATCH v2 1/2] Revert "services: Add ddclient service." Bruno Victal
@ 2023-07-17 20:17   ` Ludovic Courtès
  2023-08-16 21:20     ` bug#64669: " Ludovic Courtès
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2023-07-17 20:17 UTC (permalink / raw)
  To: Bruno Victal; +Cc: 64669, Oleg Pykhalov

Hi Bruno,

(Cc: Oleg.)

Bruno Victal <mirai@makinata.eu> skribis:

> ddclient is unmaintained as of 2023-07-04 [1] and this service has been broken
> for a while [2]. Remove it rather than shipping a broken service for an
> unmaintained program that's unlikely to be fixed.
>
> [1]: <https://github.com/ddclient/ddclient>
> [2]: <https://issues.guix.gnu.org/52770>

I sympathize with the goal, though I wonder if it would make sense to
give potential users a bit of time to weigh in (and perhaps take over
the project upstream, who knows?).

Oleg, WDYT?

Ludo’.




^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#64669: [PATCH 0/2] Remove ddclient and its service.
  2023-07-17 20:17   ` [bug#64669] [PATCH 0/2] Remove ddclient and its service Ludovic Courtès
@ 2023-08-16 21:20     ` Ludovic Courtès
  0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2023-08-16 21:20 UTC (permalink / raw)
  To: Bruno Victal; +Cc: 64669-done, Oleg Pykhalov, guix-maintainers

Hi Bruno and Oleg,

Ludovic Courtès <ludo@gnu.org> skribis:

> Bruno Victal <mirai@makinata.eu> skribis:
>
>> ddclient is unmaintained as of 2023-07-04 [1] and this service has been broken
>> for a while [2]. Remove it rather than shipping a broken service for an
>> unmaintained program that's unlikely to be fixed.
>>
>> [1]: <https://github.com/ddclient/ddclient>
>> [2]: <https://issues.guix.gnu.org/52770>
>
> I sympathize with the goal, though I wonder if it would make sense to
> give potential users a bit of time to weigh in (and perhaps take over
> the project upstream, who knows?).

It’s now been one month, so I went ahead and pushed these as
1bd44b425b79e9da160b33a9b19d01973b44772e.

We discussed this on IRC today and I must say I’m not satisfied with the
process because potential users have no practical way to learn about
pending removals.

One suggestion that was made is to add a deprecation mechanism that,
instead of requiring a replacement for what’s being deprecated, would
take either #f or a (translatable) string explaining why it’s being
deprecated.

I guess we should implement that and document a guideline for removals,
as had already been proposed before.  (Cc’ing maintainers for the
discussion.)

Thoughts?

Ludo’.




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-08-16 21:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-16 18:26 [bug#64669] [PATCH 0/2] Remove ddclient and its service Bruno Victal
2023-07-16 18:29 ` [bug#64669] [PATCH 1/2] Revert "services: Add ddclient service." Bruno Victal
2023-07-16 18:29 ` [bug#64669] [PATCH 2/2] Revert "gnu: Add ddclient." Bruno Victal
2023-07-16 18:47 ` [bug#64669] [PATCH v2 1/2] Revert "services: Add ddclient service." Bruno Victal
2023-07-17 20:17   ` [bug#64669] [PATCH 0/2] Remove ddclient and its service Ludovic Courtès
2023-08-16 21:20     ` bug#64669: " Ludovic Courtès
2023-07-16 18:47 ` [bug#64669] [PATCH v2 2/2] gnu: ddclient: Remove package Bruno Victal

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).