]> git.pld-linux.org Git - packages/cronie.git/blame_incremental - cronie.spec
- updated to 1.7.2
[packages/cronie.git] / cronie.spec
... / ...
CommitLineData
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 # with SELinux support
11%bcond_with audit # with audit support
12%else
13%bcond_without selinux # without SELinux support
14%bcond_without audit # without audit support
15%endif
16
17Summary: Cron daemon for executing programs at set times
18Summary(pl.UTF-8): Demon cron do uruchamiania programów o zadanym czasie
19Name: cronie
20Version: 1.7.2
21Release: 1
22License: MIT and BSD and GPL v2
23Group: Daemons
24#Source0Download: https://github.com/cronie-crond/cronie/releases
25Source0: https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
26# Source0-md5: 2dacf4a7198b26dbd497a418cf31443d
27Source1: %{name}.init
28Source3: cron.sysconfig
29Source4: %{name}.crontab
30Source5: %{name}.pam
31Source6: crond.service
32Patch0: inotify-nosys.patch
33Patch1: sendmail-path.patch
34URL: https://github.com/cronie-crond/cronie/
35%{?with_audit:BuildRequires: audit-libs-devel}
36BuildRequires: autoconf >= 2.60
37BuildRequires: automake
38BuildRequires: glibc-devel >= 6:2.21
39%{?with_selinux:BuildRequires: libselinux-devel}
40BuildRequires: pam-devel
41BuildRequires: rpm >= 4.4.9-56
42BuildRequires: rpmbuild(macros) >= 1.647
43Requires(post): fileutils
44Requires(post,preun): /sbin/chkconfig
45Requires(postun): /usr/sbin/groupdel
46Requires(pre): /usr/bin/getgid
47Requires(pre): /usr/sbin/groupadd
48Requires: /bin/run-parts
49Requires: psmisc >= 20.1
50Requires: rc-scripts >= 0.4.3.0
51%if "%{pld_release}" != "ac"
52Requires(post,preun,postun): systemd-units >= 38
53Requires: systemd-units >= 38}
54%endif
55%{?with_inotify:Requires: uname(release) >= 2.6.13}
56Provides: crondaemon
57Provides: crontabs = 1.7
58Provides: cronjobs
59Provides: group(crontab)
60%if "%{pld_release}" == "th"
61Provides: vixie-cron = 4.3-1
62%endif
63Obsoletes: crondaemon
64Obsoletes: cronie-systemd < 1.4.8-9
65Obsoletes: cronie-upstart < 1.4.12-5
66Obsoletes: crontabs
67Obsoletes: cronjobs
68%if "%{pld_release}" == "th"
69Obsoletes: vixie-cron < 4.3-1
70%endif
71Conflicts: sysklogd < 1.5.1-2
72Conflicts: syslog-ng < 3.6.4-3
73Conflicts: rsyslog < 5.10.1-4
74BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
76%description
77Cronie contains the standard UNIX daemon crond that runs specified
78programs at scheduled times and related tools. It is based on the
79original cron and has security and configuration enhancements like the
80ability to use PAM and SELinux.
81
82%description -l pl.UTF-8
83Cronie zawiera standardowego demona uniksowego crond, uruchamiającego
84podane programy o zadanym czasie, oraz powiązane narzędzia. Jest
85oparty na oryginalnym cronie i zawiera rozszerzenia bezpieczeństwa i
86konfiguracji, takie jak możliwość wykorzystania mechanizmów PAM i
87SELinux.
88
89%package anacron
90Summary: Utility for running regular jobs
91Summary(pl.UTF-8): Narzędzie do uruchamiania regularnych zadań
92Group: Base
93Provides: anacron = 2.4
94Obsoletes: anacron <= 2.3
95
96%description anacron
97Anacron becames part of cronie. Anacron is used only for running
98regular jobs. The default settings execute regular jobs by anacron,
99however this could be overloaded in settings.
100
101%description anacron -l pl.UTF-8
102Anacron stał się częścią cronie. Służy tylko do uruchamiania
103regularnych zadań. Domyślne ustawienia wykonują zadania przy użyciu
104anacrona, ale może to być zmienione w ustawieniach.
105
106%prep
107%setup -q
108%patch0 -p1
109%patch1 -p1
110
111%build
112%{__aclocal}
113%{__autoconf}
114%{__autoheader}
115%{__automake}
116%configure \
117 SYSCRONTAB=/etc/crontab \
118 SYS_CROND_DIR=/etc/cron.d \
119 --sysconfdir=/etc/cron \
120 --with-editor=/bin/vi \
121 --with-audit%{!?with_audit:=no} \
122 --with-inotify%{!?with_inotify:=no} \
123 --with-pam \
124 --with-selinux%{!?with_selinux:=no} \
125 --disable-silent-rules \
126 --disable-syscrontab \
127 --enable-anacron \
128%if "%{cc_version}" >= "3.4"
129 --enable-pie \
130%endif
131 --enable-relro
132
133%{__make}
134
135%install
136rm -rf $RPM_BUILD_ROOT
137install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\
138 $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
139 $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
140
141%{__make} install \
142 pamdir=/etc/pam.d \
143 DESTDIR=$RPM_BUILD_ROOT
144
145cp -p %{SOURCE5} crond.pam
146
147%if %{without audit}
148# remove recording user's login uid to the process attribute
149%{__sed} -i -e '/pam_loginuid.so/d' crond.pam
150%endif
151
152install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
153cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
154cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab
155cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
156cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
157cp -a crond.pam $RPM_BUILD_ROOT/etc/pam.d/crond
158cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
159
160cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
161# cron.allow This file describes the names of the users which are
162# allowed to use the local cron daemon
163root
164EOF
165
166cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
167# cron.deny This file describes the names of the users which are
168# NOT allowed to use the local cron daemon
169EOF
170
171cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/check-crond << 'EOF'
172#!/bin/sh
173
174# ugly and limited hack. make cronie restart itself
175if [ -x /bin/awk -a -x /bin/grep -a -f /var/log/cron ]; then
176 LC_ALL=C /bin/awk -v d="$(LC_ALL=C date "+%b %e")" ' $1 " " $2 ~ d' /var/log/cron \
177 | /bin/grep -qE "PAM.*(Modu. jest nieznany|Module is unknown)" \
178 && echo "crond is failing on PAM, restarting ( https://github.com/cronie-crond/cronie/issues/87 )" >&2 \
179 && /sbin/service crond try-restart
180fi
181exit 0
182EOF
183
184%clean
185rm -rf $RPM_BUILD_ROOT
186
187%pre
188%groupadd -g 117 -r -f crontab
189
190%post
191/sbin/chkconfig --add crond
192%service crond restart "Cron Daemon"
193%systemd_post crond.service
194
195%preun
196if [ "$1" = "0" ]; then
197 %service crond stop
198 /sbin/chkconfig --del crond
199fi
200%systemd_preun crond.service
201
202%postun
203if [ "$1" = "0" ]; then
204 %groupremove crontab
205fi
206%systemd_reload
207
208%triggerpostun -- cronie < 1.4.8-13
209if [ -f /etc/sysconfig/cron ]; then
210 . /etc/sysconfig/cron
211 __CROND_ARGS=
212 [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s"
213 [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG"
214 if [ -n "$__CROND_ARGS" ]; then
215 %{__cp} -f /etc/sysconfig/cron{,.rpmsave}
216 echo >>/etc/sysconfig/cron
217 echo "# Added by rpm trigger" >>/etc/sysconfig/cron
218 echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron
219 fi
220fi
221%systemd_trigger crond.service
222
223%triggerun -- hc-cron,fcron,vixie-cron < 4.3-1
224# Prevent preun from crond from working
225chmod a-x /etc/rc.d/init.d/crond
226
227%triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1
228# Restore what triggerun removed
229chmod 754 /etc/rc.d/init.d/crond
230# reinstall crond init.d links, which could be different
231/sbin/chkconfig --del crond
232/sbin/chkconfig --add crond
233
234%files
235%defattr(644,root,root,755)
236%doc AUTHORS ChangeLog README
237%attr(750,root,crontab) %dir /etc/cron
238%attr(750,root,crontab) %dir /etc/cron.daily
239%attr(750,root,root) /etc/cron.daily/check-crond
240%attr(750,root,crontab) %dir /etc/cron.hourly
241%attr(750,root,crontab) %dir /etc/cron.monthly
242%attr(750,root,crontab) %dir /etc/cron.weekly
243%attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab
244%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
245%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
246%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
247%config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond
248%attr(754,root,root) /etc/rc.d/init.d/crond
249%{systemdunitdir}/crond.service
250%attr(755,root,root) %{_sbindir}/crond
251%attr(2755,root,crontab) %{_bindir}/cronnext
252%attr(2755,root,crontab) %{_bindir}/crontab
253
254%{_mandir}/man8/crond.8*
255%{_mandir}/man8/cron.8*
256%{_mandir}/man5/crontab.5*
257%{_mandir}/man1/cronnext.1*
258%{_mandir}/man1/crontab.1*
259
260%attr(1730,root,crontab) /var/spool/cron
261
262%files anacron
263%defattr(644,root,root,755)
264%attr(755,root,root) %{_sbindir}/anacron
265%attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron
266%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/cron/anacrontab
267%{_mandir}/man5/anacrontab.5*
268%{_mandir}/man8/anacron.8*
269
270%attr(1730,root,crontab) /var/spool/anacron
This page took 0.051057 seconds and 5 git commands to generate.