7 Commits

Author SHA256 Message Date
0173d7bb82 Accepting request 1256218 from network
OBS-URL: https://build.opensuse.org/request/show/1256218
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ddclient?expand=0&rev=61
2025-03-26 20:23:18 +00:00
420b1c3286 Update to 4.0.0
OBS-URL: https://build.opensuse.org/package/show/network/ddclient?expand=0&rev=79
2025-03-26 12:36:08 +00:00
4cb4a36158 Accepting request 1236720 from network
sync spec and changes file, remove obsolete deps (forwarded request 1236718 from computersalat)

OBS-URL: https://build.opensuse.org/request/show/1236720
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ddclient?expand=0&rev=60
2025-01-12 10:19:33 +00:00
Christian Wittmer
5b2aaac98a sync spec and changes file, remove obsolete deps
OBS-URL: https://build.opensuse.org/package/show/network/ddclient?expand=0&rev=77
2025-01-09 20:02:41 +00:00
Christian Wittmer
9003ab34c2 sync changes file
OBS-URL: https://build.opensuse.org/package/show/network/ddclient?expand=0&rev=76
2025-01-09 19:12:45 +00:00
6d967fb725 Accepting request 1235987 from network
Update the ddclient.service to not conflicts with ipmi devices (forwarded request 1226323 from vlefebvre)

OBS-URL: https://build.opensuse.org/request/show/1235987
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ddclient?expand=0&rev=59
2025-01-09 14:11:12 +00:00
a2d706ce18 Update the ddclient.service to not conflicts with ipmi devices
OBS-URL: https://build.opensuse.org/package/show/network/ddclient?expand=0&rev=74
2025-01-08 16:25:45 +00:00
10 changed files with 497 additions and 61 deletions

View File

