git: e37f7e5ab58f - main - dns/ddclient: Update to v3.10 RC2

From: Fernando Apesteguía <fernape_at_FreeBSD.org>
Date: Fri, 24 Nov 2023 19:41:04 UTC
The branch main has been updated by fernape:

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

commit e37f7e5ab58f5d9f8f5a1a39b20f4c1bd7c50060
Author:     Franco Fichtner <franco@opnsense.org>
AuthorDate: 2023-11-24 11:30:38 +0000
Commit:     Fernando Apesteguía <fernape@FreeBSD.org>
CommitDate: 2023-11-24 19:40:20 +0000

    dns/ddclient: Update to v3.10 RC2
    
    PR:             266415
    Reported by:    fbsd-bugzilla@schlachter.ca
    Approved by:    mjl@luckie.org.nz (maintainer)
---
 dns/ddclient/Makefile                | 27 +++++-------
 dns/ddclient/distinfo                |  6 +--
 dns/ddclient/files/patch-ddclient    | 85 ------------------------------------
 dns/ddclient/files/patch-ddclient.in | 77 ++++++++++++++++++++++++++++++++
 dns/ddclient/pkg-plist               |  3 ++
 5 files changed, 93 insertions(+), 105 deletions(-)

diff --git a/dns/ddclient/Makefile b/dns/ddclient/Makefile
index 6e088dad7e35..02280eb8e41d 100644
--- a/dns/ddclient/Makefile
+++ b/dns/ddclient/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	ddclient
 DISTVERSIONPREFIX=	v
-DISTVERSION=	3.9.1
+DISTVERSION=	3.11.2
 CATEGORIES=	dns
 
 MAINTAINER=	mjl@luckie.org.nz
@@ -10,40 +10,33 @@ WWW=		https://github.com/ddclient/ddclient
 LICENSE=	GPLv2+
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-RUN_DEPENDS=	p5-Data-Validate-IP>0:net-mgmt/p5-Data-Validate-IP
+BUILD_DEPENDS=	curl:ftp/curl
+RUN_DEPENDS=	p5-Data-Validate-IP>0:net-mgmt/p5-Data-Validate-IP \
+		curl:ftp/curl
 
-USES=		perl5 tar:bzip2
+USES=		autoreconf gmake perl5 tar:bzip2
+GNU_CONFIGURE=	yes
 USE_GITHUB=	yes
 USE_PERL5=	run
 USE_RC_SUBR=	${PORTNAME}
 
 NO_ARCH=	yes
-NO_BUILD=	yes
 SUB_FILES=	pkg-message ddclient_force
 
-PLIST_FILES=	"@sample(,,600) etc/ddclient.conf.sample" \
-		etc/periodic/daily/ddclient_force \
-		sbin/ddclient
-PORTDOCS=	COPYRIGHT ChangeLog README.cisco README.ssl README.md \
+PORTDOCS=	COPYRIGHT ChangeLog README.cisco README.md \
 		sample-etc_cron.d_ddclient sample-etc_dhclient-exit-hooks \
 		sample-etc_dhcpc_dhcpcd-eth0.exe sample-etc_ppp_ip-up.local
 
-OPTIONS_DEFINE=	SSL DOCS
-OPTIONS_DEFAULT=SSL
-
-SSL_RUN_DEPENDS=ca_root_nss>0:security/ca_root_nss \
-		p5-IO-Socket-SSL>0:security/p5-IO-Socket-SSL
+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
-	@${REINPLACE_CMD} -e '/^\#\!\/usr\/local\/local/d' \
-		${WRKSRC}/ddclient
+		 s|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/ddclient.in
 
 do-install:
