# TODO
# - update paths in manuals (create .in files and send upstream)
# - make /etc/pam.d independant of sysconfdir (configure-able option and send upstream)
-# - https://fedorahosted.org/cronie/changeset/272c4a5c417bfa6e04148fc35a4fe4c6956b17e1
-# should we follow it too? our pam contains cron.{allow,deny} listfile rules,
-# cronie itself checks these files so safe to drop?
+# - syslog output (-s) writes two bytes of garbage to syslog instead of actual data:
+# Mar 3 09:30:01 ravenous CROND[2528]: 4ΓΏ
#
# Conditional build:
%bcond_without inotify # without inotify support
Summary: Cron daemon for executing programs at set times
Name: cronie
-Version: 1.4.2
-Release: 1
+Version: 1.4.8
+Release: 5
License: MIT and BSD and GPL v2
Group: Daemons
Source0: https://fedorahosted.org/releases/c/r/cronie/%{name}-%{version}.tar.gz
-# Source0-md5: 9c7cef09ff9c92a90a314a1e947fae5c
+# Source0-md5: 9b1d2ce6db8d1883e06635f437170657
Source1: %{name}.init
Source2: cron.logrotate
Source3: cron.sysconfig
Source4: %{name}.crontab
Source5: %{name}.pam
+Source6: %{name}.upstart
+Source7: crond.service
Patch0: inotify-nosys.patch
Patch1: %{name}-nosyscrontab.patch
+Patch2: sendmail-path.patch
URL: https://fedorahosted.org/cronie/
%{?with_audit:BuildRequires: audit-libs-devel}
BuildRequires: autoconf
%{?with_selinux:BuildRequires: libselinux-devel}
BuildRequires: pam-devel
BuildRequires: rpm >= 4.4.9-56
-BuildRequires: rpmbuild(macros) >= 1.268
+BuildRequires: rpmbuild(macros) >= 1.623
Requires(post): fileutils
Requires(post,preun): /sbin/chkconfig
-Requires(post,preun): rc-scripts
Requires(postun): /usr/sbin/groupdel
Requires(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires: /bin/run-parts
-Requires: /sbin/chkconfig
Requires: psmisc >= 20.1
-Requires: rc-scripts
+Requires: rc-scripts >= 0.4.3.0
%{?with_inotify:Requires: uname(release) >= 2.6.13}
Provides: crondaemon
Provides: crontabs = 1.7
Provides: group(crontab)
%if "%{pld_release}" == "th"
-Provides: vixie-cron = 4:4.4
+Provides: vixie-cron = 4.3-1
%endif
Obsoletes: crondaemon
Obsoletes: crontabs
%if "%{pld_release}" == "th"
-Obsoletes: vixie-cron <= 4:4.3
+Obsoletes: vixie-cron < 4.3-1
%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
regular jobs. The default settings execute regular jobs by anacron,
however this could be overloaded in settings.
+%package upstart
+Summary: Upstart job description for Cronie
+Summary(pl.UTF-8): Opis zadania Upstart dla Cronie
+Group: Daemons
+Requires: %{name} = %{version}-%{release}
+Requires: upstart >= 0.6
+
+%description upstart
+Upstart job description for Cronie.
+
+%description upstart -l pl.UTF-8
+Opis zadania Upstart dla Cronie.
+
+%package systemd
+Summary: systemd units for cronie
+Group: Base
+Requires: %{name} = %{version}-%{release}
+Requires: systemd-units
+
+%description systemd
+systemd units for cronie.
+
%prep
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
%{__aclocal}
--with%{!?with_selinux:out}-selinux \
--with%{!?with_audit:out}-audit \
--with%{!?with_inotify:out}-inotify \
+ --enable-pie \
+ --enable-relro \
--enable-anacron
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir}} \
- $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
+install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},/lib/systemd/system}\
+ $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig,init} \
$RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
%{__make} install \
cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond
+cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/init/crond.conf
+cp -a %{SOURCE7} $RPM_BUILD_ROOT%{systemdunitdir}/cronie.service
+ln -s cronie.service $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
touch $RPM_BUILD_ROOT/var/log/cron
%post
if [ ! -f /var/log/cron ]; then
- umask 027
- touch /var/log/cron
- chgrp crontab /var/log/cron
- chmod 660 /var/log/cron
+ install -m 660 -g crontab /dev/null /var/log/cron
fi
/sbin/chkconfig --add crond
%service crond restart "Cron Daemon"
%groupremove crontab
fi
-%triggerpostun -- hc-cron
-# reinstall crond init.d links, which could be different
-/sbin/chkconfig --del crond
-/sbin/chkconfig --add crond
-
-%triggerun -- vixie-cron
+%triggerun -- hc-cron,fcron,vixie-cron
# Prevent preun from crond from working
chmod a-x /etc/rc.d/init.d/crond
-%triggerpostun -- vixie-cron
+%triggerpostun -- hc-cron,fcron,vixie-cron
# Restore what triggerun removed
chmod 754 /etc/rc.d/init.d/crond
+# reinstall crond init.d links, which could be different
+/sbin/chkconfig --del crond
/sbin/chkconfig --add crond
+%post upstart
+%upstart_post crond
+
+%postun upstart
+%upstart_postun crond
+
+%post systemd
+%systemd_post
+%systemd_enable cronie.service
+
+%preun systemd
+%systemd_preun cornie.service
+
+%postun systemd
+%systemd_postun cornie.service
+
%files
%defattr(644,root,root,755)
%doc AUTHORS ChangeLog README
%{_mandir}/man8/anacron.8*
%attr(1730,root,crontab) /var/spool/anacron
+
+%if "%{pld_release}" != "ti"
+%files upstart
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) /etc/init/crond.conf
+%endif
+
+%files systemd
+%defattr(644,root,root,755)
+%{systemdunitdir}/crond.service
+%{systemdunitdir}/cronie.service