aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjl <mjl@luckie.org.nz>2026-01-25 20:11:25 +0000
committerVladimir Druzenko <vvd@FreeBSD.org>2026-01-25 20:11:25 +0000
commit5a132e3b9a8382c7ebdccf876c728f6f34d31e40 (patch)
tree0009eeb5abfce85d1fe03f8646c9cac6a9edfc6a
parent6f3027a1ec49cce08398453a10d372ba619400b2 (diff)
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>
-rw-r--r--UPDATING12
-rw-r--r--dns/ddclient/Makefile31
-rw-r--r--dns/ddclient/distinfo6
-rw-r--r--dns/ddclient/files/ddclient.in2
-rw-r--r--dns/ddclient/files/patch-configure.ac6
-rw-r--r--dns/ddclient/files/patch-ddclient.in55
-rw-r--r--dns/ddclient/files/pkg-message.in2
-rw-r--r--dns/ddclient/pkg-plist2
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