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