1 Summary: A periodical command scheduler which aims at replacing Vixie Cron
2 Summary(pl): Serwer okresowego uruchamiania poleceñ zastêpuj±cy Vixie Crona
8 Source0: http://fcron.free.fr/archives/%{name}-%{version}.src.tar.gz
9 # Source0-md5: f3defb7a9ba178e013ebe5b31c692ae8
11 Source2: cron.logrotate
12 Source3: cron.sysconfig
13 Source4: %{name}.crontab
17 Source8: %{name}.systab
18 Patch0: %{name}-mail_output_only_if_there_is_output.patch
19 URL: http://fcron.free.fr/
20 BuildRequires: libselinux-devel
21 BuildRequires: pam-devel
22 BuildRequires: rpmbuild(macros) >= 1.159
24 Requires(pre): /usr/bin/getgid
25 Requires(pre): /usr/sbin/groupadd
26 Requires(post,preun): /sbin/chkconfig
27 Requires(post): fileutils
28 Requires(postun): /usr/sbin/groupdel
29 Requires: /bin/run-parts
30 Requires: psmisc >= 20.1
31 Provides: crontabs >= 1.7
33 Provides: group(crontab)
38 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41 Fcron is a periodical command scheduler which aims at replacing Vixie
42 Cron, so it implements most of its functionalities. But fcron does not
43 assume that your system is running neither all the time nor regularly:
44 you can, for instance, tell fcron to execute tasks every x hours y
45 minutes of system up time or to do a job only once in a specified
46 interval of time. You can also set a nice value to a job, run it
47 depending on the system load average and much more !
50 Fcron jest serwerem okresowego uruchamiania poleceñ maj±cym za cel
51 zast±pienie Vixie Crona, posiadaj±cym zaimplementowane wiêkszo¶æ
52 spo¶ród jego funkcji. Jednak¿e fcron nie zak³ada, ¿e system dzia³a
53 ca³y czas, ani ¿e jest uruchamiany regularnie: mo¿na, na przyk³ad,
54 kazaæ fcronowi uruchamiaæ zadanie co ka¿de x godzin y minut od
55 uruchomienia systemu lub wykonywaæ zadanie dok³adnie raz w podanym
56 okresie czasu. Umo¿liwia równie¿ ustawianie warto¶ci nice dla zadania,
57 uruchamianie go w zale¿no¶ci od obci±¿enia systemu i du¿o wiêcej.
65 --with-sysfcrontab=systab \
66 --with-spooldir=%{_var}/spool/cron \
67 --with-run-non-privileged=no \
68 --with-boot-install=no \
70 --with-username=crontab \
71 --with-groupname=crontab \
74 --with-boot-install=no
76 %{__make} OPTION="%{rpmcflags}"
78 echo "#!/bin/sh" > script/user-group
81 rm -rf $RPM_BUILD_ROOT
82 install -d $RPM_BUILD_ROOT{/var/{log,spool/cron},%{_mandir}} \
83 $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
84 $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
87 DESTDIR=$RPM_BUILD_ROOT \
88 DESTSBIN=$RPM_BUILD_ROOT%{_sbindir} \
89 DESTBIN=$RPM_BUILD_ROOT%{_bindir} \
90 DESTMAN=$RPM_BUILD_ROOT%{_mandir} \
96 #fix premission for rpmbuild
97 chmod +rw $RPM_BUILD_ROOT/usr/*bin/*
99 ln -sf %{_bindir}/fcrontab $RPM_BUILD_ROOT%{_bindir}/crontab
100 mv -f $RPM_BUILD_ROOT%{_sbindir}/fcron $RPM_BUILD_ROOT%{_sbindir}/crond
102 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
103 install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
104 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
105 install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
106 install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/fcron
107 install %{SOURCE6} $RPM_BUILD_ROOT/etc/fcron.conf
108 install %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/fcrontab
109 install %{SOURCE8} $RPM_BUILD_ROOT/etc/cron.hourly/fcron.systab
111 touch $RPM_BUILD_ROOT/var/log/cron
113 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << EOF
114 # cron.allow This file describes the names of the users which are
115 # allowed to use the local cron daemon
119 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << EOF2
120 # cron.deny This file describes the names of the users which are
121 # NOT allowed to use the local cron daemon
125 rm -rf $RPM_BUILD_ROOT
128 if [ -n "`/usr/bin/getgid crontab`" ]; then
129 if [ "`/usr/bin/getgid crontab`" != "117" ]; then
130 echo "Error: group crontab doesn't have gid=117. Correct this before installing cron." 1>&2
134 echo "Adding group crontab GID=117."
135 /usr/sbin/groupadd -g 117 -r -f crontab
138 if [ -n "`/bin/id -u crontab 2>/dev/null`" ]; then
139 if [ "`/bin/id -u crontab`" != "134" ]; then
140 echo "Error: user crontab doesn't have uid=134. Correct this before installing %{name}." 1>&2
144 /usr/sbin/useradd -u 134 -r -d /var/spool/cron -s /bin/false -c "crontab User" -g crontab crontab 1>&2
148 if [ "$1" = "1" ]; then
149 if [ -d /var/spool/cron ]; then
150 FIND=`find /var/spool/cron -type f`
151 for FILE in $FIND; do
152 mv -f $FILE $FILE.orig
153 USER=`basename $FILE`
154 chown crontab:crontab $FILE.orig
156 (test ! -z "$USER" && fcrontab -u $USER -z) > /dev/null 2>&1
158 if [ -f /var/spool/cron/root.orig ]; then
159 chmod 600 /var/spool/cron/root.orig
160 chown root:root /var/spool/cron/root.orig
165 if [ "$1" = "2" ]; then
166 FIND=`find /var/spool/cron -name \*.orig`
167 for FILE in $FIND; do
168 BASENAME=`basename $FILE`
169 USER=`echo "$BASENAME"| sed 's/.orig//'`
170 [ ! -z "$USER" ] && fcrontab -u $USER -z > /dev/null 2>&1
174 /sbin/chkconfig --add crond
175 if [ -f /var/lock/subsys/crond ]; then
176 /etc/rc.d/init.d/crond restart >&2
178 echo "Run \"/etc/rc.d/init.d/crond start\" to start cron daemon."
183 chgrp crontab /var/log/cron
184 chmod 660 /var/log/cron
187 if [ "$1" = "0" ]; then
188 if [ -f /var/lock/subsys/crond ]; then
189 /etc/rc.d/init.d/crond stop >&2
191 /sbin/chkconfig --del crond
193 rm -f /var/spool/cron/systab*
195 FIND=`find /var/spool/cron -name \*.orig`
196 for FILE in $FIND; do
197 BASENAME=`basename $FILE`
198 USER="`echo "$BASENAME"| sed 's/.orig//'`"
199 mv -f $FILE /var/spool/cron/$USER >/dev/null 2>&1
200 chown $USER:crontab /var/spool/cron/$USER >/dev/null 2>&1
201 chmod 600 /var/spool/cron/$USER >/dev/null 2>&1
203 rm -f /var/spool/cron/rm\.*
204 rm -f /var/spool/cron/fcrontab.sig
205 rm -f /var/spool/cron/new\.*
209 if [ "$1" = "0" ]; then
214 %triggerpostun -- vixie-cron <= 3.0.1-85
215 for i in `/bin/ls /var/spool/cron 2>/dev/null`
217 chown ${i} /var/spool/cron/${i} 2>/dev/null || :
219 /bin/chmod 660 /var/log/cron
220 /bin/chgrp crontab /var/log/cron
221 /bin/chmod 640 /etc/cron/cron.*
222 /bin/chgrp crontab /etc/cron/cron.*
224 %triggerpostun -- vixie-cron <= 3.0.1-73
225 if [ -f /etc/cron.d/cron.allow.rpmsave ]; then
226 mv -f /etc/cron.d/cron.allow.rpmsave /etc/cron/cron.allow
228 if [ -f /etc/cron.d/cron.allow ]; then
229 mv -f /etc/cron.d/cron.allow /etc/cron/cron.allow
231 if [ -f /etc/cron.d/cron.deny.rpmsave ]; then
232 mv -f /etc/cron.d/cron.deny.rpmsave /etc/cron/cron.deny
234 if [ -f /etc/cron.d/cron.deny ]; then
235 mv -f /etc/cron.d/cron.deny /etc/cron/cron.deny
238 %triggerpostun -- vixie-cron <= 3.0.1-70
239 if [ -f /etc/cron.allow ]; then
240 mv -f /etc/cron.allow /etc/cron/cron.allow
242 if [ -f /etc/cron.deny ]; then
243 mv -f /etc/cron.deny /etc/cron/cron.deny
246 %triggerpostun -- hc-cron
247 /sbin/chkconfig --del crond
248 /sbin/chkconfig --add crond
250 %triggerpostun -- hc-cron <= 0.14-12
251 for i in `/bin/ls /var/spool/cron 2>/dev/null`
253 chown ${i} /var/spool/cron/${i} 2>/dev/null || :
255 /bin/chmod 660 /var/log/cron
256 /bin/chgrp crontab /var/log/cron
257 /bin/chmod 640 /etc/cron/cron.*
258 /bin/chgrp crontab /etc/cron/cron.*
261 %defattr(644,root,root,755)
262 %doc doc/HTML doc/olddoc/{FAQ,CHANGES,README,THANKS,TODO}
263 %attr(0750,root,crontab) %dir %{_sysconfdir}/cron*
264 %attr(0750,root,root) %{_sysconfdir}/cron.hourly/%{name}.systab
265 %attr(0640,root,crontab) %config(noreplace) /etc/cron.d/crontab
266 %attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
267 %attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
268 %attr(0640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
269 %attr(0644,root,crontab) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/fcron
270 %attr(0644,root,crontab) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/fcrontab
271 %attr(0754,root,root) /etc/rc.d/init.d/crond
272 %config(noreplace) %verify(not md5 size mtime) %attr(640,root,root) /etc/logrotate.d/cron
273 %attr(0640,root,crontab) %config(noreplace) /etc/fcron.conf
274 %attr(0755,root,root) %{_sbindir}/crond
275 %attr(6111,crontab,crontab) %{_bindir}/fcrontab
276 %attr(6111,crontab,crontab) %{_bindir}/crontab
277 %attr(4711,root,root) %{_bindir}/fcronsighup
278 %attr(6111,crontab,crontab) %{_bindir}/fcrondyn
279 %{_mandir}/man1/fcrondyn.1.*
280 %{_mandir}/man1/fcrontab.1.*
281 %{_mandir}/man5/fcron.conf.5*
282 %{_mandir}/man5/fcrontab.5*
283 %{_mandir}/man8/fcron.8*
284 %attr(1730,root,crontab) /var/spool/cron
285 %attr(0660,root,crontab) %ghost /var/log/cron