diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..f087b42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.tar.gz filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1534ba5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.rpm +*.log +*spec-20* diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c570187 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Makefile for source rpm: ddclient +# $Id: Makefile,v 1.1 2020/05/08 08:20:52 brianr Exp $ +NAME := ddclient +SPECFILE = $(firstword $(wildcard *.spec)) + +define find-makefile-common +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +endef + +MAKEFILE_COMMON := $(shell $(find-makefile-common)) + +ifeq ($(MAKEFILE_COMMON),) +# attept a checkout +define checkout-makefile-common +test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 +endef + +MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) +endif + +include $(MAKEFILE_COMMON) diff --git a/README.md b/README.md index b9e665a..b64c478 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ # ddclient -3rd Party (Maintained by Koozali) git repo for ddclient smecontribs \ No newline at end of file +3rd Party (Maintained by Koozali) git repo for ddclient smecontribs + +## Description + +
*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.* +*Once it has been checked, then this comment will be deleted* +
diff --git a/contriborbase b/contriborbase new file mode 100644 index 0000000..9b7fd51 --- /dev/null +++ b/contriborbase @@ -0,0 +1 @@ +contribs10 diff --git a/ddclient-3.11.2.tar.gz b/ddclient-3.11.2.tar.gz new file mode 100644 index 0000000..7b70095 --- /dev/null +++ b/ddclient-3.11.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:243cd832abd3cdd2b49903e1b5ed7f450e2d9c4c0eaf8ce4fe692c244d3afd77 +size 278314 diff --git a/ddclient-tmpfiles.conf b/ddclient-tmpfiles.conf new file mode 100644 index 0000000..881d82f --- /dev/null +++ b/ddclient-tmpfiles.conf @@ -0,0 +1 @@ +d /var/run/ddclient 0755 ddclient ddclient - diff --git a/ddclient.NetworkManager b/ddclient.NetworkManager new file mode 100644 index 0000000..9ce54f1 --- /dev/null +++ b/ddclient.NetworkManager @@ -0,0 +1,15 @@ +#!/bin/sh + +export LC_ALL=C + +if [ "$2" = "down" ]; then + /sbin/ip route ls | grep -q '^default' || { + [ -f /var/run/ddclient/ddclient.pid ] && /usr/bin/systemctl stop ddclient.service || : + } && { :; } +fi + +if [ "$2" = "up" ]; then + /sbin/ip -o route show dev "$1" | grep -q '^default' && { + /usr/bin/systemctl is-enabled ddclient >/dev/null && /usr/bin/systemctl start ddclient.service || : + } || { :; } +fi diff --git a/ddclient.rwtab b/ddclient.rwtab new file mode 100644 index 0000000..927514c --- /dev/null +++ b/ddclient.rwtab @@ -0,0 +1 @@ +files /var/cache/ddclient/ddclient.cache diff --git a/ddclient.service b/ddclient.service new file mode 100644 index 0000000..b282f1c --- /dev/null +++ b/ddclient.service @@ -0,0 +1,14 @@ +[Unit] +Description=A Perl Client Used To Update Dynamic DNS +After=syslog.target network-online.target nss-lookup.target + +[Service] +User=ddclient +Group=ddclient +Type=forking +EnvironmentFile=-/etc/sysconfig/ddclient +ExecStartPre=/bin/touch /var/cache/ddclient/ddclient.cache +ExecStart=/usr/sbin/ddclient -file /etc/ddclient/ddclient.conf -debug -verbose -noquiet -syslog + +[Install] +WantedBy=multi-user.target diff --git a/ddclient.spec b/ddclient.spec new file mode 100644 index 0000000..3d7b331 --- /dev/null +++ b/ddclient.spec @@ -0,0 +1,286 @@ +%global cachedir %{_localstatedir}/cache/ddclient +%global rundir %{_localstatedir}/run/ddclient + +Summary: Client to update dynamic DNS host entries +Name: ddclient +Version: 3.11.2 +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 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 +# 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 +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 +%systemd_post %{name}.service +if [ $1 == 1 ]; then + mkdir -p %{rundir} + chown %{name}:%{name} %{rundir} +fi + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + + +%files +%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 +* Sat May 10 2025 BogusDateBot +- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday, + by assuming the date is correct and changing the weekday. + + +* Fri Dec 01 2023 Brian Read 3.11.2-1.sme +- Update to release 3.11.2 [SME:12439] + +* Wed Nov 08 2023 Brian Read 3.11.0-2.sme +- Update to release 3.11.1 [SME:12425] + +* 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 + +* Tue Feb 24 2009 Fedora Release Engineering - 3.7.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Jan 23 2008 Robert Scheck 3.7.3-1 +- Upgrade to 3.7.3 (#429438) +- Updated the license tag according to the guidelines + +* 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). + +* 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. + +* 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 Apr 6 2005 Michael Schwendt - 3.6.3-5 +- rebuilt + +* 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 diff --git a/ddclient.sysconfig b/ddclient.sysconfig new file mode 100644 index 0000000..97de4c1 --- /dev/null +++ b/ddclient.sysconfig @@ -0,0 +1,4 @@ +# -*- sh -*- +# ddclient service options, see ddclient --help for what's available. +# +DDCLIENT_OPTIONS="-daemon 300"