]> git.pld-linux.org Git - packages/ddclient.git/blobdiff - ddclient.spec
up to 3.11.2
[packages/ddclient.git] / ddclient.spec
index fdfb35ca2d4fcc9693fd87c11132f52cd42d682c..3c58c3aaa93f3e7557e1a9f80aad947c0af0e0bc 100644 (file)
@@ -1,24 +1,53 @@
-%include       /usr/lib/rpm/macros.perl
+#
+# Conditional build:
+%bcond_without systemd         # systemd units
+
 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
-Version:       3.6.7
+Version:       3.11.2
 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: 5ef2ff089cfe4d4b9e1248881199eb4a
 Source1:       %{name}.init
-URL:           http://ddclient.sourceforge.net/
+Source2:       %{name}.sysconfig
+Source3:       %{name}.NetworkManager
+Source4:       %{name}-tmpfiles.conf
+Source5:       %{name}.service
+Patch0:                config.patch
+URL:           https://github.com/ddclient/ddclient
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: perl-base
 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
+%{?with_systemd:Requires:      systemd-units >= 1:250.1}
+# 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
+%define                _sysconfdir     /etc/ddclient
+
 %description
 DDclient is a small full featured client with FULL DynDNS NIC2
 support, requiring only Perl and no additional modules. It runs under
@@ -35,64 +64,109 @@ provides Full support for DynDNS.org's NIC2 protocol. Support is also
 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
-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.
-
-%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
+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.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
+%patch0 -p1
+
+%build
+%{__aclocal}
+%{__autoconf}
+%{__automake}
+%configure \
+       CURL=/usr/bin/curl
+%{__make}
 
 %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},%{?with_systemd:%{systemdunitdir},}%{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}
+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
+%{?with_systemd:cp -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service}
+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"
+if [ "$1" = "2" ]; then
+       %service %{name} try-restart "%{name} daemon"
+fi
+%{?with_systemd:%systemd_post %{name}.service}
 
 %preun
 if [ "$1" = "0" ]; then
        %service %{name} stop
        /sbin/chkconfig --del %{name}
 fi
+%{?with_systemd:%systemd_preun %{name}.service}
 
-%triggerpostun -- ddclient < 1:3.6.4
+%postun
+if [ "$1" = "0" ]; then
+       %userremove ddclient
+       %groupremove ddclient
+fi
+%{?with_systemd:%systemd_reload}
+
+%triggerpostun -- ddclient < 1:3.9.1-2
 if [ -f /etc/ddclient.conf.rpmsave ]; then
        echo "Moving config to new location /etc/ddclient"
        mv -f /etc/ddclient/ddclient.conf /etc/ddclient/ddclient.conf.rpmnew
        mv -f /etc/ddclient.conf.rpmsave /etc/ddclient/ddclient.conf
        mv -f /etc/ddclient.cache /etc/ddclient.cache.rpmsave
 fi
+%{?with_systemd:%systemd_trigger %{name}.service}
+
+%triggerin -- perl-base
+[ "$2" = "2" ] || exit 0
+%service %{name} try-restart "%{name} daemon"
+%{?with_systemd:%systemd_service_restart %{name}.service}
 
 %files
 %defattr(644,root,root,755)
-%doc Changelog README*
-%attr(755,root,root) %{_sbindir}/*
-%dir %{_sysconfdir}/%{name}
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
+%doc ChangeLog.md README*
+%attr(755,root,root) %{_sbindir}/ddclient
+%dir %{_sysconfdir}
+# 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}.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
+%{?with_systemd:%{systemdunitdir}/%{name}.service}
+
+%dir %attr(770,root,ddclient) %{cachedir}
+%ghost %attr(600,ddclient,ddclient) %ghost %{cachedir}/%{name}.cache
+%dir %attr(770,root,ddclient) %{rundir}
This page took 0.031961 seconds and 4 git commands to generate.