-	(cd ${WRKSRC} && ${INSTALL_DATA} sample-etc_ddclient.conf \
+	(cd ${WRKSRC} && ${INSTALL_DATA} ddclient.conf \
 		${STAGEDIR}${PREFIX}/etc/ddclient.conf.sample)
 	(cd ${WRKSRC} && ${INSTALL_SCRIPT} ddclient \
 		${STAGEDIR}${PREFIX}/sbin)
diff --git a/dns/ddclient/distinfo b/dns/ddclient/distinfo
index 49940f28bde9..e0c0c4833289 100644
--- a/dns/ddclient/distinfo
+++ b/dns/ddclient/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1603527045
-SHA256 (ddclient-ddclient-v3.9.1_GH0.tar.gz) = e4969e15cc491fc52bdcd649d4c2b0e4b1bf0c9f9dba23471c634871acc52470
-SIZE (ddclient-ddclient-v3.9.1_GH0.tar.gz) = 63469
+TIMESTAMP = 1700741617
+SHA256 (ddclient-ddclient-v3.11.2_GH0.tar.gz) = 243cd832abd3cdd2b49903e1b5ed7f450e2d9c4c0eaf8ce4fe692c244d3afd77
+SIZE (ddclient-ddclient-v3.11.2_GH0.tar.gz) = 278314
diff --git a/dns/ddclient/files/patch-ddclient b/dns/ddclient/files/patch-ddclient
deleted file mode 100644
index 45d08058741a..000000000000
--- a/dns/ddclient/files/patch-ddclient
+++ /dev/null
@@ -1,85 +0,0 @@
---- ddclient.orig	2018-05-23 10:25:05 UTC
-+++ ddclient
-@@ -25,6 +25,7 @@ use Getopt::Long;
- use Sys::Hostname;
- use IO::Socket;
- use Data::Validate::IP;
-+use POSIX 'setsid';
- 
- my $version  = "3.8.3";
- my $programd  = $0; 
-@@ -33,9 +34,9 @@ my $program   = $programd;
- $program  =~ s/d$//;
- my $now       = time;
- my $hostname  = hostname();
--my $etc       = ($program =~ /test/i) ? './'   : '/etc/ddclient/';
--my $cachedir  = ($program =~ /test/i) ? './'   : '/var/cache/ddclient/';
--my $savedir   = ($program =~ /test/i) ? 'URL/' : '/tmp/';
-+my $etc       = ($program =~ /test/i) ? './'   : '%%ETCDIR%%/';
-+my $cachedir  = ($program =~ /test/i) ? './'   : '/var/tmp/';
-+my $savedir   = ($program =~ /test/i) ? 'URL/' : '/var/tmp/';
- my $msgs      = '';
- my $last_msgs = '';
- 
-@@ -43,7 +44,7 @@ use vars qw($file $lineno);
- local $file   = '';
- local $lineno = '';
- 
--$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/sbin:/bin:";
- 
- sub T_ANY	{'any'};
- sub T_STRING	{'string'};
-@@ -792,6 +793,9 @@ if (opt('foreground') || opt('force')) {
-     ;
- } elsif (opt('daemon')) {
-     $SIG{'CHLD'}   = 'IGNORE';
-+    chdir '/';
-+    open(STDIN,  "</dev/null");
-+    open(STDOUT, ">/dev/null");
-     my $pid = fork;
-     if ($pid < 0) {
- 	print STDERR "${program}: can not fork ($!)\n";
-@@ -799,10 +803,9 @@ if (opt('foreground') || opt('force')) {
-     } elsif ($pid) {
- 	exit 0;
-     }
-+    setsid;
-     $SIG{'CHLD'}   = 'DEFAULT';
--    open(STDOUT, ">/dev/null");
--    open(STDERR, ">/dev/null");
--    open(STDIN,  "</dev/null");
-+    open(STDERR, "&STDOUT");
- }
- 
- # write out the pid file if we're daemon'ized
-@@ -1595,17 +1598,17 @@ sub pipecmd {
-     ## execute the command.
-     local *FD;
-     if (! open(FD, $cmd)) {
--	printf STDERR "$program: cannot execute command %s.\n", $cmd;
-+	warning("$program: cannot execute command %s.\n", $cmd);
- 
-     } elsif ($stdin && (! print FD "$stdin\n")) {
--	printf STDERR "$program: failed writting to %s.\n", $cmd;
-+	warning("$program: failed writing to %s.\n", $cmd);
- 	close(FD);
- 
-     } elsif (! close(FD)) {
--	printf STDERR "$program: failed closing %s.($@)\n", $cmd;
-+	warning("$program: failed closing %s.($@)\n", $cmd);
- 
-     } elsif (opt('exec') && $?) {
--	printf STDERR "$program: failed %s. ($@)\n", $cmd;
-+	warning("$program: failed %s. ($@)\n", $cmd);
- 
-     } else {
- 	$ok = 1;
-@@ -2034,6 +2037,7 @@ sub geturl {
- 	    $sd = IO::Socket::SSL->new(
-             PeerAddr => $peer,
-             PeerPort => $port,
-+            SSL_ca_file => '%%LOCALBASE%%/share/certs/ca-root-nss.crt',
-             Proto => 'tcp',
-             MultiHomed => 1,
-             Timeout => opt('timeout'),
diff --git a/dns/ddclient/files/patch-ddclient.in b/dns/ddclient/files/patch-ddclient.in
new file mode 100644
index 000000000000..0dc1a45418c6
--- /dev/null
+++ b/dns/ddclient/files/patch-ddclient.in
@@ -0,0 +1,77 @@
+--- ddclient.in.orig	2023-10-25 19:22:47 UTC
++++ ddclient.in
+@@ -20,6 +20,7 @@ use File::Path qw(make_path);
+ 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 {
+     return $subst;
+ }
+ 
+-my $etc = subst_var('@sysconfdir@', '/etc/ddclient');
+-my $cachedir = subst_var('@localstatedir@', '/var') . '/cache/ddclient';
+-my $savedir = '/tmp';
++my $etc = subst_var('@sysconfdir@', '/usr/local/etc');
++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 = '';
+ 
+-$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:";
+ 
+ our %globals;
+ my ($result, %config, %cache);
+@@ -1131,6 +1132,9 @@ sub main {
+         ;
+     } elsif (opt('daemon')) {
+         $SIG{'CHLD'} = 'IGNORE';
++        chdir '/';
++        open(STDIN,  "</dev/null");
++        open(STDOUT, ">/dev/null");
+         my $pid = fork;
+         if ($pid < 0) {
+             print STDERR "${program}: can not fork ($!)\n";
+@@ -1138,10 +1142,9 @@ sub main {
+         } elsif ($pid) {
+             exit 0;
+         }
++        setsid;
+         $SIG{'CHLD'} = 'DEFAULT';
+-        open(STDOUT, ">/dev/null");
+-        open(STDERR, ">/dev/null");
+-        open(STDIN,  "</dev/null");
++        open(STDERR, "&STDOUT");
+         write_pid();
+     }
+ 
+@@ -2164,17 +2167,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);
+ 
+     } elsif ($stdin && (!print FD "$stdin\n")) {
+-        printf STDERR "%s: failed writting to %s.\n", $program, $cmd;
++	warning("$program: failed writing to %s.\n", $cmd);
+         close(FD);
+ 
+     } elsif (!close(FD)) {
+-        printf STDERR "%s: failed closing %s.(%s)\n", $program, $cmd, $@;
++	warning("$program: failed closing %s.($@)\n", $cmd);
+ 
+     } elsif (opt('exec') && $?) {
+-        printf STDERR "%s: failed %s. (%s)\n", $program, $cmd, $@;
++	warning("$program: failed %s. ($@)\n", $cmd);
+ 
+     } else {
+         $ok = 1;
diff --git a/dns/ddclient/pkg-plist b/dns/ddclient/pkg-plist
new file mode 100644
index 000000000000..f86be8afa6e1
--- /dev/null
+++ b/dns/ddclient/pkg-plist
@@ -0,0 +1,3 @@
+@sample(,,600) etc/ddclient.conf.sample
+etc/periodic/daily/ddclient_force
+sbin/ddclient