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