@@ -0,0 +1,283 @@
From 1cd1de937f329d9bcf510ffe2ae1f5f02b626b51 Mon Sep 17 00:00:00 2001
From: vlefebvre <valentin.lefebvre@suse.com>
Date: Mon, 10 Mar 2025 09:42:06 +0100
Subject: [PATCH] Revert tests only skip HTTPD tests
This reverts commit 8cf322e1628723c4ad15c378d68dfe52d44729c4.
---
configure.ac | 3 +--
t/geturl_connectivity.pl | 7 ++++---
t/lib/ddclient/t/HTTPD.pm | 35 +++++------------------------------
t/protocol_directnic.pl | 7 ++++---
t/protocol_dnsexit2.pl | 7 ++++---
t/protocol_dyndns2.pl | 6 ++++--
t/skip.pl | 7 ++++---
t/ssl-validate.pl | 6 ++++--
t/update_nics.pl | 7 ++++---
t/use_web.pl | 7 ++++---
10 files changed, 38 insertions(+), 54 deletions(-)
diff --git a/configure.ac b/configure.ac
index 4ccecc8..49daf65 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,7 +87,6 @@ m4_foreach_w([_m], [
# then some tests will fail. Only prints a warning if not installed.
m4_foreach_w([_m], [
B
- Exporter
File::Spec::Functions
File::Temp
List::Util
@@ -101,6 +100,7 @@ m4_foreach_w([_m], [
# prints a warning if not installed.
m4_foreach_w([_m], [
Carp
+ Exporter
HTTP::Daemon=6.12
HTTP::Daemon::SSL
HTTP::Message::PSGI
@@ -112,7 +112,6 @@ m4_foreach_w([_m], [
Test::Warnings
Time::HiRes
URI
- parent
], [AX_PROG_PERL_MODULES([_m], [],
[AC_MSG_WARN([some tests may be skipped due to missing module _m])])])
diff --git a/t/geturl_connectivity.pl b/t/geturl_connectivity.pl
index d3f2033..b0dd94d 100644
--- a/t/geturl_connectivity.pl
+++ b/t/geturl_connectivity.pl
@@ -1,11 +1,12 @@
use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::ip;
-httpd_required();
-
$ddclient::globals{'ssl_ca_file'} = $ca_file;
for my $ipv ('4', '6') {
diff --git a/t/lib/ddclient/t/HTTPD.pm b/t/lib/ddclient/t/HTTPD.pm
index 997e451..6879372 100644
--- a/t/lib/ddclient/t/HTTPD.pm
+++ b/t/lib/ddclient/t/HTTPD.pm
@@ -7,42 +7,21 @@ use warnings;
use parent qw(ddclient::Test::Fake::HTTPD);
use Exporter qw(import);
+use JSON::PP;
use Test::More;
BEGIN { require 'ddclient'; }
use ddclient::t::ip;
our @EXPORT = qw(
httpd
- httpd_ok httpd_required $httpd_supported $httpd_support_error
httpd_ipv6_ok httpd_ipv6_required $httpd_ipv6_supported $httpd_ipv6_support_error
httpd_ssl_ok httpd_ssl_required $httpd_ssl_supported $httpd_ssl_support_error
$ca_file $certdir $other_ca_file
$textplain
);
-our $httpd_supported;
-our $httpd_support_error;
-BEGIN {
- $httpd_supported = eval {
- require parent; parent->import(qw(ddclient::Test::Fake::HTTPD));
- require JSON::PP; JSON::PP->import();
- 1;
- } or $httpd_support_error = $@;
-}
-
-sub httpd_ok {
- ok($httpd_supported, "HTTPD is supported") or diag($httpd_support_error);
-}
-
-sub httpd_required {
- plan(skip_all => $httpd_support_error) if !$httpd_supported;
-}
-
-our $httpd_ssl_supported = $httpd_supported;
-our $httpd_ssl_support_error = $httpd_support_error;
-$httpd_ssl_supported = eval { require HTTP::Daemon::SSL; 1; }
- or $httpd_ssl_support_error = $@
- if $httpd_ssl_supported;
+our $httpd_ssl_support_error;
+our $httpd_ssl_supported = eval { require HTTP::Daemon::SSL; 1; } or $httpd_ssl_support_error = $@;
sub httpd_ssl_ok {
ok($httpd_ssl_supported, "SSL is supported") or diag($httpd_ssl_support_error);
@@ -52,11 +31,8 @@ sub httpd_ssl_required {
plan(skip_all => $httpd_ssl_support_error) if !$httpd_ssl_supported;
}
-our $httpd_ipv6_supported = $httpd_supported;
-our $httpd_ipv6_support_error = $httpd_support_error;
-$httpd_ipv6_supported = $ipv6_supported
- or $httpd_ipv6_support_error = $ipv6_support_error
- if $httpd_ipv6_supported;
+our $httpd_ipv6_support_error;
+our $httpd_ipv6_supported = $ipv6_supported or $httpd_ipv6_support_error = $ipv6_support_error;
$httpd_ipv6_supported = eval { require HTTP::Daemon; HTTP::Daemon->VERSION(6.12); }
or $httpd_ipv6_support_error = $@
if $httpd_ipv6_supported;
@@ -136,7 +112,6 @@ sub httpd {
my ($ipv, $ssl) = @_;
$ipv //= '';
$ssl = !!$ssl;
- return undef if !$httpd_supported;
return undef if $ipv eq '6' && !$httpd_ipv6_supported;
return undef if $ssl && !$httpd_ssl_supported;
if (!defined($daemons{$ipv}{$ssl})) {
diff --git a/t/protocol_directnic.pl b/t/protocol_directnic.pl
index bc96152..e2675dc 100644
--- a/t/protocol_directnic.pl
+++ b/t/protocol_directnic.pl
@@ -2,11 +2,12 @@ use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require JSON::PP; 1; } or plan(skip_all => $@); JSON::PP->import(); }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::Logger;
-httpd_required();
-
ddclient::load_json_support('directnic');
httpd()->run(sub {
diff --git a/t/protocol_dnsexit2.pl b/t/protocol_dnsexit2.pl
index 9991e7c..37a9210 100644
--- a/t/protocol_dnsexit2.pl
+++ b/t/protocol_dnsexit2.pl
@@ -2,11 +2,12 @@ use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require JSON::PP; 1; } or plan(skip_all => $@); JSON::PP->import(); }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::Logger;
-httpd_required();
-
local $ddclient::globals{debug} = 1;
local $ddclient::globals{verbose} = 1;
diff --git a/t/protocol_dyndns2.pl b/t/protocol_dyndns2.pl
index a5091cb..c481efb 100644
--- a/t/protocol_dyndns2.pl
+++ b/t/protocol_dyndns2.pl
@@ -2,10 +2,12 @@ use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
use MIME::Base64;
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::Logger;
-httpd_required();
httpd()->run(sub {
my ($req) = @_;
diff --git a/t/skip.pl b/t/skip.pl
index 3f0ba3a..1ee68a3 100644
--- a/t/skip.pl
+++ b/t/skip.pl
@@ -1,11 +1,12 @@
use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::ip;
-httpd_required();
-
httpd('4')->run(
sub { return [200, ['Content-Type' => 'text/plain'], ['127.0.0.1 skip 127.0.0.2']]; });
httpd('6')->run(
diff --git a/t/ssl-validate.pl b/t/ssl-validate.pl
index 6bea9a3..ac5f58f 100644
--- a/t/ssl-validate.pl
+++ b/t/ssl-validate.pl
@@ -1,13 +1,15 @@
use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::ip;
local $ddclient::globals{debug} = 1;
local $ddclient::globals{verbose} = 1;
-httpd_required();
httpd_ssl_required();
httpd('4', 1)->run(sub { return [200, $textplain, ['127.0.0.1']]; });
diff --git a/t/update_nics.pl b/t/update_nics.pl
index e0fe679..d656c0f 100644
--- a/t/update_nics.pl
+++ b/t/update_nics.pl
@@ -6,11 +6,12 @@ BEGIN { eval { require JSON::PP; 1; } or plan(skip_all => $@); JSON::PP->import(
use List::Util qw(max);
use Scalar::Util qw(refaddr);
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::ip;
-httpd_required();
-
httpd('4')->run();
httpd('6')->run() if httpd('6');
local %ddclient::builtinweb = (
diff --git a/t/use_web.pl b/t/use_web.pl
index 130034a..9411ae8 100644
--- a/t/use_web.pl
+++ b/t/use_web.pl
@@ -1,11 +1,12 @@
use Test::More;
BEGIN { SKIP: { eval { require Test::Warnings; 1; } or skip($@, 1); } }
BEGIN { eval { require 'ddclient'; } or BAIL_OUT($@); }
-use ddclient::t::HTTPD;
+BEGIN {
+ eval { require ddclient::t::HTTPD; 1; } or plan(skip_all => $@);
+ ddclient::t::HTTPD->import();
+}
use ddclient::t::ip;
-httpd_required();
-
my $builtinweb = 't/use_web.pl builtinweb';
my $h = 't/use_web.pl hostname';
--
2.47.0

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:243cd832abd3cdd2b49903e1b5ed7f450e2d9c4c0eaf8ce4fe692c244d3afd77
size 278314

3
ddclient-4.0.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:15c73d4b61e8e4974707379df1dbf15ab9f933835c6968947d2b56173388c6f0
size 362232

View File

@@ -1,32 +1,34 @@
--- ddclient-3.10.0/ddclient.conf.in.bak 2022-12-27 12:41:54.160794070 +0100
+++ ddclient-3.10.0/ddclient.conf.in 2022-12-27 12:43:39.501317859 +0100
@@ -18,10 +18,10 @@
######################################################################
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
-mail=root # mail all msgs to root
+#mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
-pid=@runstatedir@/ddclient.pid # record PID in file.
-ssl=yes # use ssl-support. Works with
+pid=/run/ddclient/ddclient.pid # record PID in file.
+ssl=no # use ssl-support. Works with
# ssl-library
# postscript=script # run script after updating. The
# new IP is added as argument.
@@ -56,6 +56,9 @@
--- ddclient-4.0.0/ddclient.conf.in 2025-01-19 20:31:09.000000000 +0100
+++ ddclient-4.0.0-new/ddclient.conf.in 2025-03-07 17:10:53.824762865 +0100
@@ -23,12 +23,13 @@
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
-mail=root # mail all msgs to root
+#mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
# mail-from=root # set the email "From:" header to "root". If
# unset (the default) or empty, the from address
# depends on your system's default behavior.
-pid=@runstatedir@/ddclient.pid # record PID in file.
+pid=/run/ddclient/ddclient.pid # record PID in file.
+ssl=no # use ssl-support. Works with
# postscript=script # run script after updating. The new IP is
# added as argument.
#
#use=ip, ip=127.0.0.1 # via static IP's
#use=if, if=eth0 # via interfaces
@@ -66,6 +67,9 @@ pid=@runstatedir@/ddclient.pid # record
#
#use=ip, ip=127.0.0.1 # via static IP's
#use=if, if=eth0 # via interfaces
+#use=if, if=ippp0 # when using ISDN
+#use=if, if=ppp0 # when using DSL
+#use=if, if=tun0 # when using tunnel device
#use=web # via web
#use=web # via web
#
#protocol=dyndns2 # default protocol
@@ -69,6 +72,17 @@
#backupmx=yes|no # host is primary MX?
#wildcard=yes|no # add wildcard CNAME?
#protocol=dyndns2 # default protocol
@@ -79,6 +83,17 @@ pid=@runstatedir@/ddclient.pid # record
#backupmx=yes|no # host is primary MX?
#wildcard=yes|no # add wildcard CNAME?
+## selfhost dynamic addresses
+## http://cms.selfhost.de/cgi-bin/selfhost?p=faq&show=113
@@ -36,7 +38,7 @@
+# login=your-selfhost-login, \
+# password=your-selfhost-password \
+# your.selfhost.bz
+
+
+##
+
##

View File

@@ -1,8 +1,8 @@
--- ddclient-3.10.0/ddclient.in.bak 2022-12-27 12:47:57.318599529 +0100
+++ ddclient-3.10.0/ddclient.in 2022-12-27 12:48:06.902647037 +0100
@@ -1051,6 +1051,7 @@
print STDERR "${program}: can not fork ($!)\n";
exit -1;
--- ddclient-4.0.0/ddclient.in 2025-01-19 20:31:09.000000000 +0100
+++ ddclient-4.0.0-new/ddclient.in 2025-03-07 17:20:48.303727503 +0100
@@ -1473,6 +1473,7 @@ sub main {
if ($pid < 0) {
fatal("failed to fork: %s", $!);
} elsif ($pid) {
+ sleep(1);
exit 0;

View File

@@ -1,11 +0,0 @@
--- ddclient-3.11.2/configure.ac.orig 2024-10-30 10:23:41.442181020 +0100
+++ ddclient-3.11.2/configure.ac 2024-10-30 10:24:22.006324398 +0100
@@ -11,7 +11,7 @@
# 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.)
-AM_INIT_AUTOMAKE([1.11 -Wall -Werror foreign subdir-objects parallel-tests])
+AM_INIT_AUTOMAKE([1.11 -Wall foreign subdir-objects parallel-tests])
AM_SILENT_RULES
AC_PROG_MKDIR_P

View File

@@ -1,3 +1,150 @@
-------------------------------------------------------------------
Mon Mar 10 08:45:27 UTC 2025 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- Some tests fails when PSGI dependencies is not prevent, revert source commit
8cf322e allows skipping them.
See https://github.com/ddclient/ddclient/issues/815
[+ Revert-tests-only-skip-HTTPD-tests.patch]
-------------------------------------------------------------------
Fri Mar 7 17:03:56 UTC 2025 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- Update to 4.0.0
* BREAKING CHANGES: ddclient now looks for `ddclient.conf` in
`${sysconfdir}/ddclient` by default instead of `${sysconfdir}`.
* To retain the previous behavior, pass `'--with-confdir=${sysconfdir}'` to
`configure`.
* The `--ssl` option is now enabled by default.
* Unencrypted (plain) HTTP is now used instead of encrypted (TLS) HTTP if the
URL uses `http://` instead of `https://`, even if the `--ssl` option is
enabled.
* The string argument to `--cmdv4` or `--cmdv6` is now executed as-is by the
system's shell, matching the behavior of the deprecated `--cmd` option.
This makes it possible to pass command-line arguments, which reduces the
need for a custom wrapper script. Beware that the string is also subject to
the shell's command substitution, quote handling, variable expansion, field
splitting, etc., so you may need to add extra escaping to ensure that any
special characters are preserved literally.
* The default web service for `--webv4` and `--webv6` has changed from Google
Domains (which has shut down) to ipify.
* Invalid command-line options or values are now fatal errors (instead of
discarded with a warning).
* All log messages are now written to STDERR, not a mix of STDOUT and STDERR.
* For `--protocol=freedns` and `--protocol=nfsn`, the core module
`Digest::SHA` is now required. Previously, `Digest::SHA1` was used (if
available) as an alternative to `Digest::SHA`.
* The `he` built-in web IP discovery service (`--webv4=he`, `--webv6=he`, and
`--web=he`) was renamed to `he.net` for consistency with the new `he.net`
protocol. The old name is still accepted but is deprecated and will be
removed in a future version of ddclient.
* Deprecated built-in web IP discovery services are not listed in the output
of `--list-web-services`.
* `dyndns2`: Support for "wait" response lines has been removed. The Dyn
documentation does not mention such responses, and the code to handle them,
untouched since at least 2006, is believed to be obsolete.
* `dyndns2`: The obsolete `static` and `custom` options have been removed.
Setting the options may produce a warning.
* The diagnostic `--geturl` command-line argument was removed.
* `easydns`: The default value for `min-interval` was increased from 5m to 10m
to match easyDNS documentation.
* `woima`: The dyn.woima.fi service appears to be defunct so support was
removed.
* `googledomains`: Support was removed because the service shut down.
* The `--retry` option was removed.
* New `--mail-from` option to control the "From:" header of email messages.
* Simultaneous/separate updating of IPv4 (A) records and IPv6 (AAAA) records
is now supported in the following services: `gandi`
* `porkbun`: Added support for subdomains.
* `gandi`: Added support for personal access tokens.
* Comments after the `\` line continuation character are now supported.
* Minor improvements to `--help` output.
* Improved formatting of ddclient's version number.
* Updated sample systemd service unit file to improve logging in the systemd
journal.
* The second and subsequent lines in a multi-line log message now have a
different prefix to distinguish them from separate log messages.
* Log messages now include context, making it easier to troubleshoot issues.
* `emailonly`: New `protocol` option that simply emails you when your IP
address changes.
* `he.net`: Added support for updating Hurricane Electric records.
* `dyndns2`, `domeneshop`, `dnsmadeeasy`, `keysystems`: The `server` option
can now include `http://` or `https://` to control the use of TLS. If
omitted, the value of the `ssl` option is used to determine the scheme.
* `ddns.fm`: New `protocol` option for updating [DDNS.FM](https://ddns.fm/)
records.
* `inwx`: New `protocol` option for updating [INWX](https://www.inwx.com/)
records.
* `domeneshop`: Add IPv6 support.
* `duckdns`: Multiple hosts with the same IP address are now updated together.
* `directnic`: Added support for updatng Directnic records.
* `porkbun`: The update URL hostname is now configurable via the `server`
option.
* `dnsexit2`: Multiple hosts are updated in a single API call when possible.
* Fixed numerous bugs in cache file (recap) handling.
* Fixed numerous bugs in command-line option and configuration file
processing.
* `noip`: Fixed failure to honor IP discovery settings in some circumstances.
* Fixed `--usev6` with providers that have not yet been updated to use the new
separate IPv4/IPv6 logic.
* HTTP redirects (301, 302) are now followed.
* `keysystems`: Fixed update URL.
* `dondominio`: Fixed response parsing.
* Fixed `--web-ssl-validate` and `--fw-ssl-validate` options, which were
ignored in some cases (defaulting to validate).
* Explicitly setting `--web-skip`, `--webv4-skip`, `--webv6-skip`,
`--fw-skip`, `--fwv4-skip`, and `--fwv6-skip` to the empty string now
disables any built-in default skip. Before, setting to the empty string had
no effect.
* `--use=disabled` now works.
* `--retry` and `--daemon` are incompatible with each other; ddclient now
errors out if both are provided.
* `--usev4=cisco` and `--usev4=cisco-asa` now work.
* Fixed "Scalar value better written as" Perl warning.
* Fixed "Invalid Value for keyword 'wtime' = ''" warning.
* Fixed unnecessary repeated updates for some services.
* Fixed DNSExit provider when configured with a zone and non-identical
hostname.
* `infomaniak`: Fixed frequent forced updates after 25 days (`max-interval`).
* `infomaniak`: Fixed incorrect parsing of server response.
* `infomaniak`: Fixed incorrect handling of `nochg` responses.
* `regfishde`: Fixed IPv6 support.
* `easydns`: IPv4 and IPv6 addresses are now updated separately to be
consistent with the easyDNS documentation.
* `easydns`: Fixed parsing of result code from server response.
* `easydns`: Fixed successful updates treated as failed updates.
* Any IP addresses in an HTTP response's headers or in an HTTP error
response's body are now ignored when obtaining the IP address from a
web-based IP discovery service (`--usev4=webv4`, `--usev6=webv6`) or from a
router/firewall device.
* `yandex`: Errors are now retried.
* `gandi`: Fixed handling of error responses.
* `dyndns2`: Fixed handling of responses for multi-host updates.
* `porkbun`: The default update URL was updated from `porkbun.com` to
`api.porkbun.com`.
- specfile:
* Update the buildrequires to get corresponding dependencies for
Tumbleweed.
* ddclient.conf is now installing in /etc/ddclient/ddclient.conf
-Addapt patches with new version
* ddclient-config.patch
* ddclient-delay-main-process-for-systemd.patch
* disable-ip-test.patch
- Removing patch deal upstream
* ddclient-disable-automake-treating-warnings-as-error.patch
-------------------------------------------------------------------
Thu Jan 9 19:44:26 UTC 2025 - chris@computersalat.de
- sync spec and changes file with SUSE_SLE-15_Update
- remove obsolete deps
* perl(IO::Socket::SSL)
-------------------------------------------------------------------
Mon Nov 25 17:03:41 UTC 2024 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- ddclient.service: Do not restrict access to devices, can conflicts
with ipmi. [bsc#1232044]
-------------------------------------------------------------------
Wed Oct 30 09:31:48 UTC 2024 - Andreas Vetter <vetter@physik.uni-wuerzburg.de>
@@ -11,6 +158,12 @@ Mon Feb 5 10:10:56 UTC 2024 - Michal Suchanek <msuchanek@suse.com>
- Use sysuser-tools to create user.
-------------------------------------------------------------------
Mon Dec 18 15:12:17 UTC 2023 - Valentin Lefebvre <valentin.lefebvre@suse.com>
- Remove buildRequires to perl(HTTP::Message::PSGI) not available and needed
only for tests.
-------------------------------------------------------------------
Thu Nov 23 17:05:39 UTC 2023 - Valentin Lefebvre <valentin.lefebvre@suse.com>
@@ -119,7 +272,7 @@ Tue Jul 12 16:08:36 UTC 2022 - chris@computersalat.de
- update ddclient-config.patch
* fix PID file path
- merge ddclient-replace-varrun-with-run.patch into
ddclient-config.patc
ddclient-config.patch
- merge changes file with SLES Maintained pkg
- update Source to %{name}-%{version}

View File

@@ -8,7 +8,9 @@ Wants=network-online.target nss-lookup.target
# https://en.opensuse.org/openSUSE:Security_Features#Systemd_hardening_effort
ProtectSystem=full
ProtectHome=true
PrivateDevices=true
PrivateDevices=false
DevicePolicy=closed
DeviceAllow=char-ipmidev rw
ProtectHostname=true
ProtectClock=true
ProtectKernelTunables=true

View File

@@ -1,7 +1,7 @@
#
# spec file for package ddclient
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: ddclient
Version: 3.11.2
Version: 4.0.0
Release: 0
Summary: A Perl Client to Update Dynamic DNS Entries
License: GPL-2.0-or-later
@@ -30,22 +30,28 @@ Source3: %{name}-tmpfiles.conf
Patch0: %{name}-config.patch
Patch1: %{name}-delay-main-process-for-systemd.patch
Patch2: disable-ip-test.patch
Patch3: %{name}-disable-automake-treating-warnings-as-error.patch
Patch3: Revert-tests-only-skip-HTTPD-tests.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: curl
BuildRequires: make
BuildRequires: sysuser-tools
BuildRequires: perl(HTTP::Daemon)
# For Leap 15.X
%if 0%{?sle_version} >= 150500 && 0%{?is_opensuse}
BuildRequires: perl(HTTP::Message::PSGI)
BuildRequires: perl(IO::Socket::SSL)
%else
# For Leap 16 and TW
%if 0%{?suse_version} >= 1600 && 0%{?is_opensuse}
BuildRequires: perl(HTTP::Message::PSGI)
%endif
%endif
BuildRequires: perl(Test::MockModule)
BuildRequires: perl(Test::Warnings)
Requires: curl
Requires: perl >= 5.10.1
Requires(pre): %fillup_prereq
Requires(pre): shadow
Recommends: perl-IO-Socket-SSL
BuildArch: noarch
%{?systemd_requires}
%sysusers_requires
@@ -81,7 +87,7 @@ make
find examples -name *exe -delete
mkdir -p %{buildroot}%{_sbindir}/
mv %{buildroot}%{_bindir}/%{name} %{buildroot}%{_sbindir}/%{name}
sed -i -e "s,%{_localstatedir}/run/,/run/%{name}/," %{buildroot}%{_sysconfdir}/%{name}.conf
sed -i -e "s,%{_localstatedir}/run/,/run/%{name}/," %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
install -D -m 644 %{SOURCE1} %{buildroot}/%{_unitdir}/%{name}.service
install -D -m 644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/%{name}.conf
ln -s service %{buildroot}%{_sbindir}/rc%{name}
@@ -110,7 +116,8 @@ make VERBOSE=1 check
%files
%doc COPY* README* examples
%config(noreplace) %attr(600,%{name},root) %{_sysconfdir}/%{name}.conf
%dir %{_sysconfdir}/%{name}
%config(noreplace) %attr(600,%{name},root) %{_sysconfdir}/%{name}/%{name}.conf
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/ddclient.conf
%ghost %dir %attr(755,%{name},%{name}) /run/%{name}

View File

@@ -1,10 +1,10 @@
--- ddclient-3.10.0/Makefile.am.bak 2022-12-27 13:47:28.996235989 +0100
+++ ddclient-3.10.0/Makefile.am 2022-12-27 13:47:34.848264936 +0100
@@ -62,7 +62,6 @@
-I'$(abs_top_srcdir)'/t/lib \
-MDevel::Autoflush
--- ddclient-4.0.0/Makefile.am 2025-01-19 20:31:09.000000000 +0100
+++ ddclient-4.0.0-new/Makefile.am 2025-03-07 17:24:07.447374713 +0100
@@ -59,7 +59,6 @@ AM_PL_LOG_FLAGS = -Mstrict -w \
handwritten_tests = \
t/builtinfw_query.pl \
t/check_value.pl \
- t/get_ip_from_if.pl \
t/is-and-extract-ipv4.pl \
t/is-and-extract-ipv6.pl \
t/is-and-extract-ipv6-global.pl \
t/geturl_connectivity.pl \
t/geturl_response.pl \
t/group_hosts_by.pl \