cc717c4ffa02463dc1c03fcb0018abb7af013561
[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(post,preun):   rc-scripts
45 Requires(postun):       /usr/sbin/groupdel
46 Requires(pre):  /usr/bin/getgid
47 Requires(pre):  /usr/sbin/groupadd
48 Requires:       /bin/run-parts
49 Requires:       /sbin/chkconfig
50 Requires:       psmisc >= 20.1
51 Requires:       rc-scripts
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:4.4
58 %endif
59 Obsoletes:      crondaemon
60 Obsoletes:      crontabs
61 %if "%{pld_release}" == "th"
62 Obsoletes:      vixie-cron <= 4:4.3
63 %endif
64 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
65
66 %description
67 Cronie contains the standard UNIX daemon crond that runs specified
68 programs at scheduled times and related tools. It is based on the
69 original cron and has security and configuration enhancements like the
70 ability to use pam and SELinux.
71
72 %package anacron
73 Summary:        Utility for running regular jobs
74 Group:          Base
75 Provides:       anacron = 2.4
76 Obsoletes:      anacron <= 2.3
77
78 %description anacron
79 Anacron becames part of cronie. Anacron is used only for running
80 regular jobs. The default settings execute regular jobs by anacron,
81 however this could be overloaded in settings.
82
83 %prep
84 %setup -q
85 %patch0 -p1
86 %patch1 -p1
87 %patch2 -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-pam \
99         --with%{!?with_selinux:out}-selinux \
100         --with%{!?with_audit:out}-audit \
101         --with%{!?with_inotify:out}-inotify \
102         --enable-anacron
103
104 %{__make}
105
106 %install
107 rm -rf $RPM_BUILD_ROOT
108 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir}} \
109         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
110         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
111
112 %{__make} install \
113         pamdir=/etc/pam.d \
114         DESTDIR=$RPM_BUILD_ROOT
115
116 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
117 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
118 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
119 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
120 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
121 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond
122
123 touch $RPM_BUILD_ROOT/var/log/cron
124
125 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
126 # cron.allow    This file describes the names of the users which are
127 #               allowed to use the local cron daemon
128 root
129 EOF
130
131 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
132 # cron.deny     This file describes the names of the users which are
133 #               NOT allowed to use the local cron daemon
134 EOF
135
136 %clean
137 rm -rf $RPM_BUILD_ROOT
138
139 %pre
140 %groupadd -g 117 -r -f crontab
141
142 %post
143 if [ ! -f /var/log/cron ]; then
144         umask 027
145         touch /var/log/cron
146         chgrp crontab /var/log/cron
147         chmod 660 /var/log/cron
148 fi
149 /sbin/chkconfig --add crond
150 %service crond restart "Cron Daemon"
151
152 %preun
153 if [ "$1" = "0" ]; then
154         %service crond stop
155         /sbin/chkconfig --del crond
156 fi
157
158 %postun
159 if [ "$1" = "0" ]; then
160         %groupremove crontab
161 fi
162
163 %triggerpostun -- hc-cron
164 # reinstall crond init.d links, which could be different
165 /sbin/chkconfig --del crond
166 /sbin/chkconfig --add crond
167
168 %triggerun -- vixie-cron
169 # Prevent preun from crond from working
170 chmod a-x /etc/rc.d/init.d/crond
171
172 %triggerpostun -- vixie-cron
173 # Restore what triggerun removed
174 chmod 754 /etc/rc.d/init.d/crond
175 /sbin/chkconfig --add crond
176
177 %files
178 %defattr(644,root,root,755)
179 %doc AUTHORS ChangeLog README
180 %attr(750,root,crontab) %dir %{_sysconfdir}/cron*
181 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
182 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
183 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
184 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
185 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
186 %attr(754,root,root) /etc/rc.d/init.d/crond
187 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron
188 %attr(755,root,root) %{_sbindir}/crond
189 %attr(2755,root,crontab) %{_bindir}/crontab
190
191 %{_mandir}/man8/crond.8*
192 %{_mandir}/man8/cron.8*
193 %{_mandir}/man5/crontab.5*
194 %{_mandir}/man1/crontab.1*
195
196 %attr(1730,root,crontab) /var/spool/cron
197 %attr(660,root,crontab) %ghost /var/log/cron
198
199 %files anacron
200 %defattr(644,root,root,755)
201 %attr(755,root,root) %{_sbindir}/anacron
202 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
203 %{_mandir}/man5/anacrontab.5*
204 %{_mandir}/man8/anacron.8*
205
206 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.070574 seconds and 2 git commands to generate.