Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Jan 2026 20:18:23 +0000
From:      Vladimir Druzenko <vvd@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        mjl <mjl@luckie.org.nz>
Subject:   git: 5a132e3b9a83 - main - dns/ddclient: Update 3.11.2 => 4.0.0
Message-ID:  <69767a8f.2580b.15706911@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5a132e3b9a8382c7ebdccf876c728f6f34d31e40

commit 5a132e3b9a8382c7ebdccf876c728f6f34d31e40
Author:     mjl <mjl@luckie.org.nz>
AuthorDate: 2026-01-25 20:11:25 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-01-25 20:11:25 +0000

    dns/ddclient: Update 3.11.2 => 4.0.0
    
    Changelog:
    https://github.com/ddclient/ddclient/releases/tag/v4.0.0
    
    This release moves the default configuration file location from
    /usr/local/etc/ to /usr/local/etc/ddclient/.  Please move your
    existing ddclient.conf to the new location before restarting ddclient.
    
    - Fix warnings from portclippy.
    - Parametrize ddclient with PORTNAME.
    - Simplify and optimize do-install.
    - Move docs installation to do-install-DOCS-on.
    
    PR:             292669
    Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
---
 UPDATING                              | 12 ++++++++
 dns/ddclient/Makefile                 | 31 ++++++++++----------
 dns/ddclient/distinfo                 |  6 ++--
 dns/ddclient/files/ddclient.in        |  2 +-
 dns/ddclient/files/patch-configure.ac |  6 ++--
 dns/ddclient/files/patch-ddclient.in  | 55 +++++++++++++++++------------------
 dns/ddclient/files/pkg-message.in     |  2 +-
 dns/ddclient/pkg-plist                |  2 +-
 8 files changed, 62 insertions(+), 54 deletions(-)

diff --git a/UPDATING b/UPDATING
index 8292c0d09f3a..5436434bf7a8 100644
--- a/UPDATING
+++ b/UPDATING
@@ -5,6 +5,18 @@ they are unavoidable.
 You should get into the habit of checking this file for changes each time
 you update your ports collection, before attempting any port upgrades.
 
+20260125:
+  AFFECTS: users of dns/ddclient
+  AUTHOR: mjl@luckie.org.nz
+
+  dns/ddclient has been updated to v4.0.0.
+
+  This release moves the default configuration file location from
+  /usr/local/etc/ to /usr/local/etc/ddclient/.  Please move your
+  existing ddclient.conf to the new location before restarting ddclient.
+
+  See details at https://github.com/ddclient/ddclient/releases/tag/v4.0.0
+
 20260115:
   AFFECTS: users of lang/cython* and USE_PYTHON=cython*
   AUTHOR: sunpoet@FreeBSD.org
diff --git a/dns/ddclient/Makefile b/dns/ddclient/Makefile
index 02280eb8e41d..81108d1e6127 100644
--- a/dns/ddclient/Makefile
+++ b/dns/ddclient/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	ddclient
 DISTVERSIONPREFIX=	v
-DISTVERSION=	3.11.2
+DISTVERSION=	4.0.0
 CATEGORIES=	dns
 
 MAINTAINER=	mjl@luckie.org.nz
@@ -15,13 +15,14 @@ RUN_DEPENDS=	p5-Data-Validate-IP>0:net-mgmt/p5-Data-Validate-IP \
 		curl:ftp/curl
 
 USES=		autoreconf gmake perl5 tar:bzip2
-GNU_CONFIGURE=	yes
 USE_GITHUB=	yes
 USE_PERL5=	run
 USE_RC_SUBR=	${PORTNAME}
 
+GNU_CONFIGURE=	yes
+
 NO_ARCH=	yes
-SUB_FILES=	pkg-message ddclient_force
+SUB_FILES=	${PORTNAME}_force pkg-message
 
 PORTDOCS=	COPYRIGHT ChangeLog README.cisco README.md \
 		sample-etc_cron.d_ddclient sample-etc_dhclient-exit-hooks \
@@ -32,20 +33,18 @@ OPTIONS_DEFINE=	DOCS
 post-patch:
 	@${GREP} -lR '/usr' ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} -e \
 		's|/usr|${PREFIX}|g'
-	@${REINPLACE_CMD} -e 's|%%ETCDIR%%|${PREFIX}/etc| ; \
-		 s|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/ddclient.in
+	@${REINPLACE_CMD} -e 's|%%ETCDIR%%|${ETCDIR}| ; \
+		 s|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/${PORTNAME}.in
 
 do-install:
