update-dnsomatic

maintainer severach · 6 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The source is a tarball from Google Code Archive, which is a legitimate historical source; the package builds from official source code and installs only configuration files, a systemd timer, and a simple Perl script with no evidence of malicious behavior.

Triggered rules

LOW AI review downgraded a static finding llm_review

The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The source is a tarball from Google Code Archive, which is a legitimate historical source; the package builds from official source code and installs only configuration files, a systemd timer, and a simple Perl script with no evidence of malicious behavior.

1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM source=() URL on a non-standard host source_untrusted_domain

One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).

  • PKGBUILD:42 source=("https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/update-dnsomatic/update-dnsomatic-${pkgver}.tar.gz")

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Chris Severance aur.severach aATt spamgourmet dott com
2# Contributor: Matt Parnell <parwok@gmail.com>
3
4# BUG: So far as I can tell updating multiple hosts with a single request is no longer supported by the DNS-O-Matic service.
5# The code could be updated to put out a separate request for each host. This is a bit more than sed can do.
6# Future BUG: When multiple hosts is implemented, don't wait for IP to change when new hosts are added.
7# Until this is fixed server connections are not attempted when multiple hosts are specified.
8# FIXED: The interactive stuff in the old PKGBUILD has been moved to install
9# FIXED: Connections are not be attempted for default user = userid or password = password
10# FIXED: Launches with cron as root or systemd timer as user nobody
11# TODO: Implement IP change log
12# TODO: Implement all Dynamic DNS services including DNS-O-Matic.
13# TODO: Add version to config so we can discard it on same version upgrades and installs.
14# TODO: Add settings promotion to new config files.
15# TODO: Better variable detection in config (I suspect blank lines aren't handled well)
16
17# If upgrading from an old version you might get a file conflict
18# update-dnsomatic: /etc/update-dnsomatic/myip exists in filesystem
19# To solve
20# sudo mv /etc/update-dnsomatic/myip /etc/update-dnsomatic/myip.pacsave
21
22# Starting out it's hard to tell what to put in for myhost. In your DNS-O-Matic account screen you see
23# Service
24# username :: myhost
25# For OpenDNS myhost is just a phrase like Home, Office, or Gramma
26
27set -u
28pkgname='update-dnsomatic'
29pkgver='0.2.1'
30pkgrel='1'
31pkgdesc='A perl utility that updates OpenDNS DNS-O-Matic, and is simpler than inyadn'
32arch=('i686' 'x86_64')
33#url='https://github.com/rivy/update-dnsomatic'
34#url='http://prawnuk.blogspot.com/2008/11/dnsomatic-updater.html' # Seán Doher
35url='https://code.google.com/archive/p/update-dnsomatic/downloads'
36license=('GPL')
37depends=('perl' 'perl-libwww' 'perl-crypt-ssleay' 'perl-lwp-protocol-https')
38optdepends=('cron: use cron instead of systemd timers')
39backup=('etc/update-dnsomatic/config')
40install="${pkgname}.install"
41#source=("http://update-dnsomatic.googlecode.com/files/${pkgname}-${pkgver}.tar.gz")
42source=("https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/update-dnsomatic/update-dnsomatic-${pkgver}.tar.gz")
43md5sums=('3710f7a927e79d0d35bc5b4fcc03b31b')
44sha256sums=('e4b44ffc8caf1114464ca2ae7a925ca06b632379befa88ac39e36c09253a4715')
45
46package() {
47 set -u
48 cd "${pkgname}-${pkgver}"
49 install -Dpm640 'config' -t "${pkgdir}/etc/update-dnsomatic/"
50 chmod 775 "${pkgdir}/etc/update-dnsomatic/"
51 # This lets pacman -Qo show us as the owner of this file. It also lets pacman delete this file.
52 install -Dm664 /dev/null "${pkgdir}/etc/update-dnsomatic/myip"
53 install -Dpm754 'update-dnsomatic' -t "${pkgdir}/usr/bin/"
54
55 local _codedouble='
56use Getopt::Long;
57my $arg_daemon=0;
58
59if (!GetOptions (
60 "daemon" => \$arg_daemon
61) or @ARGV > 0) {
62 die("$0: Invalid command line options: @ARGV\n");
63}'
64 _codedouble="$(echo "${_codedouble}" | sed -e 's:\\:\\\\:g' | tr '\n' '\r' | sed -e 's:\r:\\n:g')" # escape \n for sed replacement
65
66 # Fix permissions
67 sed -i -e '# Fix permissions on new file creation for systemd to run as nobody' \
68 -e 's:^sub write_new_ip {$:&\n umask 0002;:g' \
69 -e '# Fix some horrible spacing' \
70 -e 's:\s\+$::g' \
71 -e '# Block unsupported multiple hosts rather than spam the servers' \
72 -e '# Prevent spamming servers with blank or default userid:password' \
73 -e 's:^\(\s\+\)close(CONFIG);$:&\n\1if (index($config{myhost}, ",") >= 0) {\n\1\1write_log("err", "Multiple myhost is not supported by DNS-O-Matic. Fix /etc/update-dnsomatic/config");\n\1\1exit(1);\n\1}\n\1if (!$config{user} or !$config{pass} or $config{user} eq "userid" or $config{pass} eq "password") {\n\1\1write_log("err", "User and pass must be set in /etc/update-dnsomatic/config");\n\1\1exit(1);\n\1}:g' \
74 -e '# getopts code for doubled log entries in systemctl status update-dnsomatic.service' \
75 -e 's/^use Sys::Syslog;$'"/&${_codedouble}/g" \
76 -e '# Stop doubled log entries' \
77 -e 's:^\(\s\+print "\$msg\\n"\);$:\1 if (!$arg_daemon);:g' \
78 "${pkgdir}/usr/bin/update-dnsomatic"
79 unset _codedouble
80
81 install -Dm644 <(cat << EOF
82# Automatically generated by ${pkgname}-${pkgver} PKGBUILD from Arch Linux AUR
83# https://aur.archlinux.org/
84
85[Unit]
86Description=OpenDNS DNS-O-Matic updater ${pkgname}
87
88[Timer]
89OnBootSec=5min
90OnCalendar=*:0/10
91Persistent=true
92
93[Install]
94WantedBy=multi-user.target
95EOF
96 ) "${pkgdir}/usr/lib/systemd/system/${pkgname}.timer"
97
98 install -Dm644 <(cat << EOF
99# Automatically generated by ${pkgname}-${pkgver} PKGBUILD from Arch Linux AUR
100# https://aur.archlinux.org/
101
102[Unit]
103Description=OpenDNS DNS-O-Matic updater ${pkgname}
104
105[Service]
106Type=oneshot
107ExecStart=/usr/bin/update-dnsomatic --daemon
108Nice=19
109IOSchedulingClass=best-effort
110IOSchedulingPriority=7
111User=nobody
112Group=nobody
113EOF
114 ) "${pkgdir}/usr/lib/systemd/system/${pkgname}.service"
115
116 set +u
117}
118set +u
119

Scan history

Scanned at (UTC)SeverityRules
2026-08-03 00:08:14 LOW 2
2026-08-02 00:16:08 LOW 2
2026-08-01 00:11:18 LOW 2
2026-07-31 00:14:10 LOW 2
2026-07-30 00:17:23 LOW 2
2026-07-29 00:25:53 LOW 2
2026-07-28 00:07:28 LOW 2
2026-07-27 00:24:32 LOW 2
2026-07-26 00:07:32 LOW 2
2026-07-25 00:13:44 LOW 2
2026-07-24 00:02:28 LOW 2
2026-07-23 00:14:47 LOW 2
2026-07-22 00:29:32 LOW 2
2026-07-21 00:24:15 LOW 2
2026-07-20 00:19:49 LOW 2
2026-07-19 00:17:08 LOW 2
2026-07-18 00:14:48 LOW 2
2026-07-17 00:06:16 LOW 2
2026-07-16 00:05:41 LOW 2
2026-07-15 00:09:25 LOW 2

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion