]> git.pld-linux.org Git - packages/cronie.git/blob - cronie.spec
- todo toughts
[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.2
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:  9c7cef09ff9c92a90a314a1e947fae5c
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 URL:            https://fedorahosted.org/cronie/
34 %{?with_audit:BuildRequires:    audit-libs-devel}
35 BuildRequires:  autoconf
36 BuildRequires:  automake
37 %{?with_selinux:BuildRequires:  libselinux-devel}
38 BuildRequires:  pam-devel
39 BuildRequires:  rpm >= 4.4.9-56
40 BuildRequires:  rpmbuild(macros) >= 1.268
41 Requires(post): fileutils
42 Requires(post,preun):   /sbin/chkconfig
43 Requires(post,preun):   rc-scripts
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
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
87 %build
88 %{__aclocal}
89 %{__autoconf}
90 %{__autoheader}
91 %{__automake}
92 %configure \
93         SYSCRONTAB=/etc/crontab \
94         SYS_CROND_DIR=/etc/cron.d \
95         --sysconfdir=/etc/cron \
96         --with-pam \
97         --with%{!?with_selinux:out}-selinux \
98         --with%{!?with_audit:out}-audit \
99         --with%{!?with_inotify:out}-inotify \
100         --enable-anacron
101
102 %{__make}
103
104 %install
105 rm -rf $RPM_BUILD_ROOT
106 install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir}} \
107         $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
108         $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
109
110 %{__make} install \
111         pamdir=/etc/pam.d \
112         DESTDIR=$RPM_BUILD_ROOT
113
114 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
115 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
116 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
117 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
118 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
119 cp -a %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond
120
121 touch $RPM_BUILD_ROOT/var/log/cron
122
123 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
124 # cron.allow    This file describes the names of the users which are
125 #               allowed to use the local cron daemon
126 root
127 EOF
128
129 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
130 # cron.deny     This file describes the names of the users which are
131 #               NOT allowed to use the local cron daemon
132 EOF
133
134 %clean
135 rm -rf $RPM_BUILD_ROOT
136
137 %pre
138 %groupadd -g 117 -r -f crontab
139
140 %post
141 if [ ! -f /var/log/cron ]; then
142         umask 027
143         touch /var/log/cron
144         chgrp crontab /var/log/cron
145         chmod 660 /var/log/cron
146 fi
147 /sbin/chkconfig --add crond
148 %service crond restart "Cron Daemon"
149
150 %preun
151 if [ "$1" = "0" ]; then
152         %service crond stop
153         /sbin/chkconfig --del crond
154 fi
155
156 %postun
157 if [ "$1" = "0" ]; then
158         %groupremove crontab
159 fi
160
161 %triggerpostun -- hc-cron
162 # reinstall crond init.d links, which could be different
163 /sbin/chkconfig --del crond
164 /sbin/chkconfig --add crond
165
166 %triggerun -- vixie-cron
167 # Prevent preun from crond from working
168 chmod a-x /etc/rc.d/init.d/crond
169
170 %triggerpostun -- vixie-cron
171 # Restore what triggerun removed
172 chmod 754 /etc/rc.d/init.d/crond
173 /sbin/chkconfig --add crond
174
175 %files
176 %defattr(644,root,root,755)
177 %doc AUTHORS ChangeLog README
178 %attr(750,root,crontab) %dir %{_sysconfdir}/cron*
179 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
180 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
181 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
182 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
183 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
184 %attr(754,root,root) /etc/rc.d/init.d/crond
185 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron
186 %attr(755,root,root) %{_sbindir}/crond
187 %attr(2755,root,crontab) %{_bindir}/crontab
188
189 %{_mandir}/man8/crond.8*
190 %{_mandir}/man8/cron.8*
191 %{_mandir}/man5/crontab.5*
192 %{_mandir}/man1/crontab.1*
193
194 %attr(1730,root,crontab) /var/spool/cron
195 %attr(660,root,crontab) %ghost /var/log/cron
196
197 %files anacron
198 %defattr(644,root,root,755)
199 %attr(755,root,root) %{_sbindir}/anacron
200 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
201 %{_mandir}/man5/anacrontab.5*
202 %{_mandir}/man8/anacron.8*
203
204 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.066267 seconds and 3 git commands to generate.