-%include /usr/lib/rpm/macros.perl
Summary: A dynamic IP address utility
-Summary(pl): Narzêdzie do dynamicznych adresów IP
-Summary(pt_BR): Cliente para atualizar entradas DNS dinâmicas no DynDNS.org
+Summary(pl.UTF-8): Narzędzie do dynamicznych adresów IP
+Summary(pt_BR.UTF-8): Cliente para atualizar entradas DNS dinâmicas no DynDNS.org
Name: ddclient
-Epoch: 1
-Version: 3.6.7
+Version: 3.9.1
Release: 1
+Epoch: 1
License: GPL v2
Group: Networking
-Source0: http://dl.sourceforge.net/ddclient/%{name}-%{version}.tar.bz2
-# Source0-md5: b07a29a891dcf40b941b9bc5ef3ce598
+Source0: https://github.com/ddclient/ddclient/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: 8497033052649ebe6f714338c7be4cda
Source1: %{name}.init
-URL: http://ddclient.sourceforge.net/
+Source2: %{name}.sysconfig
+Source3: %{name}.NetworkManager
+Source4: %{name}-tmpfiles.conf
+Patch0: config.patch
+URL: https://github.com/ddclient/ddclient
BuildRequires: rpm-perlprov
BuildRequires: rpmbuild(macros) >= 1.268
+Provides: group(ddclient)
+Provides: user(ddclient)
Requires(post,preun): /sbin/chkconfig
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
Requires: rc-scripts
+# for freedns: Digest::SHA1, IO::Socket::SSL
+Suggests: perl-Digest-SHA1
+Suggests: perl-IO-Socket-SSL
+# for cloudflare JSON::Any
+Suggests: perl-JSON-Any
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+%define cachedir %{_localstatedir}/cache/ddclient
+%define rundir %{_localstatedir}/run/ddclient
+
%description
DDclient is a small full featured client with FULL DynDNS NIC2
support, requiring only Perl and no additional modules. It runs under
included for other dynamic DNS services. Comes with sample scripts for
use with DHCP, PPP, and cron. See the README for more information.
-%description -l pl
-DDclient to ma³y, w pe³ni funkcjonalny klient z PE£N¡ obs³ug± DynDNS
-NIC2, wymagaj±cy tylko Perla bez ¿adnych dodatkowych modu³ów. Dzia³a
-pod wiêkszo¶ci± systemów uniksowych, by³ testowany pod Linuksem i
-FreeBSD. Jego mo¿liwo¶ci to miêdzy innymi: praca jako demon, rêczne
-i automatyczne uaktualnienia, statyczne i dynamiczne uaktualnienia,
-uaktualnienia zoptymalizowane dla wielu adresów, MX-y, wildcardy,
-zapobieganie nadu¿yciom, ponawianie nieudanych uaktualnieñ, wysy³anie
-statusu uaktualnieñ do sysloga i poczt±. Ta wersja mo¿e pobraæ adres
-IP z dowolnego interfejsu, wykrywania przez WWW, routerów: Watchguard
+%description -l pl.UTF-8
+DDclient to mały, w pełni funkcjonalny klient z PEŁNĄ obsługą DynDNS
+NIC2, wymagający tylko Perla bez żadnych dodatkowych modułów. Działa
+pod większością systemów uniksowych, był testowany pod Linuksem i
+FreeBSD. Jego możliwości to między innymi: praca jako demon, ręczne i
+automatyczne uaktualnienia, statyczne i dynamiczne uaktualnienia,
+uaktualnienia zoptymalizowane dla wielu adresów, MX-y, wildcardy,
+zapobieganie nadużyciom, ponawianie nieudanych uaktualnień, wysyłanie
+statusu uaktualnień do sysloga i pocztą. Ta wersja może pobrać adres
+IP z dowolnego interfejsu, wykrywania przez WWW, routerów: Watchguard
SOGO, szerokopasmowych SMC Barricane, Netgear RT3xx, szerokopasmowych
-Linksys, MaxGate UGATE-3x00, ELSA LANCOM DSL/10, a teraz tak¿e ma
-pe³n± obs³ugê protoko³u DynDNS NIC2. Ma tak¿e wsparcie dla innych
-us³ug dynamicznego DNS. Zawiera przyk³adowe skrypty do u¿ywania z
-DHCP, PPP i cronem. Wiêcej informacji w README.
+Linksys, MaxGate UGATE-3x00, ELSA LANCOM DSL/10, a teraz także ma
+pełną obsługę protokołu DynDNS NIC2. Ma także wsparcie dla innych
+usług dynamicznego DNS. Zawiera przykładowe skrypty do używania z
+DHCP, PPP i cronem. Więcej informacji w README.
-%description -l pt_BR
-O ddclient é um cliente perl usada para atualizar entradas DNS
-dinâmicas em contas do serviço de DNS dinâmico gratuito. Veja
-http://www.dyndns.org para obter detalhes sobre como obter uma conta
+%description -l pt_BR.UTF-8
+O ddclient é um cliente perl usada para atualizar entradas DNS
+dinâmicas em contas do serviço de DNS dinâmico gratuito. Veja
+<http://www.dyndns.org> para obter detalhes sobre como obter uma conta
gratuita.
%prep
%setup -q
+cp -p sample-etc_ddclient.conf %{name}.conf
+%patch0 -p1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_sysconfdir}/ddclient,/etc/rc.d/init.d,%{_sbindir}}
+install -d $RPM_BUILD_ROOT{%{_sysconfdir}/%{name},/etc/{rc.d/init.d,sysconfig,NetworkManager/dispatcher.d}} \
+ $RPM_BUILD_ROOT{%{_sbindir},%{systemdtmpfilesdir},%{cachedir},%{rundir}}
-install sample-etc_ddclient.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.conf
-install %{name} $RPM_BUILD_ROOT%{_sbindir}
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{name}.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
+install -p %{name} $RPM_BUILD_ROOT%{_sbindir}
+install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/50-%{name}
+cp -p %{SOURCE4} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
+touch $RPM_BUILD_ROOT%{cachedir}/%{name}.cache
%clean
rm -rf $RPM_BUILD_ROOT
+%pre
+%groupadd -g 325 ddclient
+%useradd -u 525 -d /var/run/%{name} -g ddclient -c "ddclient user" ddclient
+
%post
/sbin/chkconfig --add %{name}
%service %{name} restart "%{name} daemon"
/sbin/chkconfig --del %{name}
fi
+%postun
+if [ "$1" = "0" ]; then
+ %userremove ddclient
+ %groupremove ddclient
+fi
+
%triggerpostun -- ddclient < 1:3.6.4
if [ -f /etc/ddclient.conf.rpmsave ]; then
echo "Moving config to new location /etc/ddclient"
%files
%defattr(644,root,root,755)
-%doc Changelog README*
-%attr(755,root,root) %{_sbindir}/*
+%doc ChangeLog Changelog.old README*
+%attr(755,root,root) %{_sbindir}/ddclient
%dir %{_sysconfdir}/%{name}
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
+# switch to %attr(640,root,ddclient) when this gets resolution: https://sourceforge.net/p/ddclient/bugs/77/
+%attr(600,ddclient,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
%attr(754,root,root) /etc/rc.d/init.d/%{name}
+%attr(755,root,root) /etc/NetworkManager/dispatcher.d/50-%{name}
+%{systemdtmpfilesdir}/%{name}.conf
+
+%dir %attr(770,root,ddclient) %{cachedir}
+%ghost %attr(600,ddclient,ddclient) %ghost %{cachedir}/%{name}.cache
+%dir %attr(770,root,ddclient) %{rundir}