246 lines
8.6 KiB
RPMSpec
246 lines
8.6 KiB
RPMSpec
#
|
|
# spec file for package cronie
|
|
#
|
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
# 3 : we don't need to do something with /etc/sysconfig/cron for now
|
|
%define cron_configs \{/etc/init.d/cron,/etc/pam.d/crond,/etc/crontab,/etc/cron.deny,/etc/omc/srvinfo.d/cron.xml\}
|
|
|
|
Name: cronie
|
|
BuildRequires: audit-devel
|
|
BuildRequires: automake
|
|
BuildRequires: libselinux-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: systemd
|
|
Url: https://fedorahosted.org/cronie/
|
|
License: BSD-3-Clause and GPL-2 and MIT
|
|
Group: System/Daemons
|
|
Recommends: smtp_daemon
|
|
Recommends: postfix
|
|
PreReq: permissions %fillup_prereq %insserv_prereq cron sysvinit(syslog)
|
|
%{?systemd_requires}
|
|
Version: 1.4.7
|
|
Release: 0
|
|
%{expand: %%define cronie_version %version}
|
|
Summary: Cron Daemon
|
|
Source0: %name-%version.tar.gz
|
|
Source1: cron.init
|
|
Source2: run-crons
|
|
Source3: sample.root
|
|
Source4: deny.sample
|
|
Source5: cron.xml
|
|
Source6: cronie-rpmlintrc
|
|
Source7: cron_to_cronie.README
|
|
Source8: cron.service
|
|
# PATCH-FEATURE-OPENSUSE cronie-pam_config.diff added pam config file from old cron
|
|
Patch3: %name-pam_config.diff
|
|
# openSUSE set NHEADER_LINES to 3 - old openSUSE cron put three lines of comments
|
|
# in top of crontab file, so we want to hide this junk comments if user edit
|
|
# crontab file with crontab -e command, patch grabbed from old openSUSE cron
|
|
Patch4: %name-nheader_lines.diff
|
|
# we use cron.pid instead of crond.pid
|
|
Patch5: %name-crond_pid.diff
|
|
# PATCH-FIX-UPSTREAM cronie-1.4.7-syslog_output.patch bnc#692871
|
|
Patch6: cronie-1.4.7-syslog_output.patch
|
|
# PATCH-FIX-UPSTREAM mention logging disabling for a command in man
|
|
Patch7: cronie-1.4.7-disable_logging.patch
|
|
# PATCH-FIX-UPSTREAM use run-crons instead of run-parts for anacron (bnc#689494)
|
|
Patch8: cronie-anacron-1.4.7-run-crons.patch
|
|
Conflicts: cron <= 4.1
|
|
# When finish update protection of sles11 we could uncomment line bellow and drop all
|
|
# ugly hacks with subpackage cron needed for proper update proces
|
|
# Obsoletes: cron <=4.x
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
%description
|
|
cron automatically starts programs at specific times. Add new entries
|
|
with "crontab -e". (See "man 5 crontab" and "man 1 crontab" for
|
|
documentation.)
|
|
|
|
Under /etc, find the directories cron.hourly, cron.daily, cron.weekly,
|
|
and cron.monthly. Scripts and programs that are located there are
|
|
started automatically.
|
|
|
|
%package -n cron
|
|
License: BSD and GPL-2.0 and MIT
|
|
Version: 4.2
|
|
Release: 0
|
|
Summary: Auxiliary package
|
|
Requires: %{name} = %{cronie_version}-%{release}
|
|
|
|
%description -n cron
|
|
Auxiliary package, needed for proper update from vixie-cron 4.1 to cronie 1.4.4
|
|
|
|
%package anacron
|
|
License: BSD and GPL-2.0 and MIT
|
|
Summary: Utility for running regular jobs
|
|
Group: System/Base
|
|
Requires: %{name} = %{cronie_version}
|
|
|
|
%description anacron
|
|
Anacron becames part of cronie. Anacron is used only for running regular jobs.
|
|
The default settings execute regular jobs by anacron, however this could be
|
|
overloaded in settings.
|
|
|
|
%prep
|
|
%setup -q
|
|
%patch3 -p1
|
|
%patch4
|
|
%patch5 -p1
|
|
%patch6 -p1
|
|
%patch7 -p1
|
|
%patch8 -p1
|
|
cp %{S:7} ./cron_to_cronie.README
|
|
|
|
%build
|
|
autoreconf -fiv
|
|
# fill macro CRON_VERSION it is used in top three lines of crontab file,should be reworked
|
|
export CFLAGS="$RPM_OPT_FLAGS -DCRON_VERSION=\\\"%{version}\\\""
|
|
export LDFLAGS="-Wl,-z,relro,-z,now,-z,defs"
|
|
%configure --with-audit --enable-anacron --with-pam --with-selinux --with-inotify --enable-pie SPOOL_DIR="/var/spool/cron/tabs"
|
|
%{__make} %{?_smp_mflags}
|
|
|
|
%install
|
|
%makeinstall
|
|
%{__mkdir_p} -v %{buildroot}%{_localstatedir}/spool/cron/{tabs,lastrun}
|
|
%{__mkdir_p} -v %{buildroot}%{_sysconfdir}/cron.{d,hourly,daily,weekly,monthly}
|
|
%{__install} -v -m 600 %{SOURCE3} %{buildroot}/etc/crontab
|
|
%{__install} -v -m 600 %{SOURCE4} %{buildroot}/etc/cron.deny
|
|
%{__install} -v -d %{buildroot}/usr/lib/cron
|
|
%{__install} -v %{SOURCE2} %{buildroot}/usr/lib/cron
|
|
%{__install} -v -d %{buildroot}%{_sysconfdir}/init.d/
|
|
%{__install} -v -m744 %{SOURCE1} %{buildroot}%{_sysconfdir}/init.d/cron
|
|
%{__ln_s} -f ../../etc/init.d/cron %{buildroot}/usr/sbin/rccron
|
|
%{__install} -v -d %{buildroot}/%{_unitdir}
|
|
%{__install} -v -m 644 %{SOURCE8} %{buildroot}/%{_unitdir}
|
|
%{__install} -m 644 contrib/anacrontab $RPM_BUILD_ROOT%{_sysconfdir}/anacrontab
|
|
%{__install} -c -m755 contrib/0anacron $RPM_BUILD_ROOT%{_sysconfdir}/cron.hourly/0anacron
|
|
%{__mkdir_p} $RPM_BUILD_ROOT/var/spool/anacron
|
|
%{__mv} %{buildroot}%{_sbindir}/crond %{buildroot}%{_sbindir}/cron
|
|
|
|
touch $RPM_BUILD_ROOT/var/spool/anacron/cron.daily
|
|
touch $RPM_BUILD_ROOT/var/spool/anacron/cron.weekly
|
|
touch $RPM_BUILD_ROOT/var/spool/anacron/cron.monthly
|
|
|
|
# service xml
|
|
%{__install} -v -d %{buildroot}%{_sysconfdir}/omc/srvinfo.d/
|
|
%{__install} -v -m644 %{S:5} %{buildroot}%{_sysconfdir}/omc/srvinfo.d/
|
|
|
|
%pre -n cron
|
|
# check if we are doing "ugly" update from old 4.1 vixie-cron
|
|
check_cron_mail_feature=`/usr/sbin/cron --help 2>&1 | /usr/bin/grep mail`
|
|
# vixie-cron 4.1 doesn't contain mail fature
|
|
if [ -e /usr/sbin/cron -a "${check_cron_mail_feature}" == "" ]; then
|
|
# save configs for cronie post-install phase
|
|
touch /var/run/update_from_old_cron
|
|
echo $1
|
|
for conf in %{cron_configs}
|
|
do
|
|
%__mv "$conf" "$conf.bk" ||:
|
|
done
|
|
fi
|
|
|
|
%pre
|
|
if [ -e /var/run/update_from_old_cron ]; then
|
|
# restore configs
|
|
for conf in %{cron_configs}
|
|
do
|
|
%__mv "$conf.bk" "$conf" ||:
|
|
done
|
|
fi
|
|
%service_add_pre cron.service
|
|
|
|
%post
|
|
# when we are doing rename then we pretend update with set 2
|
|
if [ -e /var/run/update_from_old_cron ]; then
|
|
set 2
|
|
%restart_on_update cron
|
|
# in %%postun restart_on_update call try-restart but we don't have init script in this phase when
|
|
# we are doing "ugly" update, but don't panic, it produces only warning to stderr
|
|
echo "Please ignore message about missing init script(from postun) - when occurs, we will install init script later with cronie package"
|
|
%__mv /etc/init.d/cron /etc/init.d/cron.bk ||:
|
|
%__ln_s /bin/true /etc/init.d/cron
|
|
fi
|
|
%{fillup_and_insserv -y cron}
|
|
%if 0%{?suse_version} >= 1140
|
|
%set_permissions /etc/crontab /usr/bin/crontab
|
|
%else
|
|
%run_permissions
|
|
%endif
|
|
%service_add_post cron.service
|
|
|
|
%verifyscript
|
|
%verify_permissions -e /etc/crontab -e /usr/bin/crontab
|
|
|
|
%preun
|
|
%stop_on_removal cron
|
|
%service_del_preun cron.service
|
|
|
|
%postun
|
|
%restart_on_update cron
|
|
%insserv_cleanup
|
|
%service_del_postun cron.service
|
|
|
|
%posttrans
|
|
if [ -e /var/run/update_from_old_cron ]; then
|
|
%{__rm} /var/run/update_from_old_cron ||:
|
|
%__mv /etc/init.d/cron.bk /etc/init.d/cron ||:
|
|
fi
|
|
|
|
%post anacron
|
|
[ -e /var/spool/anacron/cron.daily ] || touch /var/spool/anacron/cron.daily
|
|
[ -e /var/spool/anacron/cron.weekly ] || touch /var/spool/anacron/cron.weekly
|
|
[ -e /var/spool/anacron/cron.monthly ] || touch /var/spool/anacron/cron.monthly
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc AUTHORS COPYING README ChangeLog
|
|
%dir %attr(700,root,root) /var/spool/cron
|
|
%dir %attr(700,root,root) /var/spool/cron/tabs
|
|
%dir /var/spool/cron/lastrun
|
|
%config /etc/init.d/cron
|
|
%config /etc/pam.d/crond
|
|
%verify(not mode) %config(noreplace) /etc/crontab
|
|
%config(noreplace) /etc/cron.deny
|
|
%{_mandir}/man1/crontab.1.gz
|
|
%{_mandir}/man5/crontab.5.gz
|
|
%{_mandir}/man8/cron.8.gz
|
|
%{_mandir}/man8/crond.8.gz
|
|
%verify(not mode) %attr (4750,root,trusted) /usr/bin/crontab
|
|
%attr (755,root,root) %{_sbindir}/cron
|
|
%{_sbindir}/rccron
|
|
/usr/lib/cron
|
|
%config %{_sysconfdir}/omc/srvinfo.d/cron.xml
|
|
%dir %{_sysconfdir}/omc/srvinfo.d/
|
|
%dir %{_sysconfdir}/omc/
|
|
%{_unitdir}/cron.service
|
|
|
|
%files anacron
|
|
%defattr(-,root,root,-)
|
|
%{_sbindir}/anacron
|
|
%attr(0755,root,root) %{_sysconfdir}/cron.hourly/0anacron
|
|
%config(noreplace) %{_sysconfdir}/anacrontab
|
|
%dir /var/spool/anacron
|
|
%ghost %verify(not md5 size mtime) /var/spool/anacron/cron.daily
|
|
%ghost %verify(not md5 size mtime) /var/spool/anacron/cron.weekly
|
|
%ghost %verify(not md5 size mtime) /var/spool/anacron/cron.monthly
|
|
%{_mandir}/man5/anacrontab.*
|
|
%{_mandir}/man8/anacron.*
|
|
|
|
%files -n cron
|
|
%defattr(-,root,root,-)
|
|
%doc cron_to_cronie.README
|
|
|
|
%changelog
|