X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcronie.git;a=blobdiff_plain;f=cronie.spec;h=b081affda7003adca514c8524ae32e8dd0146b8a;hp=978ccd9d99b65f0a11820f20dce3098f7ac63f6d;hb=1c89d0c;hpb=9088c091c01ab94b1e5d32c7e02dd3f7f4a63638 diff --git a/cronie.spec b/cronie.spec index 978ccd9..b081aff 100644 --- a/cronie.spec +++ b/cronie.spec @@ -1,107 +1,158 @@ +# TODO +# - update paths in manuals (create .in files and send upstream) +# - make /etc/pam.d independant of sysconfdir (configure-able option and send upstream) +# - syslog output (-s) writes two bytes of garbage to syslog instead of actual data: +# Mar 3 09:30:01 ravenous CROND[2528]: 4ÿ # # Conditional build: +%bcond_without inotify # without inotify support +%if "%{pld_release}" == "ac" +%bcond_with selinux # with SELinux support +%bcond_with audit # with audit support +%else %bcond_without selinux # without SELinux support -# +%bcond_without audit # without audit support +%endif + Summary: Cron daemon for executing programs at set times +Summary(pl.UTF-8): Demon cron do uruchamiania programów o zadanym czasie Name: cronie -Version: 1.4.1 -Release: 0.1 -License: MIT and BSD and GPLv2 +Version: 1.5.2 +Release: 1 +License: MIT and BSD and GPL v2 Group: Daemons -Source0: https://fedorahosted.org/cronie/attachment/wiki/WikiStart/cronie-1.4.1.tar.gz?format=raw -# Source0-md5: 9c089d2035b9fa8263bc71da3eb31cdd +Source0: https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz +# Source0-md5: 703314f58a49ea136e9966d3937d9bf4 Source1: %{name}.init -Source2: cron.logrotate Source3: cron.sysconfig Source4: %{name}.crontab Source5: %{name}.pam -URL: https://fedorahosted.org/cronie/ +Source6: crond.service +Patch0: inotify-nosys.patch +Patch1: sendmail-path.patch +URL: https://github.com/cronie-crond/cronie/ +%{?with_audit:BuildRequires: audit-libs-devel} +BuildRequires: autoconf >= 2.60 +BuildRequires: automake +BuildRequires: glibc-devel >= 6:2.21 %{?with_selinux:BuildRequires: libselinux-devel} BuildRequires: pam-devel -BuildRequires: audit-libs-devel -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpm >= 4.4.9-56 +BuildRequires: rpmbuild(macros) >= 1.647 Requires(post): fileutils Requires(post,preun): /sbin/chkconfig -Requires(post,preun): rc-scripts Requires(postun): /usr/sbin/groupdel Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires: /bin/run-parts -Requires: /sbin/chkconfig Requires: psmisc >= 20.1 -Requires: rc-scripts +Requires: rc-scripts >= 0.4.3.0 +%if "%{pld_release}" != "ac" +Requires(post,preun,postun): systemd-units >= 38 +Requires: systemd-units >= 38} +%endif +%{?with_inotify:Requires: uname(release) >= 2.6.13} Provides: crondaemon Provides: crontabs = 1.7 +Provides: cronjobs Provides: group(crontab) -Provides: vixie-cron = 4:4.4 -Obsoletes: vixie-cron <= 4:4.3 +%if "%{pld_release}" == "th" +Provides: vixie-cron = 4.3-1 +%endif Obsoletes: crondaemon +Obsoletes: cronie-systemd Obsoletes: crontabs +Obsoletes: cronjobs +%if "%{pld_release}" == "th" +Obsoletes: vixie-cron < 4.3-1 +%endif +Conflicts: sysklogd < 1.5.1-2 +Conflicts: syslog-ng < 3.6.4-3 +Conflicts: rsyslog < 5.10.1-4 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description -Cronie contains the standard UNIX daemon crond that runs specified programs at -scheduled times and related tools. It is based on the original cron and -has security and configuration enhancements like the ability to use pam and +Cronie contains the standard UNIX daemon crond that runs specified +programs at scheduled times and related tools. It is based on the +original cron and has security and configuration enhancements like the +ability to use PAM and SELinux. + +%description -l pl.UTF-8 +Cronie zawiera standardowego demona uniksowego crond, uruchamiającego +podane programy o zadanym czasie, oraz powiązane narzędzia. Jest +oparty na oryginalnym cronie i zawiera rozszerzenia bezpieczeństwa i +konfiguracji, takie jak możliwość wykorzystania mechanizmów PAM i SELinux. %package anacron -Summary: Utility for running regular jobs -Group: Base -Provides: anacron = 2.4 -Obsoletes: anacron <= 2.3 +Summary: Utility for running regular jobs +Summary(pl.UTF-8): Narzędzie do uruchamiania regularnych zadań +Group: Base +Provides: anacron = 2.4 +Obsoletes: anacron <= 2.3 %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. +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. + +%description anacron -l pl.UTF-8 +Anacron stał się częścią cronie. Służy tylko do uruchamiania +regularnych zadań. Domyślne ustawienia wykonują zadania przy użyciu +anacrona, ale może to być zmienione w ustawieniach. %prep %setup -q +%patch0 -p1 +%patch1 -p1 %build +%{__aclocal} +%{__autoconf} +%{__autoheader} +%{__automake} %configure \ + SYSCRONTAB=/etc/crontab \ + SYS_CROND_DIR=/etc/cron.d \ + --sysconfdir=/etc/cron \ + --with-editor=/bin/vi \ + --with-audit%{!?with_audit:=no} \ + --with-inotify%{!?with_inotify:=no} \ --with-pam \ - --with%{?!with_selinux:out}-selinux \ - --with-audit \ - --with-inotify \ - --enable-anacron + --with-selinux%{!?with_selinux:=no} \ + --disable-syscrontab \ + --enable-anacron \ +%if "%{cc_version}" >= "3.4" + --enable-pie \ +%endif + --enable-relro %{__make} %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/var/{log,spool/cron},%{_mandir}} \ +install -d $RPM_BUILD_ROOT{/var/{log,spool/{ana,}cron},%{_mandir},%{systemdunitdir}}\ $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \ $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d} %{__make} install \ + pamdir=/etc/pam.d \ DESTDIR=$RPM_BUILD_ROOT -install contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron +cp -p %{SOURCE5} crond.pam -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond -install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron -install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron -install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab -install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/crond +%if %{without audit} +# remove recording user's login uid to the process attribute +%{__sed} -i -e '/pam_loginuid.so/d' crond.pam +%endif -for a in fi fr id ja ko pl; do - if test -f $a/man1/crontab.1; then - install -d $RPM_BUILD_ROOT%{_mandir}/$a/man1 - install $a/man1/crontab.1 $RPM_BUILD_ROOT%{_mandir}/$a/man1 - fi - if test -f $a/man5/crontab.5; then - install -d $RPM_BUILD_ROOT%{_mandir}/$a/man5 - install $a/man5/crontab.5 $RPM_BUILD_ROOT%{_mandir}/$a/man5 - fi - if test -f $a/man8/cron.8; then - install -d $RPM_BUILD_ROOT%{_mandir}/$a/man8 - install $a/man8/cron.8 $RPM_BUILD_ROOT%{_mandir}/$a/man8 - fi -done - -touch $RPM_BUILD_ROOT/var/log/cron +install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond +cp -a contrib/0anacron $RPM_BUILD_ROOT/etc/cron.hourly/0anacron +cp -a contrib/anacrontab $RPM_BUILD_ROOT/etc/cron/anacrontab +cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron +cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab +cp -a crond.pam $RPM_BUILD_ROOT/etc/pam.d/crond +cp -a %{SOURCE6} $RPM_BUILD_ROOT%{systemdunitdir}/crond.service cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF' # cron.allow This file describes the names of the users which are @@ -122,24 +173,44 @@ rm -rf $RPM_BUILD_ROOT %post /sbin/chkconfig --add crond -umask 027 -touch /var/log/cron -chgrp crontab /var/log/cron -chmod 660 /var/log/cron %service crond restart "Cron Daemon" +%systemd_post crond.service %preun if [ "$1" = "0" ]; then %service crond stop /sbin/chkconfig --del crond fi +%systemd_preun crond.service %postun if [ "$1" = "0" ]; then %groupremove crontab fi +%systemd_reload + +%triggerpostun -- cronie < 1.4.8-13 +if [ -f /etc/sysconfig/cron ]; then + . /etc/sysconfig/cron + __CROND_ARGS= + [ "$CROND_SYSLOG_RESULT" = "yes" ] && __CROND_ARGS="-s" + [ -n "$CROND_MAIL_PROG" ] && __CROND_ARGS="$__CROND_ARGS -m $CROND_MAIL_PROG" + if [ -n "$__CROND_ARGS" ]; then + %{__cp} -f /etc/sysconfig/cron{,.rpmsave} + echo >>/etc/sysconfig/cron + echo "# Added by rpm trigger" >>/etc/sysconfig/cron + echo "CROND_ARGS=\"$CROND_ARGS $__CROND_ARGS\"" >>/etc/sysconfig/cron + fi +fi +%systemd_trigger crond.service -%triggerpostun -- hc-cron +%triggerun -- hc-cron,fcron,vixie-cron < 4.3-1 +# Prevent preun from crond from working +chmod a-x /etc/rc.d/init.d/crond + +%triggerpostun -- hc-cron,fcron,vixie-cron < 4.3-1 +# Restore what triggerun removed +chmod 754 /etc/rc.d/init.d/crond # reinstall crond init.d links, which could be different /sbin/chkconfig --del crond /sbin/chkconfig --add crond @@ -147,28 +218,36 @@ fi %files %defattr(644,root,root,755) %doc AUTHORS ChangeLog README -%attr(750,root,crontab) %dir %{_sysconfdir}/cron* +%attr(750,root,crontab) %dir /etc/cron +%attr(750,root,crontab) %dir /etc/cron.daily +%attr(750,root,crontab) %dir /etc/cron.hourly +%attr(750,root,crontab) %dir /etc/cron.monthly +%attr(750,root,crontab) %dir /etc/cron.weekly %attr(640,root,crontab) %config(noreplace,missingok) /etc/cron.d/crontab %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow %attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/crond %attr(754,root,root) /etc/rc.d/init.d/crond -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/cron +%{systemdunitdir}/crond.service %attr(755,root,root) %{_sbindir}/crond +%attr(2755,root,crontab) %{_bindir}/cronnext %attr(2755,root,crontab) %{_bindir}/crontab %{_mandir}/man8/crond.8* %{_mandir}/man8/cron.8* %{_mandir}/man5/crontab.5* +%{_mandir}/man1/cronnext.1* %{_mandir}/man1/crontab.1* %attr(1730,root,crontab) /var/spool/cron -%attr(660,root,crontab) %ghost /var/log/cron %files anacron %defattr(644,root,root,755) %attr(755,root,root) %{_sbindir}/anacron -%attr(0755,root,root) %{_sysconfdir}/cron.hourly/0anacron +%attr(755,root,root) %{_sysconfdir}/cron.hourly/0anacron +%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) /etc/cron/anacrontab %{_mandir}/man5/anacrontab.5* %{_mandir}/man8/anacron.8* + +%attr(1730,root,crontab) /var/spool/anacron