-	(cd ${WRKSRC} && ${INSTALL_DATA} ddclient.conf \
-		${STAGEDIR}${PREFIX}/etc/ddclient.conf.sample)
-	(cd ${WRKSRC} && ${INSTALL_SCRIPT} ddclient \
-		${STAGEDIR}${PREFIX}/sbin)
-	@${MKDIR} ${STAGEDIR}${PREFIX}/etc/periodic/daily
-	(cd ${WRKDIR} && ${INSTALL_SCRIPT} ddclient_force \
-		${STAGEDIR}${PREFIX}/etc/periodic/daily/ddclient_force)
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-.for i in ${PORTDOCS}
-	(cd ${WRKSRC} && ${INSTALL_DATA} ${i} ${STAGEDIR}${DOCSDIR})
-.endfor
+	${MKDIR} ${STAGEDIR}${ETCDIR} \
+		 ${STAGEDIR}${PREFIX}/etc/periodic/daily
+	${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.conf ${STAGEDIR}${ETCDIR}/${PORTNAME}.conf.sample
+	${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin
+	${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}_force ${STAGEDIR}${PREFIX}/etc/periodic/daily
+
+do-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${STAGEDIR}${DOCSDIR}
 
 .include <bsd.port.mk>
diff --git a/dns/ddclient/distinfo b/dns/ddclient/distinfo
index e0c0c4833289..1fff6193601b 100644
--- a/dns/ddclient/distinfo
+++ b/dns/ddclient/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1700741617
-SHA256 (ddclient-ddclient-v3.11.2_GH0.tar.gz) = 243cd832abd3cdd2b49903e1b5ed7f450e2d9c4c0eaf8ce4fe692c244d3afd77
-SIZE (ddclient-ddclient-v3.11.2_GH0.tar.gz) = 278314
+TIMESTAMP = 1769214197
+SHA256 (ddclient-ddclient-v4.0.0_GH0.tar.gz) = 4b37c99ac0011102d7db62f1ece7ff899b06df3d4b172e312703931a3c593c93
+SIZE (ddclient-ddclient-v4.0.0_GH0.tar.gz) = 301499
diff --git a/dns/ddclient/files/ddclient.in b/dns/ddclient/files/ddclient.in
index 611579ce68cd..0a6a4c1bb52c 100644
--- a/dns/ddclient/files/ddclient.in
+++ b/dns/ddclient/files/ddclient.in
@@ -18,7 +18,7 @@ name="ddclient"
 rcvar=ddclient_enable
 
 command="%%PREFIX%%/sbin/${name}"
-required_files="%%PREFIX%%/etc/${name}.conf"
+required_files="%%ETCDIR%%/${name}.conf"
 
 load_rc_config ${name}
 
diff --git a/dns/ddclient/files/patch-configure.ac b/dns/ddclient/files/patch-configure.ac
index cb7a06828d7a..05184a5c2ef6 100644
--- a/dns/ddclient/files/patch-configure.ac
+++ b/dns/ddclient/files/patch-configure.ac
@@ -1,6 +1,6 @@
---- configure.ac.orig	2023-11-23 12:06:21 UTC
+--- configure.ac.orig	2025-01-19 19:29:22 UTC
 +++ configure.ac
-@@ -11,7 +11,7 @@ AC_REQUIRE_AUX_FILE([tap-driver.sh])
+@@ -20,7 +20,7 @@ AC_REQUIRE_AUX_FILE([tap-driver.sh])
  # tap-driver.sh, so build-aux/tap-driver.sh is checked in to keep the
  # above AC_REQUIRE_AUX_FILE line from causing configure to complain
  # about a mising file if the user has Automake 1.11.)
@@ -8,4 +8,4 @@
 +AM_INIT_AUTOMAKE([1.11 -Wall foreign subdir-objects parallel-tests])
  AM_SILENT_RULES
  
- AC_PROG_MKDIR_P
+ m4_define([CONFDIR_DEFAULT], [${sysconfdir}/AC_PACKAGE_NAME])
diff --git a/dns/ddclient/files/patch-ddclient.in b/dns/ddclient/files/patch-ddclient.in
index 0dc1a45418c6..5ae91bd2bae8 100644
--- a/dns/ddclient/files/patch-ddclient.in
+++ b/dns/ddclient/files/patch-ddclient.in
@@ -1,36 +1,34 @@
---- ddclient.in.orig	2023-10-25 19:22:47 UTC
+--- ddclient.in.orig	2026-01-25 18:18:45 UTC
 +++ ddclient.in
-@@ -20,6 +20,7 @@ use File::Path qw(make_path);
+@@ -21,6 +21,7 @@ use Sys::Hostname;
  use File::Temp;
  use Getopt::Long;
  use Sys::Hostname;
 +use POSIX 'setsid';
  
- use version 0.77; our $VERSION = version->declare('3.11.1');
- my $version = $VERSION->stringify();
-@@ -39,9 +40,9 @@ sub subst_var {
+ # Declare the ddclient version number.
+ #
+@@ -132,8 +133,8 @@ sub subst_var {
      return $subst;
  }
  
--my $etc = subst_var('@sysconfdir@', '/etc/ddclient');
+-my $etc = subst_var('@confdir@', '/etc/ddclient');
 -my $cachedir = subst_var('@localstatedir@', '/var') . '/cache/ddclient';
--my $savedir = '/tmp';
-+my $etc = subst_var('@sysconfdir@', '/usr/local/etc');
++my $etc = subst_var('@confdir@', '%%ETCDIR%%');
 +my $cachedir = subst_var('@localstatedir@', '/var') . '/tmp';
-+my $savedir = '/var/tmp';
- if ($program =~ /test/i) {
-     $etc = '.';
-     $cachedir = '.';
-@@ -59,7 +60,7 @@ use vars qw($file $lineno);
- local $file   = '';
- local $lineno = '';
+ our @curl = (subst_var('@CURL@', 'curl'));
+ 
+ our $emailbody = '';
+@@ -147,7 +148,7 @@ our $_l = ddclient::Logger->new();
+ #    local _l = pushlogctx('additional context goes here');
+ our $_l = ddclient::Logger->new();
  
 -$ENV{'PATH'} = (exists($ENV{PATH}) ? "$ENV{PATH}:" : "") . "/sbin:/usr/sbin:/bin:/usr/bin:/etc:/usr/lib:";
-+$ENV{'PATH'} = (exists($ENV{PATH}) ? "$ENV{PATH}:" : "") . "/sbin:/usr/local/sbin:/bin:";
++$ENV{'PATH'} = (exists($ENV{PATH}) ? "$ENV{PATH}:" : "") . "/sbin:%%LOCALBASE%%/sbin:/bin:";
  
  our %globals;
- my ($result, %config, %cache);
-@@ -1131,6 +1132,9 @@ sub main {
+ our %config;
+@@ -1469,16 +1470,18 @@ sub main {
          ;
      } elsif (opt('daemon')) {
          $SIG{'CHLD'} = 'IGNORE';
@@ -39,8 +37,7 @@
 +        open(STDOUT, ">/dev/null");
          my $pid = fork;
          if ($pid < 0) {
-             print STDERR "${program}: can not fork ($!)\n";
-@@ -1138,10 +1142,9 @@ sub main {
+             fatal("failed to fork: %s", $!);
          } elsif ($pid) {
              exit 0;
          }
@@ -53,25 +50,25 @@
          write_pid();
      }
  
-@@ -2164,17 +2167,17 @@ sub pipecmd {
+@@ -2374,17 +2377,17 @@ sub pipecmd {
      ## execute the command.
      local *FD;
      if (!open(FD, $cmd)) {
--        printf STDERR "%s: cannot execute command %s.\n", $program, $cmd;
-+	warning("$program: cannot execute command %s.\n", $cmd);
+-        warning('cannot execute command');
++        warning("$program: cannot execute command %s.", $cmd);
  
      } elsif ($stdin && (!print FD "$stdin\n")) {
--        printf STDERR "%s: failed writting to %s.\n", $program, $cmd;
-+	warning("$program: failed writing to %s.\n", $cmd);
+-        warning('failed writing to stdin');
++        warning("$program: failed writing to stdin %s.", $cmd);
          close(FD);
  
      } elsif (!close(FD)) {
--        printf STDERR "%s: failed closing %s.(%s)\n", $program, $cmd, $@;
-+	warning("$program: failed closing %s.($@)\n", $cmd);
+-        warning("failed closing stdin: $@");
++        warning("$program: failed closing stdin: %s. ($@)", $cmd);
  
      } elsif (opt('exec') && $?) {
--        printf STDERR "%s: failed %s. (%s)\n", $program, $cmd, $@;
-+	warning("$program: failed %s. ($@)\n", $cmd);
+-        warning("failed: $@");
++        warning("$program: failed: %s. ($@)", $cmd);
  
      } else {
          $ok = 1;
diff --git a/dns/ddclient/files/pkg-message.in b/dns/ddclient/files/pkg-message.in
index 226e65398842..56324bacde89 100644
--- a/dns/ddclient/files/pkg-message.in
+++ b/dns/ddclient/files/pkg-message.in
@@ -3,7 +3,7 @@
   message: <<EOM
 To configure ddclient, edit the following file:
 
-	%%PREFIX%%/etc/ddclient.conf
+	%%ETCDIR%%/ddclient.conf
 
 If you would like to run ddclient as a daemon add the
 following line to /etc/rc.conf
diff --git a/dns/ddclient/pkg-plist b/dns/ddclient/pkg-plist
index f86be8afa6e1..a3c68f67526f 100644
--- a/dns/ddclient/pkg-plist
+++ b/dns/ddclient/pkg-plist
@@ -1,3 +1,3 @@
-@sample(,,600) etc/ddclient.conf.sample
+@sample(,,600) etc/ddclient/ddclient.conf.sample
 etc/periodic/daily/ddclient_force
 sbin/ddclient


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69767a8f.2580b.15706911>