ddclient/ddclient.spec
Philipp Thomas eb4f1953eb - Use perl_requires instead of harcoding a value.
- fix pidfile path in /etc/ddclient.conf and set ownership to ddclient
- create user and group ddclient (bnc#881520)
- create /run/ddclient/ with user and group ddclient if not yet 
  available in %pre

OBS-URL: https://build.opensuse.org/package/show/network/ddclient?expand=0&rev=36
2014-07-01 11:53:04 +00:00

138 lines
4.4 KiB
RPMSpec

#
# spec file for package ddclient
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: ddclient
Summary: A Perl Client to Update Dynamic DNS Entries
License: GPL-2.0+
Group: Productivity/Networking/DNS/Utilities
Version: 3.8.2
Release: 0
Url: http://ddclient.sourceforge.net/
Source0: http://prdownloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
Source1: %{name}.service
Source2: %{name}.sysconfig
Source3: %{name}-tmpfiles.conf
Source4: rc.%{name}
Patch0: %{name}-3.8.1-config.patch
BuildRequires: pkgconfig(systemd)
BuildArch: noarch
Requires(pre): %fillup_prereq shadow
%{?perl_requires}
%{?systemd_requires}
Recommends: perl-IO-Socket-SSL
%description
ddclient is a small full-featured client requiring only Perl. Supported
features include daemon operation, manual and automatic updates, static
and dynamic updates, optimized updates for multiple addresses, MX, wild
cards, abuse avoidance, retry for failed updates, and status updates to
syslog and through e-mail. ddclient can obtain the IP address from any
interface, through a Web-based IP detection service, and for multiple
routers using custom FW definitions. It also 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.
%prep
%setup
%patch0
rm -f sample-etc_ddclient.conf.orig
chmod a-x sample-*
mkdir examples
mv sample-* examples
%build
#%%configure
#make
# If the package provides automatic testing
#make test
# nothing to do here (yet)
%install
#make DESTDIR=$RPM_BUILD_ROOT install
%{__mkdir_p} %{buildroot}%{_sbindir}
%{__mkdir_p} %{buildroot}%{_sysconfdir}
%if 0%{?suse_version} >=1230
%{__mkdir_p} %{buildroot}%{_unitdir}
%{__mkdir_p} %{buildroot}%{_libexecdir}/tmpfiles.d
%else
%{__mkdir_p} %{buildroot}%{_sysconfdir}/init.d
%endif
%{__install} -m 755 %{name} %{buildroot}%{_sbindir}/
%{__install} -m 600 examples/sample-etc_ddclient.conf %{buildroot}%{_sysconfdir}/%{name}.conf
# init script and config file
%if 0%{?suse_version} >=1230
%{__install} -m 644 %{SOURCE1} %{buildroot}/%{_unitdir}/%{name}.service
%{__install} -m 644 %{SOURCE3} %{buildroot}%{_libexecdir}/tmpfiles.d/%{name}.conf
%{__ln_s} %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
%else
%{__install} -m 755 %{SOURCE4} %{buildroot}%{_sysconfdir}/init.d/%{name}
%{__ln_s} %{_sysconfdir}/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name}
%endif
%{__install} -d -m 755 %{buildroot}/var/adm/fillup-templates
%{__install} -m 644 %{SOURCE2} %{buildroot}/var/adm/fillup-templates/sysconfig.%{name}
%{__install} -d -m 755 %{buildroot}/var/cache/%{name}
%pre
%if 0%{?suse_version} >=1230
%service_add_pre %{name}.service
%endif
getent group %{name} >/dev/null || %{_sbindir}/groupadd -r %{name}
getent passwd %{name} >/dev/null || %{_sbindir}/useradd -r -g %{name} -d /var/cache/%{name} -s /bin/false -c "user for ddclient" %{name}
test -d /run/ddclient || mkdir /run/ddclient
chown ddclient /run/ddclient
chgrp ddclient /run/ddclient
%post
%{fillup_only}
%if 0%{?suse_version} >=1230
%service_add_post %{name}.service
%endif
%preun
%if 0%{?suse_version} >=1230
%service_del_preun %{name}.service
%else
%stop_on_removal ddclient
%endif
%postun
%if 0%{?suse_version} >=1230
%service_del_postun %{name}.service
%else
%restart_on_update ddclient
%insserv_cleanup
%endif
%files
%defattr(-, root, root)
%dir %attr(700,%{name},%{name}) /var/cache/%{name}
%doc COPY* README* examples
%config(noreplace) %attr(660,%{name},%{name}) %{_sysconfdir}/%{name}.conf
%if 0%{?suse_version} >=1230
%{_unitdir}/%{name}.service
%{_libexecdir}/tmpfiles.d/ddclient.conf
%else
/etc/init.d/%{name}
%endif
%{_sbindir}/%{name}
%{_sbindir}/rc%{name}
/var/adm/fillup-templates/sysconfig.%{name}
%changelog