up to 1.5.1
[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.1
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:  910e6effcc032998b0a49fbd46322e18
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 URL:            https://fedorahosted.org/cronie/
33 %{?with_audit:BuildRequires:    audit-libs-devel}
34 BuildRequires:  autoconf
35 BuildRequires:  automake
36 BuildRequires:  glibc-devel >= 6:2.21
37 %{?with_selinux:BuildRequires:  libselinux-devel}
38 BuildRequires:  pam-devel
39 BuildRequires:  rpm >= 4.4.9-56
40 BuildRequires:  rpmbuild(macros) >= 1.647
41 Requires(post): fileutils
42 Requires(post,preun):   /sbin/chkconfig
43 Requires(postun):       /usr/sbin/groupdel
44 Requires(pre):  /usr/bin/getgid
45 Requires(pre):  /usr/sbin/groupadd
46 Requires:       /bin/run-parts
47 Requires:       psmisc >= 20.1
48 Requires:       rc-scripts >= 0.4.3.0
49 %if "%{pld_release}" != "ac"
50 Requires(post,preun,postun):    systemd-units >= 38
51 Requires:       systemd-units >= 38}
52 %endif
53 %{?with_inotify:Requires:       uname(release) >= 2.6.13}
54 Provides:       crondaemon
55 Provides:       crontabs = 1.7
56 Provides:       group(crontab)
57 %if "%{pld_release}" == "th"
58 Provides:       vixie-cron = 4.3-1
59 %endif
60 Obsoletes:      crondaemon
61 Obsoletes:      cronie-systemd
62 Obsoletes:      crontabs
63 %if "%{pld_release}" == "th"
64 Obsoletes:      vixie-cron < 4.3-1
65 %endif
66 Conflicts:      sysklogd < 1.5.1-2
67 Conflicts:      syslog-ng < 3.6.4-3
68 Conflicts:      rsyslog < 5.10.1-4
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 %prep
89 %setup -q
90 %patch0 -p1
91 %patch1 -p1
92
93 %build
94 %{__aclocal}
95 %{__autoconf}
96 %{__autoheader}
97 %{__automake}
98 %configure \
99         SYSCRONTAB=/etc/crontab \
100         SYS_CROND_DIR=/etc/cron.d \
101         --sysconfdir=/etc/cron \
102         --with-editor=/bin/vi \
103         --with-pam \
104         --with%{!?with_selinux:out}-selinux \
105         --with%{!?with_audit:out}-audit \
106         --with%{!?with_inotify:out}-inotify \
107         --disable-syscrontab \
108 %if "%{cc_version}" >= "3.4"
109         --enable-pie \
110 %endif
111         --enable-relro \
112         --enable-anacron
113
114 %{__make}
115
116 %install
117 rm -rf $RPM_BUILD_ROOT
118 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\
119         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
120         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
121
122 %{__make} install \
123         pamdir=/etc/pam.d \
124         DESTDIR=$RPM_BUILD_ROOT
125
126 cp -p %{SOURCE5} crond.pam
127
128 %if %{without audit}
129 # remove recording user's login uid to the process attribute
130 %{__sed} -i -e '/pam_loginuid.so/d' crond.pam
131 %endif
132
133 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
134 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
135 cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab
136 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
137 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
138 cp -a crond.pam  $RPM_BUILD_ROOT/etc/pam.d/crond
139 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
140
141 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
142 # cron.allow    This file describes the names of the users which are
143 #               allowed to use the local cron daemon
144 root
145 EOF
146
147 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
148 # cron.deny     This file describes the names of the users which are
149 #               NOT allowed to use the local cron daemon
150 EOF
151
152 %clean
153 rm -rf $RPM_BUILD_ROOT
154
155 %pre
156 %groupadd -g 117 -r -f crontab
157
158 %post
159 /sbin/chkconfig --add crond
160 %service crond restart "Cron Daemon"
161 %systemd_post crond.service
162
163 %preun
164 if [ "$1" = "0" ]; then
165         %service crond stop
166         /sbin/chkconfig --del crond
167 fi
168 %systemd_preun crond.service
169
170 %postun
171 if [ "$1" = "0" ]; then
172         %groupremove crontab
173 fi
174 %systemd_reload
175
176 %triggerpostun -- cronie < 1.4.8-13
177 if [ -f /etc/sysconfig/cron ]; then
178         . /etc/sysconfig/cron
179         __CROND_ARGS=
180         [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s"
181         [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG"
182         if [ -n "$__CROND_ARGS" ]; then
183                 %{__cp} -f /etc/sysconfig/cron{,.rpmsave}
184                 echo >>/etc/sysconfig/cron
185                 echo "# Added by rpm trigger" >>/etc/sysconfig/cron
186                 echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron
187         fi
188 fi
189 %systemd_trigger crond.service
190
191 %triggerun -- hc-cron,fcron,vixie-cron < 4.3-1
192 # Prevent preun from crond from working
193 chmod a-x /etc/rc.d/init.d/crond
194
195 %triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1
196 # Restore what triggerun removed
197 chmod 754 /etc/rc.d/init.d/crond
198 # reinstall crond init.d links, which could be different
199 /sbin/chkconfig --del crond
200 /sbin/chkconfig --add crond
201
202 %files
203 %defattr(644,root,root,755)
204 %doc AUTHORS ChangeLog README
205 %attr(750,root,crontab) %dir /etc/cron
206 %attr(750,root,crontab) %dir /etc/cron.daily
207 %attr(750,root,crontab) %dir /etc/cron.hourly
208 %attr(750,root,crontab) %dir /etc/cron.monthly
209 %attr(750,root,crontab) %dir /etc/cron.weekly
210 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
211 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
212 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
213 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
214 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
215 %attr(754,root,root) /etc/rc.d/init.d/crond
216 %{systemdunitdir}/crond.service
217 %attr(755,root,root) %{_sbindir}/crond
218 %attr(2755,root,crontab) %{_bindir}/crontab
219
220 %{_mandir}/man8/crond.8*
221 %{_mandir}/man8/cron.8*
222 %{_mandir}/man5/crontab.5*
223 %{_mandir}/man1/crontab.1*
224
225 %attr(1730,root,crontab) /var/spool/cron
226
227 %files anacron
228 %defattr(644,root,root,755)
229 %attr(755,root,root) %{_sbindir}/anacron
230 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
231 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/cron/anacrontab
232 %{_mandir}/man5/anacrontab.5*
233 %{_mandir}/man8/anacron.8*
234
235 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.110284 seconds and 3 git commands to generate.