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