dns/ddclient: Update to v3.10 RC2

PR:		266415
Reported by:	fbsd-bugzilla@schlachter.ca
Approved by:	mjl@luckie.org.nz (maintainer)
This commit is contained in:
Franco Fichtner 2023-11-24 12:30:38 +01:00 committed by Fernando Apesteguía
parent 6cf595b31f
commit e37f7e5ab5
5 changed files with 93 additions and 105 deletions

View File

@ -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)

View File

@ -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

View File

@ -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'),

View File

@ -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;

3
dns/ddclient/pkg-plist Normal file
View File

@ -0,0 +1,3 @@
@sample(,,600) etc/ddclient.conf.sample
etc/periodic/daily/ddclient_force
sbin/ddclient