]> git.pld-linux.org Git - packages/fcron.git/blob - fcron.spec
6bb87542eed327b80bc4422ecd4b707ee50d507a
[packages/fcron.git] / fcron.spec
1 Summary:        A periodical command scheduler which aims at replacing Vixie Cron
2 Summary(pl):    Serwer okresowego uruchamiania poleceñ zastêpuj±cy Vixie Crona
3 Name:           fcron
4 Version:        2.9.7
5 Release:        1
6 License:        GPL
7 Group:          Daemons
8 Source0:        http://fcron.free.fr/archives/%{name}-%{version}.src.tar.gz
9 # Source0-md5:  9ead65bd13ea6a3278e167f88c572ddb
10 Source1:        %{name}.init
11 Source2:        cron.logrotate
12 Source3:        cron.sysconfig
13 Source4:        %{name}.crontab
14 Source5:        %{name}.pam
15 Source6:        %{name}.conf
16 Source7:        fcrontab.pam    
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.202
23 PreReq:         rc-scripts
24 Requires(pre):  /usr/bin/getgid
25 Requires(pre):  /bin/id
26 Requires(pre):  /usr/sbin/groupadd
27 Requires(pre):  /usr/sbin/useradd
28 Requires(post,preun):   /sbin/chkconfig
29 Requires(post): fileutils
30 Requires(postun):       /usr/sbin/groupdel
31 Requires:       /bin/run-parts
32 Requires:       psmisc >= 20.1
33 Provides:       crontabs >= 1.7
34 Provides:       crondaemon
35 Provides:       group(crontab)
36 Obsoletes:      crontabs
37 Obsoletes:      hc-cron
38 Obsoletes:      mcron
39 Obsoletes:      vixie-cron
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %description
43 Fcron is a periodical command scheduler which aims at replacing Vixie
44 Cron, so it implements most of its functionalities. But fcron does not
45 assume that your system is running neither all the time nor regularly:
46 you can, for instance, tell fcron to execute tasks every x hours y
47 minutes of system up time or to do a job only once in a specified
48 interval of time. You can also set a nice value to a job, run it
49 depending on the system load average and much more !
50
51 %description -l pl
52 Fcron jest serwerem okresowego uruchamiania poleceñ maj±cym za cel
53 zast±pienie Vixie Crona, posiadaj±cym zaimplementowane wiêkszo¶æ
54 spo¶ród jego funkcji. Jednak¿e fcron nie zak³ada, ¿e system dzia³a
55 ca³y czas, ani ¿e jest uruchamiany regularnie: mo¿na, na przyk³ad,
56 kazaæ fcronowi uruchamiaæ zadanie co ka¿de x godzin y minut od
57 uruchomienia systemu lub wykonywaæ zadanie dok³adnie raz w podanym
58 okresie czasu. Umo¿liwia równie¿ ustawianie warto¶ci nice dla zadania,
59 uruchamianie go w zale¿no¶ci od obci±¿enia systemu i du¿o wiêcej.
60
61 %prep
62 %setup -q
63 %patch0 -p1
64
65 %build
66 %configure \
67         --with-sysfcrontab=systab \
68         --with-spooldir=%{_var}/spool/cron \
69         --with-run-non-privileged=no \
70         --with-boot-install=no \
71         --with-fcrondyn=yes \
72         --with-username=crontab \
73         --with-groupname=crontab \
74         --with-pam=yes \
75         --with-selinux=yes \
76         --with-boot-install=no
77
78 %{__make} OPTION="%{rpmcflags}"
79
80 echo "#!/bin/sh" > script/user-group
81
82 %install
83 rm -rf $RPM_BUILD_ROOT
84 install -d $RPM_BUILD_ROOT{/var/{log,spool/cron},%{_mandir}} \
85         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
86         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
87
88 %{__make} install \
89         DESTDIR=$RPM_BUILD_ROOT \
90         DESTSBIN=$RPM_BUILD_ROOT%{_sbindir} \
91         DESTBIN=$RPM_BUILD_ROOT%{_bindir} \
92         DESTMAN=$RPM_BUILD_ROOT%{_mandir} \
93         ROOTNAME=$(id -u) \
94         ROOTGROUP=$(id -g) \
95         USERNAME=$(id -u) \
96         GROUPNAME=$(id -g)
97
98 #fix premission for rpmbuild
99 chmod +rw $RPM_BUILD_ROOT/usr/*bin/*
100
101 ln -sf %{_bindir}/fcrontab $RPM_BUILD_ROOT%{_bindir}/crontab
102 mv -f $RPM_BUILD_ROOT%{_sbindir}/fcron $RPM_BUILD_ROOT%{_sbindir}/crond
103
104 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
105 install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
106 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
107 install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
108 install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/fcron
109 install %{SOURCE6} $RPM_BUILD_ROOT/etc/fcron.conf
110 install %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/fcrontab
111 install %{SOURCE8} $RPM_BUILD_ROOT/etc/cron.hourly/fcron.systab
112
113 touch $RPM_BUILD_ROOT/var/log/cron
114
115 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << EOF
116 # cron.allow   This file describes the names of the users which are
117 #               allowed to use the local cron daemon
118 root
119 EOF
120
121 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << EOF2
122 # cron.deny    This file describes the names of the users which are
123 #               NOT allowed to use the local cron daemon
124 EOF2
125
126 %clean
127 rm -rf $RPM_BUILD_ROOT
128
129 %pre
130 %groupadd -g 117 -r -f crontab
131 %useradd -u 134 -r -d /var/spool/cron -s /bin/false -c "crontab User" -g crontab crontab
132
133 %post
134 if [ "$1" = "1" ]; then
135         if [ -d /var/spool/cron ]; then
136                 FIND=`find /var/spool/cron -type f`
137                 for FILE in $FIND; do
138                         mv -f $FILE $FILE.orig
139                         USER=`basename $FILE`
140                         chown crontab:crontab $FILE.orig
141                         chmod 640 $FILE.orig
142                         (test ! -z "$USER" && fcrontab -u $USER -z) > /dev/null 2>&1
143                 done
144                 if [ -f /var/spool/cron/root.orig ]; then
145                         chmod 600 /var/spool/cron/root.orig
146                         chown root:root /var/spool/cron/root.orig
147                 fi
148         fi
149 fi
150
151 if [ "$1" = "2" ]; then
152         FIND=`find /var/spool/cron -name \*.orig`
153         for FILE in $FIND; do
154                 BASENAME=`basename $FILE`
155                 USER=`echo "$BASENAME"| sed 's/.orig//'`
156                 [ ! -z "$USER" ] && fcrontab -u $USER -z > /dev/null 2>&1
157         done
158 fi
159
160 /sbin/chkconfig --add crond
161 if [ -f /var/lock/subsys/crond ]; then
162         /etc/rc.d/init.d/crond restart >&2
163 else
164         echo "Run \"/etc/rc.d/init.d/crond start\" to start cron daemon."
165 fi
166
167 umask 027
168 touch /var/log/cron
169 chgrp crontab /var/log/cron
170 chmod 660 /var/log/cron
171
172 %preun
173 if [ "$1" = "0" ]; then
174         if [ -f /var/lock/subsys/crond ]; then
175                 /etc/rc.d/init.d/crond stop >&2
176         fi
177         /sbin/chkconfig --del crond
178
179 rm -f /var/spool/cron/systab*
180
181 FIND=`find /var/spool/cron -name \*.orig`
182 for FILE in $FIND; do
183         BASENAME=`basename $FILE`
184         USER="`echo "$BASENAME"| sed 's/.orig//'`"
185         mv -f $FILE /var/spool/cron/$USER >/dev/null 2>&1
186         chown $USER:crontab /var/spool/cron/$USER >/dev/null 2>&1
187         chmod 600 /var/spool/cron/$USER >/dev/null 2>&1
188 done
189 rm -f /var/spool/cron/rm\.*
190 rm -f /var/spool/cron/fcrontab.sig
191 rm -f /var/spool/cron/new\.*
192 fi
193
194 %postun
195 if [ "$1" = "0" ]; then
196         %userremove crontab
197         %groupremove crontab
198 fi
199
200 %triggerpostun -- vixie-cron <= 3.0.1-85
201 for i in `/bin/ls /var/spool/cron 2>/dev/null`
202 do
203         chown ${i} /var/spool/cron/${i} 2>/dev/null || :
204 done
205 /bin/chmod 660 /var/log/cron
206 /bin/chgrp crontab /var/log/cron
207 /bin/chmod 640 /etc/cron/cron.*
208 /bin/chgrp crontab /etc/cron/cron.*
209
210 %triggerpostun -- vixie-cron <= 3.0.1-73
211 if [ -f /etc/cron.d/cron.allow.rpmsave ]; then
212         mv -f /etc/cron.d/cron.allow.rpmsave /etc/cron/cron.allow
213 fi
214 if [ -f /etc/cron.d/cron.allow ]; then
215         mv -f /etc/cron.d/cron.allow /etc/cron/cron.allow
216 fi
217 if [ -f /etc/cron.d/cron.deny.rpmsave ]; then
218         mv -f /etc/cron.d/cron.deny.rpmsave /etc/cron/cron.deny
219 fi
220 if [ -f /etc/cron.d/cron.deny ]; then
221         mv -f /etc/cron.d/cron.deny /etc/cron/cron.deny
222 fi
223
224 %triggerpostun -- vixie-cron <= 3.0.1-70
225 if [ -f /etc/cron.allow ]; then
226         mv -f /etc/cron.allow /etc/cron/cron.allow
227 fi
228 if [ -f /etc/cron.deny ]; then
229         mv -f /etc/cron.deny /etc/cron/cron.deny
230 fi
231
232 %triggerpostun -- hc-cron
233 /sbin/chkconfig --del crond
234 /sbin/chkconfig --add crond
235
236 %triggerpostun -- hc-cron <= 0.14-12
237 for i in `/bin/ls /var/spool/cron 2>/dev/null`
238 do
239         chown ${i} /var/spool/cron/${i} 2>/dev/null || :
240 done
241 /bin/chmod 660 /var/log/cron
242 /bin/chgrp crontab /var/log/cron
243 /bin/chmod 640 /etc/cron/cron.*
244 /bin/chgrp crontab /etc/cron/cron.*
245
246 %files
247 %defattr(644,root,root,755)
248 %doc  doc/HTML doc/olddoc/{FAQ,CHANGES,README,THANKS,TODO}
249 %attr(0750,root,crontab) %dir %{_sysconfdir}/cron*
250 %attr(0750,root,root) %{_sysconfdir}/cron.hourly/%{name}.systab
251 %attr(0640,root,crontab) %config(noreplace) /etc/cron.d/crontab
252 %attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
253 %attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
254 %attr(0640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
255 %attr(0644,root,crontab) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/fcron
256 %attr(0644,root,crontab) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/fcrontab
257 %attr(0754,root,root) /etc/rc.d/init.d/crond
258 %config(noreplace) %verify(not md5 size mtime) %attr(640,root,root) /etc/logrotate.d/cron
259 %attr(0640,root,crontab) %config(noreplace) /etc/fcron.conf
260 %attr(0755,root,root) %{_sbindir}/crond
261 %attr(6111,crontab,crontab) %{_bindir}/fcrontab
262 %attr(6111,crontab,crontab) %{_bindir}/crontab
263 %attr(4711,root,root) %{_bindir}/fcronsighup
264 %attr(6111,crontab,crontab) %{_bindir}/fcrondyn
265 %{_mandir}/man1/fcrondyn.1.*
266 %{_mandir}/man1/fcrontab.1.*
267 %{_mandir}/man5/fcron.conf.5*
268 %{_mandir}/man5/fcrontab.5*
269 %{_mandir}/man8/fcron.8*
270 %attr(1730,root,crontab) /var/spool/cron
271 %attr(0660,root,crontab) %ghost /var/log/cron
This page took 0.08761 seconds and 2 git commands to generate.