]> git.pld-linux.org Git - packages/cronie.git/blob - cronie.spec
- use rpmbuild(macros) that disables systemd stuff 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 %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:        18
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:       systemd-units >= 37-0.10}
54 %endif
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 %{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 0.069649 seconds and 4 git commands to generate.