2 # - update paths in manuals (create .in files and send upstream)
3 # - make /etc/pam.d independant of sysconfdir (configure-able option and send upstream)
4 # - syslog output (-s) writes two bytes of garbage to syslog instead of actual data:
5 # Mar 3 09:30:01 ravenous CROND[2528]: 4ÿ
8 %bcond_without inotify # without inotify support
9 %if "%{pld_release}" == "ac"
10 %bcond_with selinux # with SELinux support
11 %bcond_with audit # with audit support
13 %bcond_without selinux # without SELinux support
14 %bcond_without audit # without audit support
17 Summary: Cron daemon for executing programs at set times
18 Summary(pl.UTF-8): Demon cron do uruchamiania programów o zadanym czasie
22 License: MIT and BSD and GPL v2
24 #Source0Download: https://github.com/cronie-crond/cronie/releases
25 Source0: https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
26 # Source0-md5: 2dacf4a7198b26dbd497a418cf31443d
28 Source3: cron.sysconfig
29 Source4: %{name}.crontab
31 Source6: crond.service
32 Patch0: inotify-nosys.patch
33 Patch1: sendmail-path.patch
34 URL: https://github.com/cronie-crond/cronie/
35 %{?with_audit:BuildRequires: audit-libs-devel}
36 BuildRequires: autoconf >= 2.60
37 BuildRequires: automake
38 BuildRequires: glibc-devel >= 6:2.21
39 %{?with_selinux:BuildRequires: libselinux-devel}
40 BuildRequires: pam-devel
41 BuildRequires: rpm >= 4.4.9-56
42 BuildRequires: rpmbuild(macros) >= 1.647
43 Requires(post): fileutils
44 Requires(post,preun): /sbin/chkconfig
45 Requires(postun): /usr/sbin/groupdel
46 Requires(pre): /usr/bin/getgid
47 Requires(pre): /usr/sbin/groupadd
48 Requires: /bin/run-parts
49 Requires: psmisc >= 20.1
50 Requires: rc-scripts >= 0.4.3.0
51 %if "%{pld_release}" != "ac"
52 Requires(post,preun,postun): systemd-units >= 38
53 Requires: systemd-units >= 38}
55 %{?with_inotify:Requires: uname(release) >= 2.6.13}
57 Provides: crontabs = 1.7
59 Provides: group(crontab)
60 %if "%{pld_release}" == "th"
61 Provides: vixie-cron = 4.3-1
64 Obsoletes: cronie-systemd < 1.4.8-9
65 Obsoletes: cronie-upstart < 1.4.12-5
68 %if "%{pld_release}" == "th"
69 Obsoletes: vixie-cron < 4.3-1
71 Conflicts: sysklogd < 1.5.1-2
72 Conflicts: syslog-ng < 3.6.4-3
73 Conflicts: rsyslog < 5.10.1-4
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
77 Cronie contains the standard UNIX daemon crond that runs specified
78 programs at scheduled times and related tools. It is based on the
79 original cron and has security and configuration enhancements like the
80 ability to use PAM and SELinux.
82 %description -l pl.UTF-8
83 Cronie zawiera standardowego demona uniksowego crond, uruchamiającego
84 podane programy o zadanym czasie, oraz powiązane narzędzia. Jest
85 oparty na oryginalnym cronie i zawiera rozszerzenia bezpieczeństwa i
86 konfiguracji, takie jak możliwość wykorzystania mechanizmów PAM i
90 Summary: Utility for running regular jobs
91 Summary(pl.UTF-8): Narzędzie do uruchamiania regularnych zadań
93 Provides: anacron = 2.4
94 Obsoletes: anacron <= 2.3
97 Anacron becames part of cronie. Anacron is used only for running
98 regular jobs. The default settings execute regular jobs by anacron,
99 however this could be overloaded in settings.
101 %description anacron -l pl.UTF-8
102 Anacron stał się częścią cronie. Służy tylko do uruchamiania
103 regularnych zadań. Domyślne ustawienia wykonują zadania przy użyciu
104 anacrona, ale może to być zmienione w ustawieniach.
117 SYSCRONTAB=/etc/crontab \
118 SYS_CROND_DIR=/etc/cron.d \
119 --sysconfdir=/etc/cron \
120 --with-editor=/bin/vi \
121 --with-audit%{!?with_audit:=no} \
122 --with-inotify%{!?with_inotify:=no} \
124 --with-selinux%{!?with_selinux:=no} \
125 --disable-silent-rules \
126 --disable-syscrontab \
128 %if "%{cc_version}" >= "3.4"
136 rm -rf $RPM_BUILD_ROOT
137 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\
138 $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
139 $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
143 DESTDIR=$RPM_BUILD_ROOT
145 cp -p %{SOURCE5} crond.pam
148 # remove recording user's login uid to the process attribute
149 %{__sed} -i -e '/pam_loginuid.so/d' crond.pam
152 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
153 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
154 cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab
155 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
156 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
157 cp -a crond.pam $RPM_BUILD_ROOT/etc/pam.d/crond
158 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
160 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
161 # cron.allow This file describes the names of the users which are
162 # allowed to use the local cron daemon
166 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
167 # cron.deny This file describes the names of the users which are
168 # NOT allowed to use the local cron daemon
171 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/check-crond << 'EOF'
174 # ugly and limited hack. make cronie restart itself
175 if [ -x /bin/awk -a -x /bin/grep -a -f /var/log/cron ]; then
176 LC_ALL=C /bin/awk -v d="$(LC_ALL=C date "+%b %e")" ' $1 " " $2 ~ d' /var/log/cron \
177 | /bin/grep -qE "PAM.*(Modu. jest nieznany|Module is unknown)" \
178 && echo "crond is failing on PAM, restarting ( https://github.com/cronie-crond/cronie/issues/87 )" >&2 \
179 && /sbin/service crond try-restart
185 rm -rf $RPM_BUILD_ROOT
188 %groupadd -g 117 -r -f crontab
191 /sbin/chkconfig --add crond
192 %service crond restart "Cron Daemon"
193 %systemd_post crond.service
196 if [ "$1" = "0" ]; then
198 /sbin/chkconfig --del crond
200 %systemd_preun crond.service
203 if [ "$1" = "0" ]; then
208 %triggerpostun -- cronie < 1.4.8-13
209 if [ -f /etc/sysconfig/cron ]; then
210 . /etc/sysconfig/cron
212 [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s"
213 [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG"
214 if [ -n "$__CROND_ARGS" ]; then
215 %{__cp} -f /etc/sysconfig/cron{,.rpmsave}
216 echo >>/etc/sysconfig/cron
217 echo "# Added by rpm trigger" >>/etc/sysconfig/cron
218 echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron
221 %systemd_trigger crond.service
223 %triggerun -- hc-cron,fcron,vixie-cron < 4.3-1
224 # Prevent preun from crond from working
225 chmod a-x /etc/rc.d/init.d/crond
227 %triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1
228 # Restore what triggerun removed
229 chmod 754 /etc/rc.d/init.d/crond
230 # reinstall crond init.d links, which could be different
231 /sbin/chkconfig --del crond
232 /sbin/chkconfig --add crond
235 %defattr(644,root,root,755)
236 %doc AUTHORS ChangeLog README
237 %attr(750,root,crontab) %dir /etc/cron
238 %attr(750,root,crontab) %dir /etc/cron.daily
239 %attr(750,root,root) /etc/cron.daily/check-crond
240 %attr(750,root,crontab) %dir /etc/cron.hourly
241 %attr(750,root,crontab) %dir /etc/cron.monthly
242 %attr(750,root,crontab) %dir /etc/cron.weekly
243 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
244 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
245 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
246 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
247 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
248 %attr(754,root,root) /etc/rc.d/init.d/crond
249 %{systemdunitdir}/crond.service
250 %attr(755,root,root) %{_sbindir}/crond
251 %attr(2755,root,crontab) %{_bindir}/cronnext
252 %attr(2755,root,crontab) %{_bindir}/crontab
254 %{_mandir}/man8/crond.8*
255 %{_mandir}/man8/cron.8*
256 %{_mandir}/man5/crontab.5*
257 %{_mandir}/man1/cronnext.1*
258 %{_mandir}/man1/crontab.1*
260 %attr(1730,root,crontab) /var/spool/cron
263 %defattr(644,root,root,755)
264 %attr(755,root,root) %{_sbindir}/anacron
265 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
266 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/cron/anacrontab
267 %{_mandir}/man5/anacrontab.5*
268 %{_mandir}/man8/anacron.8*
270 %attr(1730,root,crontab) /var/spool/anacron