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