- rel 4; from upstream: In crontab command use a temporary filename that is ignored...
[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.5.0
20 Release:        4
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:  9db75e1884d83a45e002d145c6c54d45
25 Source1:        %{name}.init
26 Source3:        cron.sysconfig
27 Source4:        %{name}.crontab
28 Source5:        %{name}.pam
29 Source6:        crond.service
30 Patch0:         inotify-nosys.patch
31 Patch1:         sendmail-path.patch
32 Patch2:         cronie-temp.patch
33 URL:            https://fedorahosted.org/cronie/
34 %{?with_audit:BuildRequires:    audit-libs-devel}
35 BuildRequires:  autoconf
36 BuildRequires:  automake
37 BuildRequires:  glibc-devel >= 6:2.21
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 Conflicts:      sysklogd < 1.5.1-2
68 Conflicts:      syslog-ng < 3.6.4-3
69 Conflicts:      rsyslog < 5.10.1-4
70 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
71
72 %description
73 Cronie contains the standard UNIX daemon crond that runs specified
74 programs at scheduled times and related tools. It is based on the
75 original cron and has security and configuration enhancements like the
76 ability to use pam and SELinux.
77
78 %package anacron
79 Summary:        Utility for running regular jobs
80 Group:          Base
81 Provides:       anacron = 2.4
82 Obsoletes:      anacron <= 2.3
83
84 %description anacron
85 Anacron becames part of cronie. Anacron is used only for running
86 regular jobs. The default settings execute regular jobs by anacron,
87 however this could be overloaded in settings.
88
89 %prep
90 %setup -q
91 %patch0 -p1
92 %patch1 -p1
93 %patch2 -p1
94
95 %build
96 %{__aclocal}
97 %{__autoconf}
98 %{__autoheader}
99 %{__automake}
100 %configure \
101         SYSCRONTAB=/etc/crontab \
102         SYS_CROND_DIR=/etc/cron.d \
103         --sysconfdir=/etc/cron \
104         --with-editor=/bin/vi \
105         --with-pam \
106         --with%{!?with_selinux:out}-selinux \
107         --with%{!?with_audit:out}-audit \
108         --with%{!?with_inotify:out}-inotify \
109         --disable-syscrontab \
110 %if "%{cc_version}" >= "3.4"
111         --enable-pie \
112 %endif
113         --enable-relro \
114         --enable-anacron
115
116 %{__make}
117
118 %install
119 rm -rf $RPM_BUILD_ROOT
120 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\
121         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
122         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
123
124 %{__make} install \
125         pamdir=/etc/pam.d \
126         DESTDIR=$RPM_BUILD_ROOT
127
128 cp -p %{SOURCE5} crond.pam
129
130 %if %{without audit}
131 # remove recording user's login uid to the process attribute
132 %{__sed} -i -e '/pam_loginuid.so/d' crond.pam
133 %endif
134
135 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
136 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
137 cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab
138 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
139 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
140 cp -a crond.pam  $RPM_BUILD_ROOT/etc/pam.d/crond
141 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
142
143 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
144 # cron.allow    This file describes the names of the users which are
145 #               allowed to use the local cron daemon
146 root
147 EOF
148
149 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
150 # cron.deny     This file describes the names of the users which are
151 #               NOT allowed to use the local cron daemon
152 EOF
153
154 %clean
155 rm -rf $RPM_BUILD_ROOT
156
157 %pre
158 %groupadd -g 117 -r -f crontab
159
160 %post
161 /sbin/chkconfig --add crond
162 %service crond restart "Cron Daemon"
163 %systemd_post crond.service
164
165 %preun
166 if [ "$1" = "0" ]; then
167         %service crond stop
168         /sbin/chkconfig --del crond
169 fi
170 %systemd_preun crond.service
171
172 %postun
173 if [ "$1" = "0" ]; then
174         %groupremove crontab
175 fi
176 %systemd_reload
177
178 %triggerpostun -- cronie < 1.4.8-13
179 if [ -f /etc/sysconfig/cron ]; then
180         . /etc/sysconfig/cron
181         __CROND_ARGS=
182         [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s"
183         [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG"
184         if [ -n "$__CROND_ARGS" ]; then
185                 %{__cp} -f /etc/sysconfig/cron{,.rpmsave}
186                 echo >>/etc/sysconfig/cron
187                 echo "# Added by rpm trigger" >>/etc/sysconfig/cron
188                 echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron
189         fi
190 fi
191 %systemd_trigger crond.service
192
193 %triggerun -- hc-cron,fcron,vixie-cron < 4.3-1
194 # Prevent preun from crond from working
195 chmod a-x /etc/rc.d/init.d/crond
196
197 %triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1
198 # Restore what triggerun removed
199 chmod 754 /etc/rc.d/init.d/crond
200 # reinstall crond init.d links, which could be different
201 /sbin/chkconfig --del crond
202 /sbin/chkconfig --add crond
203
204 %files
205 %defattr(644,root,root,755)
206 %doc AUTHORS ChangeLog README
207 %attr(750,root,crontab) %dir /etc/cron
208 %attr(750,root,crontab) %dir /etc/cron.daily
209 %attr(750,root,crontab) %dir /etc/cron.hourly
210 %attr(750,root,crontab) %dir /etc/cron.monthly
211 %attr(750,root,crontab) %dir /etc/cron.weekly
212 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
213 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
214 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
215 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
216 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
217 %attr(754,root,root) /etc/rc.d/init.d/crond
218 %{systemdunitdir}/crond.service
219 %attr(755,root,root) %{_sbindir}/crond
220 %attr(2755,root,crontab) %{_bindir}/crontab
221
222 %{_mandir}/man8/crond.8*
223 %{_mandir}/man8/cron.8*
224 %{_mandir}/man5/crontab.5*
225 %{_mandir}/man1/crontab.1*
226
227 %attr(1730,root,crontab) /var/spool/cron
228
229 %files anacron
230 %defattr(644,root,root,755)
231 %attr(755,root,root) %{_sbindir}/anacron
232 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
233 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/cron/anacrontab
234 %{_mandir}/man5/anacrontab.5*
235 %{_mandir}/man8/anacron.8*
236
237 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.061936 seconds and 3 git commands to generate.