--- rpms/ddclient/contribs10/ddclient.spec 2020/05/08 08:20:52 1.1 +++ rpms/ddclient/contribs10/ddclient.spec 2022/11/07 17:50:29 1.4 @@ -1,98 +1,275 @@ -Summary: A client to update host entries on DynDNS like services -Name: ddclient -Version: 3.8.3 -Release: 3%{?dist} -License: GPL -Group: System Environment/Base -URL: http://ddclient.sourceforge.net/ -Source0: http://downloads.sourceforge.net/ddclient/%{name}-%{version}.tar.bz2 -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot -BuildArch: noarch -Requires: perl(IO::Socket::SSL) -Patch0: ddclient-3.8.3.IO_Socket_inet4.patch +%global cachedir %{_localstatedir}/cache/ddclient +%global rundir %{_localstatedir}/run/ddclient + +Summary: Client to update dynamic DNS host entries +Name: ddclient +Version: 3.10.0 +Release: 1%{?dist} +License: GPLv2+ +URL: https://ddclient.net/ +Source0: https://github.com/%{name}/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +Source1: ddclient.rwtab +Source2: ddclient.service +Source3: ddclient.sysconfig +Source4: ddclient.NetworkManager +Source5: ddclient-tmpfiles.conf + +BuildArch: noarch + +#BuildRequires: perl-generators +BuildRequires: systemd +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +Requires: perl(Data::Validate::IP) +Requires: perl(Digest::SHA1) +Requires: perl(IO::Socket::INET6) +Requires: perl(IO::Socket::SSL) +Requires: perl(JSON::PP) + +AutoReq: no + +# Old NetworkManager expects the dispatcher scripts in a different place +Conflicts: NetworkManager < 1.20 + %description -DDclient is a small full featured client requiring only Perl and no -additional modules. It runs under most UNIX OSes and has been tested -under Linux and FreeBSD. Supported features include: operating as a -daemon, manual and automatic updates, static and dynamic updates, -optimized updates for multiple addresses, MX, wildcards, abuse -avoidance, retrying failed updates, and sending update status to -syslog and through e-mail. This release may now obtain your IP address -from any interface, web based IP detection, Watchguard's SOHO router, -Netopia's R910 router, SMC's Barricade broadband router, Netgear's -RT3xx router, Linksys' broadband routers, MaxGate's UGATE-3x00 -routers, ELSA's LANCOM DSL/10 routers, Cisco's 2610, 3com 3c886a 56k -Lan Modem, SOHOWare BroadGuard NBG800, almost every other router with -user configurable FW definitions (see the sample-etc_ddclient.conf) -and now 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. +ddclient is a Perl client used to update dynamic DNS entries for accounts +on many different dynamic DNS services. Features include: Operating as a +daemon, manual and automatic updates, static and dynamic updates, optimized +updates for multiple addresses, MX, wildcards, abuse avoidance, retrying +the failed updates and sending update status to syslog and through e-mail. %prep %setup -q -%patch0 -p1 +# Move pid file location for running as non-root. +sed -e 's|/var/run/ddclient.pid|%{rundir}/%{name}.pid|' \ + -i ddclient.conf.in +# Send less mail by default, eg. not on every shutdown. +sed -e 's|^mail=|#mail=|' -i ddclient.conf.in +# Backwards compatibility from pre-3.6.6-1 +sed -e 's|/etc/ddclient/|%{_sysconfdir}/|' -i %{name}.in + %build +#nothing to do -%install -rm -rf %{buildroot} -mkdir -p %{buildroot}{%{_sbindir},%{_sysconfdir}/ddclient,%{_initrddir}} -install -p ddclient %{buildroot}%{_sbindir} -install -p -m 0600 sample-etc_ddclient.conf %{buildroot}%{_sysconfdir}/ddclient/ddclient.conf -touch %{buildroot}%{_sysconfdir}/ddclient.cache -install -p sample-etc_rc.d_init.d_ddclient.redhat %{buildroot}%{_initrddir}/ddclient -chmod -x sample* -mkdir -p %{buildroot}%{_localstatedir}/cache/ddclient -%clean -rm -rf %{buildroot} +%install +install -D -p -m 755 %{name}.in $RPM_BUILD_ROOT%{_sbindir}/%{name} +install -D -p -m 600 ddclient.conf.in \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf +install -D -p -m 644 %{SOURCE1} \ + $RPM_BUILD_ROOT%{_sysconfdir}/rwtab.d/%{name} + +install -D -p -m 644 %{SOURCE2} \ + $RPM_BUILD_ROOT%{_unitdir}/%{name}.service +install -D -p -m 644 %{SOURCE3} \ + $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} +install -D -p -m 755 %{SOURCE4} \ + $RPM_BUILD_ROOT%{_prefix}/lib/NetworkManager/dispatcher.d/50-%{name} +install -D -p -m 644 %{SOURCE5} \ + $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf + +mkdir -p $RPM_BUILD_ROOT%{cachedir} +mkdir -p $RPM_BUILD_ROOT%{rundir} +touch $RPM_BUILD_ROOT%{cachedir}/%{name}.cache + +# Correct permissions for later usage in %doc +chmod 644 sample-* + + +%pre +getent group %{name} > /dev/null || %{_sbindir}/groupadd -r %{name} +getent passwd %{name} > /dev/null || %{_sbindir}/useradd -r -g %{name} -d %{_localstatedir}/cache/%{name} -s /sbin/nologin -c "Dynamic DNS Client" %{name} +exit 0 %post -/sbin/chkconfig --add ddclient +%systemd_post %{name}.service +if [ $1 == 1 ]; then + mkdir -p %{rundir} + chown %{name}:%{name} %{rundir} +fi %preun -if [ $1 = 0 ]; then - /sbin/service ddclient stop > /dev/null 2>&1 - /sbin/chkconfig --del ddclient -fi +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + %files -%defattr(-,root,root,-) -%doc sample* README* COPYRIGHT COPYING -%{_sbindir}/ddclient -%dir %{_sysconfdir}/ddclient -%config(noreplace) %{_sysconfdir}/ddclient/ddclient.conf -%config(noreplace) %ghost %{_sysconfdir}/ddclient.cache -%{_initrddir}/ddclient -%{_localstatedir}/cache/ddclient +%license COPYING COPYRIGHT +%doc README* ChangeLog.md sample-etc_ppp_ip-up.local +%doc sample-etc_dhclient-exit-hooks sample-etc_cron.d_ddclient +%doc sample-ddclient-wrapper.sh sample-etc_dhcpc_dhcpcd-eth0.exe + +%{_sbindir}/%{name} +%{_tmpfilesdir}/%{name}.conf +%{_unitdir}/%{name}.service + +# sysconfdir +%config(noreplace) %{_sysconfdir}/rwtab.d/%{name} +%config(noreplace) %{_sysconfdir}/sysconfig/%{name} +%attr(600,%{name},%{name}) %config(noreplace) %{_sysconfdir}/%{name}.conf +%{_prefix}/lib/NetworkManager/dispatcher.d/50-%{name} + +# localstatedir +%attr(0700,%{name},%{name}) %dir %{cachedir} +%attr(0600,%{name},%{name}) %ghost %{cachedir}/%{name}.cache +%ghost %attr(0755,%{name},%{name}) %dir %{rundir} + %changelog -* Sun Jul 12 2015 stephane de Labrusse 3.8.3-3.sme -- Initial release to contribs9 -- added patch ddclient-3.8.3.IO_Socket_inet4.patch +* Mon Nov 07 2022 Brian Read - 3.10.0-1 +- Update to release 3.10.0 [SME:12217] + +* Tue Jun 30 2020 Brian Read - 3.9.1-2 +- Change service options to delete PID spec and add -file option to run [SME:10942] +- Delete buildrequires perl-generators in spec (no idea what or why - it works though!) + +* Fri Jan 31 2020 Scott Talbert - 3.9.1-1 +- Update to new upstream release 3.9.1 (#1796923) + +* Tue Jan 28 2020 Fedora Release Engineering - 3.9.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Aug 22 2019 Lubomir Rintel - 3.9.0-4 +- Move the NetworkManager dispatcher script out of /etc + +* Wed Jul 24 2019 Fedora Release Engineering - 3.9.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 3.9.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Aug 10 2018 Scott Talbert - 3.9.0-1 +- New upstream release 3.9.0 + +* Thu Jul 12 2018 Fedora Release Engineering - 3.8.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Feb 07 2018 Fedora Release Engineering - 3.8.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Sep 09 2017 Scott Talbert - 3.8.3-5 +- Start after network-online.target rather than network.target (#1476999) + +* Wed Jul 26 2017 Fedora Release Engineering - 3.8.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 3.8.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Fri Dec 30 2016 Scott Talbert - 3.8.3-2 +- Prevent NetworkManager from starting ddclient if it is disabled (#1409178) + +* Mon Mar 28 2016 Scott Talbert - 3.8.3-1 +- New upstream release 3.8.3 (#1226537) +- Change NetworkManager dispatcher to look for PID file (#1316149) + +* Sat Jun 07 2014 Fedora Release Engineering - 3.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Apr 21 2014 Jamie Nguyen - 3.8.2-1 +- update to upstream release 3.8.2 +- remove old EPEL 6 related macros +- remove all logic for older versions of Fedora/EPEL +- make spec more readable + +* Wed Dec 25 2013 Robert Scheck 3.8.1-9 +- Use the new systemd macros (#850084, thanks to Lukáš Nykrýn) +- Adapted the spec file to handle systemd and SysV initscripts + +* Sat Aug 10 2013 Paul Howarth - 3.8.1-8 +- BR: systemd-units for %%{_unitdir} macro definition (fixes FTBFS #992118) +- Put tmpfiles config in %%{_tmpfilesdir}, not under /etc +- Package installation creates %%{_localstatedir}/run/%%{name} (#909272, #957355) +- Service files are not executable +- Require perl(Digest::SHA1) (#909258) +- Wait for name resolution to be available before starting (#905553) + +* Sat Aug 03 2013 Fedora Release Engineering - 3.8.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 17 2013 Petr Pisar - 3.8.1-6 +- Perl 5.18 rebuild + +* Wed Feb 13 2013 Fedora Release Engineering - 3.8.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 3.8.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue May 15 2012 Jon Ciesla - 3.8.1-3 +- Add ghost to /var/run/ddclient + +* Mon May 14 2012 Jon Ciesla - 3.8.1-2 +- Add tmpfiles.d. + +* Thu Mar 29 2012 Jon Ciesla - 3.8.1-1 +- Latest upstream. +- Migrate to systemd, 718756. + +* Fri Jan 13 2012 Fedora Release Engineering - 3.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Feb 10 2011 Robert Scheck 3.8.0-4 +- Replaced Requires(hint) by Requires as RPM 4.9 dropped support + +* Tue Feb 08 2011 Fedora Release Engineering +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sat May 29 2010 Robert Scheck 3.8.0-2 +- Fixed wrong permissions at NetworkManager dispatcher (#506286) +- Updated %%description to be more verbose and detailed (#588053) + +* Sat May 01 2010 Robert Scheck 3.8.0-1 +- Upgrade to 3.8.0 and several spec file cleanups (#551906) +- Rewrote initscript to match LSB standards and headers (#246903) +- Added dispatcher to NetworkManager to avoid failures (#506286) + +* Fri Jul 24 2009 Fedora Release Engineering - 3.7.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild -* Sun Jul 12 2015 stephane de Labrusse 3.8.3-1.sme -- update to 3.8.3 +* Tue Feb 24 2009 Fedora Release Engineering - 3.7.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild -* Mon Jan 16 2012 Axel Thimm - 3.8.1-9 -- Update to 3.8.1. +* Wed Jan 23 2008 Robert Scheck 3.7.3-1 +- Upgrade to 3.7.3 (#429438) +- Updated the license tag according to the guidelines -* Sun Mar 1 2009 Axel Thimm - 3.8.0-8 -- Update to 3.8.0. +* Thu Jun 14 2007 Ville Skyttä - 3.7.2-1 +- 3.7.2. +- Tweak default config to send less mail (eg. not on every shutdown). -* Sun Aug 12 2007 Axel Thimm - 3.7.3-7 -- Update to 3.7.3. -- Fix bug #1228 (Phil Anderson ) -- Fix bug #1238 (Martin Jürgens ) +* Fri Mar 2 2007 Ville Skyttä - 3.7.1-1 +- 3.7.1, cache file moved to /var/cache/ddclient. +- Run as a dedicated ddclient user (#220539). +- Add read only root/temporary state config (#220540). +- Create/chmod cache in init script instead of %%post. +- Add scriptlet dependencies, try-restart action and other minor tweaks. -* Thu May 24 2007 Axel Thimm - 3.7.1-6 -- Update to 3.7.1. +* Sat Jul 30 2005 Ville Skyttä - 3.6.6-1 +- 3.6.6, update URLs (#165272). +- Restart service on future package upgrades (still manually needed this time). +- Don't set service to autostart on "chkconfig --add". +- Fix sysconfig/ddclient permissions. +- Drop non-useful samples. -* Wed Dec 28 2005 Axel Thimm -- Update to 3.6.7. +* Wed Apr 6 2005 Michael Schwendt - 3.6.3-5 +- rebuilt -* Sun Jul 6 2003 Axel Thimm -- Initial build. +* Mon Apr 05 2004 Toshio Kuratomi - 0:3.6.3-0.fdr.4.fc1 +- Fix %%doc %%attr ownership +- Touch the cache file in %%post +* Mon Sep 08 2003 Michael Schwendt - 0:3.6.3-0.fdr.3 +- Add own Fedora-style initscript and /etc/sysconfig/ddclient file. +- Fix file permissions of config file and example files. +- Since ddclient.cache.patch uses hardcoded /var, don't use + %%_localstatedir in spec file either. +* Sun Sep 07 2003 Thomas Vander Stichele +- 0:3.6.3-0.fdr.2: fixed ghostness of cache file