On glibc/pam upgrades cronie can be very unhappy:
Feb 9 13:52:01 firma /usr/sbin/crond[6592]: (root) FAILED
to authorize user with PAM (Moduł jest nieznany)
because crond is inked with old stuff and can't dlopen newer pam modules.
Exact cause (like which symbol) is not known because crond
is using PAM_SILENT flag which silences most of pam error messages.
Add hacky script to make crond self cure (this problem happened way
too many times for me).
Summary(pl.UTF-8): Demon cron do uruchamiania programów o zadanym czasie
Name: cronie
Version: 1.5.7
Summary(pl.UTF-8): Demon cron do uruchamiania programów o zadanym czasie
Name: cronie
Version: 1.5.7
License: MIT and BSD and GPL v2
Group: Daemons
Source0: https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
License: MIT and BSD and GPL v2
Group: Daemons
Source0: https://github.com/cronie-crond/cronie/releases/download/%{name}-%{version}/%{name}-%{version}.tar.gz
# NOT allowed to use the local cron daemon
EOF
# NOT allowed to use the local cron daemon
EOF
+cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron.daily/check-crond << 'EOF'
+#!/bin/sh
+
+# ugly and limited hack. make cronie restart itself
+if [ -x /bin/awk -a -x /bin/grep -a -f /var/log/cron ]; then
+ LC_ALL=C /bin/awk -v d="$(LC_ALL=C date "+%b %e")" ' $1 " " $2 ~ d' /var/log/cron \
+ | /bin/grep -qE "PAM.*(Modu. jest nieznany|Module is unknown)" \
+ && echo "crond is failing on PAM, restarting ( https://github.com/cronie-crond/cronie/issues/87 )" >&2 \
+ && /sbin/service crond restart
+fi
+EOF
+
%clean
rm -rf $RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%doc AUTHORS ChangeLog README
%attr(750,root,crontab) %dir /etc/cron
%attr(750,root,crontab) %dir /etc/cron.daily
%doc AUTHORS ChangeLog README
%attr(750,root,crontab) %dir /etc/cron
%attr(750,root,crontab) %dir /etc/cron.daily
+%attr(750,root,root) /etc/cron.daily/check-crond
%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(750,root,crontab) %dir /etc/cron.hourly
%attr(750,root,crontab) %dir /etc/cron.monthly
%attr(750,root,crontab) %dir /etc/cron.weekly