- status --pidfile dep in initscript
[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 # - https://fedorahosted.org/cronie/changeset/272c4a5c417bfa6e04148fc35a4fe4c6956b17e1
5 #   should we follow it too? our pam contains cron.{allow,deny} listfile rules,
6 #   cronie itself checks these files so safe to drop?
7 #
8 # Conditional build:
9 %bcond_without  inotify         # without inotify support
10 %if "%{pld_release}" == "ac"
11 %bcond_with             selinux         # without SELinux support
12 %bcond_with             audit           # without audit support
13 %else
14 %bcond_without  selinux         # without SELinux support
15 %bcond_without  audit           # without audit support
16 %endif
17
18 Summary:        Cron daemon for executing programs at set times
19 Name:           cronie
20 Version:        1.4.3
21 Release:        1
22 License:        MIT and BSD and GPL v2
23 Group:          Daemons
24 Source0:        https://fedorahosted.org/releases/c/r/cronie/%{name}-%{version}.tar.gz
25 # Source0-md5:  2393b3e5828fc09d9acf04dfd7796ab9
26 Source1:        %{name}.init
27 Source2:        cron.logrotate
28 Source3:        cron.sysconfig
29 Source4:        %{name}.crontab
30 Source5:        %{name}.pam
31 Patch0:         inotify-nosys.patch
32 Patch1:         %{name}-nosyscrontab.patch
33 Patch2:         sendmail-path.patch
34 URL:            https://fedorahosted.org/cronie/
35 %{?with_audit:BuildRequires:    audit-libs-devel}
36 BuildRequires:  autoconf
37 BuildRequires:  automake
38 %{?with_selinux:BuildRequires:  libselinux-devel}
39 BuildRequires:  pam-devel
40 BuildRequires:  rpm >= 4.4.9-56
41 BuildRequires:  rpmbuild(macros) >= 1.268
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:       /sbin/chkconfig
49 Requires:       psmisc >= 20.1
50 Requires:       rc-scripts >= 0.4.0.19
51 %{?with_inotify:Requires:       uname(release) >= 2.6.13}
52 Provides:       crondaemon
53 Provides:       crontabs = 1.7
54 Provides:       group(crontab)
55 %if "%{pld_release}" == "th"
56 Provides:       vixie-cron = 4:4.4
57 %endif
58 Obsoletes:      crondaemon
59 Obsoletes:      crontabs
60 %if "%{pld_release}" == "th"
61 Obsoletes:      vixie-cron <= 4:4.3
62 %endif
63 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
64
65 %description
66 Cronie contains the standard UNIX daemon crond that runs specified
67 programs at scheduled times and related tools. It is based on the
68 original cron and has security and configuration enhancements like the
69 ability to use pam and SELinux.
70
71 %package anacron
72 Summary:        Utility for running regular jobs
73 Group:          Base
74 Provides:       anacron = 2.4
75 Obsoletes:      anacron <= 2.3
76
77 %description anacron
78 Anacron becames part of cronie. Anacron is used only for running
79 regular jobs. The default settings execute regular jobs by anacron,
80 however this could be overloaded in settings.
81
82 %prep
83 %setup -q
84 %patch0 -p1
85 %patch1 -p1
86 %patch2 -p1
87
88 %build
89 %{__aclocal}
90 %{__autoconf}
91 %{__autoheader}
92 %{__automake}
93 %configure \
94         SYSCRONTAB=/etc/crontab \
95         SYS_CROND_DIR=/etc/cron.d \
96         --sysconfdir=/etc/cron \
97         --with-pam \
98         --with%{!?with_selinux:out}-selinux \
99         --with%{!?with_audit:out}-audit \
100         --with%{!?with_inotify:out}-inotify \
101         --enable-anacron
102
103 %{__make}
104
105 %install
106 rm -rf $RPM_BUILD_ROOT
107 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir}} \
108         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
109         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
110
111 %{__make} install \
112         pamdir=/etc/pam.d \
113         DESTDIR=$RPM_BUILD_ROOT
114
115 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
116 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
117 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
118 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
119 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
120 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond
121
122 touch $RPM_BUILD_ROOT/var/log/cron
123
124 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
125 # cron.allow    This file describes the names of the users which are
126 #               allowed to use the local cron daemon
127 root
128 EOF
129
130 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
131 # cron.deny     This file describes the names of the users which are
132 #               NOT allowed to use the local cron daemon
133 EOF
134
135 %clean
136 rm -rf $RPM_BUILD_ROOT
137
138 %pre
139 %groupadd -g 117 -r -f crontab
140
141 %post
142 if [ ! -f /var/log/cron ]; then
143         umask 027
144         touch /var/log/cron
145         chgrp crontab /var/log/cron
146         chmod 660 /var/log/cron
147 fi
148 /sbin/chkconfig --add crond
149 %service crond restart "Cron Daemon"
150
151 %preun
152 if [ "$1" = "0" ]; then
153         %service crond stop
154         /sbin/chkconfig --del crond
155 fi
156
157 %postun
158 if [ "$1" = "0" ]; then
159         %groupremove crontab
160 fi
161
162 %triggerpostun -- hc-cron
163 # reinstall crond init.d links, which could be different
164 /sbin/chkconfig --del crond
165 /sbin/chkconfig --add crond
166
167 %triggerun -- vixie-cron
168 # Prevent preun from crond from working
169 chmod a-x /etc/rc.d/init.d/crond
170
171 %triggerpostun -- vixie-cron
172 # Restore what triggerun removed
173 chmod 754 /etc/rc.d/init.d/crond
174 /sbin/chkconfig --add crond
175
176 %files
177 %defattr(644,root,root,755)
178 %doc AUTHORS ChangeLog README
179 %attr(750,root,crontab) %dir %{_sysconfdir}/cron*
180 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
181 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
182 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
183 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
184 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
185 %attr(754,root,root) /etc/rc.d/init.d/crond
186 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron
187 %attr(755,root,root) %{_sbindir}/crond
188 %attr(2755,root,crontab) %{_bindir}/crontab
189
190 %{_mandir}/man8/crond.8*
191 %{_mandir}/man8/cron.8*
192 %{_mandir}/man5/crontab.5*
193 %{_mandir}/man1/crontab.1*
194
195 %attr(1730,root,crontab) /var/spool/cron
196 %attr(660,root,crontab) %ghost /var/log/cron
197
198 %files anacron
199 %defattr(644,root,root,755)
200 %attr(755,root,root) %{_sbindir}/anacron
201 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
202 %{_mandir}/man5/anacrontab.5*
203 %{_mandir}/man8/anacron.8*
204
205 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.089025 seconds and 3 git commands to generate.