]> git.pld-linux.org Git - packages/cronie.git/blob - cronie.spec
- use install(1) to do all in once, but it's racy?
[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         # without SELinux support
11 %bcond_with             audit           # without 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.4.4
20 Release:        3
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:  eb9834c5f87cca9efeed68e6fed3fe3d
25 Source1:        %{name}.init
26 Source2:        cron.logrotate
27 Source3:        cron.sysconfig
28 Source4:        %{name}.crontab
29 Source5:        %{name}.pam
30 Patch0:         inotify-nosys.patch
31 Patch1:         %{name}-nosyscrontab.patch
32 Patch2:         sendmail-path.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(postun):       /usr/sbin/groupdel
44 Requires(pre):  /usr/bin/getgid
45 Requires(pre):  /usr/sbin/groupadd
46 Requires:       /bin/run-parts
47 Requires:       /sbin/chkconfig
48 Requires:       psmisc >= 20.1
49 Requires:       rc-scripts >= 0.4.0.19
50 %{?with_inotify:Requires:       uname(release) >= 2.6.13}
51 Provides:       crondaemon
52 Provides:       crontabs = 1.7
53 Provides:       group(crontab)
54 %if "%{pld_release}" == "th"
55 Provides:       vixie-cron = 4:4.4
56 %endif
57 Obsoletes:      crondaemon
58 Obsoletes:      crontabs
59 %if "%{pld_release}" == "th"
60 Obsoletes:      vixie-cron <= 4:4.3
61 %endif
62 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
63
64 %description
65 Cronie contains the standard UNIX daemon crond that runs specified
66 programs at scheduled times and related tools. It is based on the
67 original cron and has security and configuration enhancements like the
68 ability to use pam and SELinux.
69
70 %package anacron
71 Summary:        Utility for running regular jobs
72 Group:          Base
73 Provides:       anacron = 2.4
74 Obsoletes:      anacron <= 2.3
75
76 %description anacron
77 Anacron becames part of cronie. Anacron is used only for running
78 regular jobs. The default settings execute regular jobs by anacron,
79 however this could be overloaded in settings.
80
81 %prep
82 %setup -q
83 %patch0 -p1
84 %patch1 -p1
85 %patch2 -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         install -m 660 -g crontab /dev/null /var/log/cron
143 fi
144 /sbin/chkconfig --add crond
145 %service crond restart "Cron Daemon"
146
147 %preun
148 if [ "$1" = "0" ]; then
149         %service crond stop
150         /sbin/chkconfig --del crond
151 fi
152
153 %postun
154 if [ "$1" = "0" ]; then
155         %groupremove crontab
156 fi
157
158 %triggerun -- hc-cron,fcron,vixie-cron
159 # Prevent preun from crond from working
160 chmod a-x /etc/rc.d/init.d/crond
161
162 %triggerpostun -- hc-cron,fcron,vixie-cron
163 # Restore what triggerun removed
164 chmod 754 /etc/rc.d/init.d/crond
165 # reinstall crond init.d links, which could be different
166 /sbin/chkconfig --del crond
167 /sbin/chkconfig --add crond
168
169 %files
170 %defattr(644,root,root,755)
171 %doc AUTHORS ChangeLog README
172 %attr(750,root,crontab) %dir %{_sysconfdir}/cron*
173 %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
174 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
175 %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
176 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
177 %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
178 %attr(754,root,root) /etc/rc.d/init.d/crond
179 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron
180 %attr(755,root,root) %{_sbindir}/crond
181 %attr(2755,root,crontab) %{_bindir}/crontab
182
183 %{_mandir}/man8/crond.8*
184 %{_mandir}/man8/cron.8*
185 %{_mandir}/man5/crontab.5*
186 %{_mandir}/man1/crontab.1*
187
188 %attr(1730,root,crontab) /var/spool/cron
189 %attr(660,root,crontab) %ghost /var/log/cron
190
191 %files anacron
192 %defattr(644,root,root,755)
193 %attr(755,root,root) %{_sbindir}/anacron
194 %attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
195 %{_mandir}/man5/anacrontab.5*
196 %{_mandir}/man8/anacron.8*
197
198 %attr(1730,root,crontab) /var/spool/anacron
This page took 0.058874 seconds and 4 git commands to generate.