X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcronie.git;a=blobdiff_plain;f=cronie.spec;h=b081affda7003adca514c8524ae32e8dd0146b8a;hp=e398fb532d9d955e9b69e25ac4d1f6e2eff04ef0;hb=1c89d0c;hpb=daf76cdcfb8cba989c947211e01c0aea77b3e1e4 diff --git a/cronie.spec b/cronie.spec index e398fb5..b081aff 100644 --- a/cronie.spec +++ b/cronie.spec @@ -1,62 +1,92 @@ +# 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 selinux # without SELinux support %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: 3 -License: MIT and BSD and GPLv2 +Version: 1.5.2 +Release: 1 +License: MIT and BSD and GPL v2 Group: Daemons -Source0: %{name}-%{version}.tar.gz -# 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 +Source6: crond.service Patch0: inotify-nosys.patch -URL: https://fedorahosted.org/cronie/ +Patch1: sendmail-path.patch +URL: https://github.com/cronie-crond/cronie/ %{?with_audit:BuildRequires: audit-libs-devel} -BuildRequires: autoconf +BuildRequires: autoconf >= 2.60 BuildRequires: automake +BuildRequires: glibc-devel >= 6:2.21 %{?with_selinux:BuildRequires: libselinux-devel} BuildRequires: pam-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) -%if "%{pld_release}" != "ti" -Provides: vixie-cron = 4:4.4 +%if "%{pld_release}" == "th" +Provides: vixie-cron = 4.3-1 %endif Obsoletes: crondaemon +Obsoletes: cronie-systemd Obsoletes: crontabs -%if "%{pld_release}" != "ti" -Obsoletes: vixie-cron <= 4:4.3 +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 SELinux. +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 +Summary(pl.UTF-8): Narzędzie do uruchamiania regularnych zadań Group: Base Provides: anacron = 2.4 Obsoletes: anacron <= 2.3 @@ -66,9 +96,15 @@ 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} @@ -76,49 +112,47 @@ however this could be overloaded in settings. %{__autoheader} %{__automake} %configure \ - SYSCRONTAB=/etc/cron.d/crontab \ + 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%{!?with_audit:out}-audit \ - --with%{!?with_inotify:out}-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/{ana,}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 -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 - -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 +cp -p %{SOURCE5} crond.pam + +%if %{without audit} +# remove recording user's login uid to the process attribute +%{__sed} -i -e '/pam_loginuid.so/d' crond.pam +%endif -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 @@ -139,63 +173,80 @@ 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 -# reinstall crond init.d links, which could be different -/sbin/chkconfig --del crond -/sbin/chkconfig --add crond - -%triggerun -- vixie-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 -- vixie-cron +%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 %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(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*