]> git.pld-linux.org Git - packages/cronie.git/blob - cronie.spec
- updated to 1.7.2
[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         # 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
17 Summary:        Cron daemon for executing programs at set times
18 Summary(pl.UTF-8):      Demon cron do uruchamiania programów o zadanym czasie
19 Name:           cronie
20 Version:        1.7.2
21 Release:        1
22 License:        MIT and BSD and GPL v2
23 Group:          Daemons
24 #Source0Download: https://github.com/cronie-crond/cronie/releases
25 Source0:        https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
26 # Source0-md5:  2dacf4a7198b26dbd497a418cf31443d
27 Source1:        %{name}.init
28 Source3:        cron.sysconfig
29 Source4:        %{name}.crontab
30 Source5:        %{name}.pam
31 Source6:        crond.service
32 Patch0:         inotify-nosys.patch
33 Patch1:         sendmail-path.patch
34 URL:            https://github.com/cronie-crond/cronie/
35 %{?with_audit:BuildRequires:    audit-libs-devel}
36 BuildRequires:  autoconf >= 2.60
37 BuildRequires:  automake
38 BuildRequires:  glibc-devel >= 6:2.21
39 %{?with_selinux:BuildRequires:  libselinux-devel}
40 BuildRequires:  pam-devel
41 BuildRequires:  rpm >= 4.4.9-56
42 BuildRequires:  rpmbuild(macros) >= 1.647
43 Requires(post): fileutils
44 Requires(post,preun):   /sbin/chkconfig
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:       psmisc >= 20.1
50 Requires:       rc-scripts >= 0.4.3.0
51 %if "%{pld_release}" != "ac"
52 Requires(post,preun,postun):    systemd-units >= 38
53 Requires:       systemd-units >= 38}
54 %endif
55 %{?with_inotify:Requires:       uname(release) >= 2.6.13}
56 Provides:       crondaemon
57 Provides:       crontabs = 1.7
58 Provides:       cronjobs
59 Provides:       group(crontab)
60 %if "%{pld_release}" == "th"
61 Provides:       vixie-cron = 4.3-1
62 %endif
63 Obsoletes:      crondaemon
64 Obsoletes:      cronie-systemd < 1.4.8-9
65 Obsoletes:      cronie-upstart < 1.4.12-5
66 Obsoletes:      crontabs
67 Obsoletes:      cronjobs
68 %if "%{pld_release}" == "th"
69 Obsoletes:      vixie-cron < 4.3-1
70 %endif
71 Conflicts:      sysklogd < 1.5.1-2
72 Conflicts:      syslog-ng < 3.6.4-3
73 Conflicts:      rsyslog < 5.10.1-4
74 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
76 %description
77 Cronie contains the standard UNIX daemon crond that runs specified
78 programs at scheduled times and related tools. It is based on the
79 original cron and has security and configuration enhancements like the
80 ability to use PAM and SELinux.
81
82 %description -l pl.UTF-8
83 Cronie zawiera standardowego demona uniksowego crond, uruchamiającego
84 podane programy o zadanym czasie, oraz powiązane narzędzia. Jest
85 oparty na oryginalnym cronie i zawiera rozszerzenia bezpieczeństwa i
86 konfiguracji, takie jak możliwość wykorzystania mechanizmów PAM i
87 SELinux.
88
89 %package anacron
90 Summary:        Utility for running regular jobs
91 Summary(pl.UTF-8):      Narzędzie do uruchamiania regularnych zadań
92 Group:          Base
93 Provides:       anacron = 2.4
94 Obsoletes:      anacron <= 2.3
95
96 %description anacron
97 Anacron becames part of cronie. Anacron is used only for running
98 regular jobs. The default settings execute regular jobs by anacron,
99 however this could be overloaded in settings.
100
101 %description anacron -l pl.UTF-8
102 Anacron stał się częścią cronie. Służy tylko do uruchamiania
103 regularnych zadań. Domyślne ustawienia wykonują zadania przy użyciu
104 anacrona, 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
136 rm -rf $RPM_BUILD_ROOT
137 install -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
145 cp -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
152 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
153 cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron
154 cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab
155 cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
156 cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
157 cp -a crond.pam  $RPM_BUILD_ROOT/etc/pam.d/crond
158 cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service
159
160 cat > $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
163 root
164 EOF
165
166 cat > $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
169 EOF
170
171 cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/check-crond << 'EOF'
172 #!/bin/sh
173
174 # ugly and limited hack. make cronie restart itself
175 if [ -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
180 fi
181 exit 0
182 EOF
183
184 %clean
185 rm -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
196 if [ "$1" = "0" ]; then
197         %service crond stop
198         /sbin/chkconfig --del crond
199 fi
200 %systemd_preun crond.service
201
202 %postun
203 if [ "$1" = "0" ]; then
204         %groupremove crontab
205 fi
206 %systemd_reload
207
208 %triggerpostun -- cronie < 1.4.8-13
209 if [ -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
220 fi
221 %systemd_trigger crond.service
222
223 %triggerun -- hc-cron,fcron,vixie-cron < 4.3-1
224 # Prevent preun from crond from working
225 chmod a-x /etc/rc.d/init.d/crond
226
227 %triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1
228 # Restore what triggerun removed
229 chmod 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.054369 seconds and 4 git commands to generate.