]> git.pld-linux.org Git - packages/cronie.git/blob - cronie.spec
55d53119f4b2561d68168552854947ce3c2e32a4
[packages/cronie.git] / cronie.spec
1 # TODO
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ΓΏ
6 #
7 # Conditional build:
8 %bcond_without  inotify         # without inotify support
9 %if "%{pld_release}" == "ac"
10 %bcond_with             selinux         # without SELinux support
11 %bcond_with             audit           # without audit support
12 %else
13 %bcond_without  selinux         # without SELinux support
14 %bcond_without  audit           # without audit support
15 %endif
16
17 Summary:        Cron daemon for executing programs at set times
18 Name:           cronie
19 Version:        1.4.8
20 Release:        16
21 License:        MIT and BSD and GPL v2
22 Group:          Daemons
23 Source0:        https://fedorahosted.org/releases/c/r/cronie/%{name}-%{version}.tar.gz
24 # Source0-md5:  9b1d2ce6db8d1883e06635f437170657
25 Source1:        %{name}.init
26 Source2:        cron.logrotate
27 Source3:        cron.sysconfig
28 Source4:        %{name}.crontab
29 Source5:        %{name}.pam
30 Source6:        %{name}.upstart
31 Source7:        crond.service
32 Patch0:         inotify-nosys.patch
33 Patch1:         %{name}-nosyscrontab.patch
34 Patch2:         sendmail-path.patch
35 Patch3:         cronie-1.4.8-inotify-fix.patch
36 URL:            https://fedorahosted.org/cronie/
37 %{?with_audit:BuildRequires:    audit-libs-devel}
38 BuildRequires:  autoconf
39 BuildRequires:  automake
40 %{?with_selinux:BuildRequires:  libselinux-devel}
41 BuildRequires:  pam-devel
42 BuildRequires:  rpm >= 4.4.9-56
43 BuildRequires:  rpmbuild(macros) >= 1.626
44 Requires(post): fileutils
45 Requires(post,preun):   /sbin/chkconfig
46 Requires(postun):       /usr/sbin/groupdel
47 Requires(pre):  /usr/bin/getgid
48 Requires(pre):  /usr/sbin/groupadd
49 Requires:       /bin/run-parts
50 Requires:       psmisc >= 20.1
51 Requires:       rc-scripts >= 0.4.3.0
52 Requires:       systemd-units >= 37-0.10
53 %{?with_inotify:Requires:       uname(release) >= 2.6.13}
54 Provides:       crondaemon
55 Provides:       crontabs = 1.7
56 Provides:       group(crontab)
57 %if "%{pld_release}" == "th"
58 Provides:       vixie-cron = 4.3-1
59 %endif
60 Obsoletes:      crondaemon
61 Obsoletes:      cronie-systemd
62 Obsoletes:      crontabs
63 %if "%{pld_release}" == "th"
64 Obsoletes:      vixie-cron < 4.3-1
65 %endif
66 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
67
68 %description
69 Cronie contains the standard UNIX daemon crond that runs specified
70 programs at scheduled times and related tools. It is based on the
71 original cron and has security and configuration enhancements like the
72 ability to use pam and SELinux.
73
74 %package anacron
75 Summary:        Utility for running regular jobs
76 Group:          Base
77 Provides:       anacron = 2.4
78 Obsoletes:      anacron <= 2.3
79
80 %description anacron
81 Anacron becames part of cronie. Anacron is used only for running
82 regular jobs. The default settings execute regular jobs by anacron,
83 however this could be overloaded in settings.
84
85 %package upstart
86 Summary:        Upstart job description for Cronie
87 Summary(pl.UTF-8):      Opis zadania Upstart dla Cronie
88 Group:          Daemons
89 Requires:       %{name} = %{version}-%{release}
90 Requires:       upstart >= 0.6
91
92 %description upstart
93 Upstart job description for Cronie.
94
95 %description upstart -l pl.UTF-8
96 Opis zadania Upstart dla Cronie.
97
98 %prep
99 %setup -q
100 %patch0 -p1
101 %patch1 -p1
102 %patch2 -p1
103 %patch3 -p1
104
105 %build
106 %{__aclocal}
107 %{__autoconf}
108 %{__autoheader}
109 %{__automake}
110 %configure \
111         SYSCRONTAB=/etc/crontab \
112         SYS_CROND_DIR=/etc/cron.d \
113         --sysconfdir=/etc/cron \
114         --with-pam \
115         --with%{!?with_selinux:out}-selinux \
116         --with%{!?with_audit:out}-audit \
117         --with%{!?with_inotify:out}-inotify \
118         --enable-pie \
119         --enable-relro \
120         --enable-anacron
121
122 %{__make}
123
124 %install
125 rm -rf $RPM_BUILD_ROOT
126 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\
127         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig,init} \
128         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
129
130 %{__make} install \
131         pamdir=/etc/pam.d \
132         DESTDIR=$RPM_BUILD_ROOT
133
134 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
135 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
136 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
137 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
138 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
139 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond
140 cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/init/crond.conf
141 cp -a %{SOURCE7} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
142
143 touch $RPM_BUILD_ROOT/var/log/cron
144
145 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
146 # cron.allow    This file describes the names of the users which are
147 #               allowed to use the local cron daemon
148 root
149 EOF
150
151 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
152 # cron.deny     This file describes the names of the users which are
153 #               NOT allowed to use the local cron daemon
154 EOF
155
156 %clean
157 rm -rf $RPM_BUILD_ROOT
158
159 %pre
160 %groupadd -g 117 -r -f crontab
161
162 %post
163 if [ ! -f /var/log/cron ]; then
164         install -m 660 -g crontab /dev/null /var/log/cron
165 fi
166 /sbin/chkconfig --add crond
167 %service crond restart "Cron Daemon"
168 %systemd_post crond.service
169
170 %preun
171 if [ "$1" = "0" ]; then
172         %service crond stop
173         /sbin/chkconfig --del crond
174 fi
175 %systemd_preun crond.service
176
177 %postun
178 if [ "$1" = "0" ]; then
179         %groupremove crontab
180 fi
181 %systemd_reload
182
183 %triggerpostun -- cronie < 1.4.8-13
184 if [ -f /etc/sysconfig/cron ]; then
185         . /etc/sysconfig/cron
186         __CROND_ARGS=
187         [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s"
188         [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG"
189         if [ -n "$__CROND_ARGS" ]; then
190                 %{__cp} -f /etc/sysconfig/cron{,.rpmsave}
191                 echo >>/etc/sysconfig/cron
192                 echo "# Added by rpm trigger" >>/etc/sysconfig/cron
193                 echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron
194         fi
195 fi
196 %systemd_trigger crond.service
197
198 %triggerun -- hc-cron,fcron,vixie-cron
199 # Prevent preun from crond from working
200 chmod a-x /etc/rc.d/init.d/crond
201
202 %triggerpostun -- hc-cron,fcron,vixie-cron
203 # Restore what triggerun removed
204 chmod 754 /etc/rc.d/init.d/crond
205 # reinstall crond init.d links, which could be different
206 /sbin/chkconfig --del crond
207 /sbin/chkconfig --add crond
208
209 %post upstart
210 %upstart_post crond
211
212 %postun upstart
213 %upstart_postun crond
214
215 %files
216 %defattr(644,root,root,755)
217 %doc AUTHORS ChangeLog README
218 %attr(750,root,crontab) %dir %{_sysconfdir}/cron*
219 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
220 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
221 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
222 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
223 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
224 %attr(754,root,root) /etc/rc.d/init.d/crond
225 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron
226 %{systemdunitdir}/crond.service
227 %attr(755,root,root) %{_sbindir}/crond
228 %attr(2755,root,crontab) %{_bindir}/crontab
229
230 %{_mandir}/man8/crond.8*
231 %{_mandir}/man8/cron.8*
232 %{_mandir}/man5/crontab.5*
233 %{_mandir}/man1/crontab.1*
234
235 %attr(1730,root,crontab) /var/spool/cron
236 %attr(660,root,crontab) %ghost /var/log/cron
237
238 %files anacron
239 %defattr(644,root,root,755)
240 %attr(755,root,root) %{_sbindir}/anacron
241 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
242 %{_mandir}/man5/anacrontab.5*
243 %{_mandir}/man8/anacron.8*
244
245 %attr(1730,root,crontab) /var/spool/anacron
246
247 %if "%{pld_release}" != "ti"
248 %files upstart
249 %defattr(644,root,root,755)
250 %config(noreplace) %verify(not md5 mtime size) /etc/init/crond.conf
251 %endif
This page took 0.041723 seconds and 3 git commands to generate.