I upgrade my router to 19.07 and install ddns package, this is what I get after the installation:
~# /usr/lib/ddns/dynamic_dns_updater.sh: eval: line 1: syntax error: unexpected "("
This is the content of the file "/usr/lib/ddns/dynamic_dns_updater.sh": https://paste.debian.net/1126360/
Is this a bug in the package?
Thanks for your help.
No bug. I have multiple instances of DDNS running on 19.07.0. It's working; and hence the updater script is OK. (It would be nice for others to confirm, though.)
Perhaps there's a bad character in your DDNS config file?
This might be a shell issue? The first line in the script points to /bin/sh, so it should be using that shell (which is really a symlink to /bin/busybox).
Someone could test this command? /bin/sh /usr/lib/ddns/dynamic_dns_updater.sh start
This is my output:
# /bin/sh /usr/lib/ddns/dynamic_dns_updater.sh start
root@Router:~# /usr/lib/ddns/dynamic_dns_updater.sh: eval: line 1: syntax error: unexpected "("
On 19.07 on Shelby and I see the same result. I'm using arfraid.org and freedns scripts.
In bash I'd add "export set -x" for more output, but ash doesn't support the export command?
I had this same error after upgrading to 19.07.1 and fixed it by reinstalling the ca-certificates bundle package. I've no idea why the missing ca-certificates file caused this syntax error
I ran into the same issue.
opkg install hostip solved it.
The bit more verbose explanation is, that
/usr/lib/ddns/dynamic_dns_functions.sh probes a list of tools to do the DNS lookup. The last resort is busybox' builtin
nslookup – which does not support IPv6. In case
use_ipv6 is set to true the script tries to print a warning message about this, but a badly escaped bracket then leads to that error.
The second-last resort that gets probed is
hostip which does support IPv6 and therefore is the best option for my setup anyway: I have an IPv6-only DDNS setup. I guess with an IPv4-only setup one does not run into this error.
I'll try to fix the script and/or the package's dependencies, but it might take a while.