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