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