From f97ae47b8a4dd7b4959a019adf148390e3a182cf Mon Sep 17 00:00:00 2001 From: Tobias Klausmann Date: Fri, 30 Sep 2016 16:15:45 +0200 Subject: sys-process/cronbase: second attempt at fixing bug 595492 In the case of a stale lockfile, the old code still produces error messages: /usr/sbin/run-crons: line 61: /proc/6450/cmdline: No such file or directory This change should dodge that scenario. --- sys-process/cronbase/cronbase-0.3.7-r2.ebuild | 33 --------------------------- sys-process/cronbase/cronbase-0.3.7-r3.ebuild | 33 +++++++++++++++++++++++++++ sys-process/cronbase/files/run-crons-0.3.7 | 2 +- 3 files changed, 34 insertions(+), 34 deletions(-) delete mode 100644 sys-process/cronbase/cronbase-0.3.7-r2.ebuild create mode 100644 sys-process/cronbase/cronbase-0.3.7-r3.ebuild (limited to 'sys-process') diff --git a/sys-process/cronbase/cronbase-0.3.7-r2.ebuild b/sys-process/cronbase/cronbase-0.3.7-r2.ebuild deleted file mode 100644 index d263aeb11e0e..000000000000 --- a/sys-process/cronbase/cronbase-0.3.7-r2.ebuild +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI="5" - -inherit user - -DESCRIPTION="base for all cron ebuilds" -HOMEPAGE="https://www.gentoo.org/" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" -IUSE="" - -S=${WORKDIR} - -pkg_setup() { - enewgroup cron 16 - enewuser cron 16 -1 /var/spool/cron cron -} - -src_install() { - newsbin "${FILESDIR}"/run-crons-${PV} run-crons - - diropts -m0750 - keepdir /etc/cron.{hourly,daily,weekly,monthly} - - keepdir /var/spool/cron/lastrun - diropts -m0750 -o root -g cron - keepdir /var/spool/cron -} diff --git a/sys-process/cronbase/cronbase-0.3.7-r3.ebuild b/sys-process/cronbase/cronbase-0.3.7-r3.ebuild new file mode 100644 index 000000000000..d263aeb11e0e --- /dev/null +++ b/sys-process/cronbase/cronbase-0.3.7-r3.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit user + +DESCRIPTION="base for all cron ebuilds" +HOMEPAGE="https://www.gentoo.org/" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" +IUSE="" + +S=${WORKDIR} + +pkg_setup() { + enewgroup cron 16 + enewuser cron 16 -1 /var/spool/cron cron +} + +src_install() { + newsbin "${FILESDIR}"/run-crons-${PV} run-crons + + diropts -m0750 + keepdir /etc/cron.{hourly,daily,weekly,monthly} + + keepdir /var/spool/cron/lastrun + diropts -m0750 -o root -g cron + keepdir /var/spool/cron +} diff --git a/sys-process/cronbase/files/run-crons-0.3.7 b/sys-process/cronbase/files/run-crons-0.3.7 index c5f2d9ca7b33..ce8ff76e98bb 100755 --- a/sys-process/cronbase/files/run-crons-0.3.7 +++ b/sys-process/cronbase/files/run-crons-0.3.7 @@ -58,7 +58,7 @@ grab_lock() { # another run-crons process. # The tr call deletes null bytes so newer bash versions do not complain # about them. - cmdline1=$(tr -d '\0' < "/proc/${cronpid}/cmdline" 2>/dev/null) || : + cmdline1=$([ -r "/proc/${cronpid}/cmdline" ] && tr -d '\0' < "/proc/${cronpid}/cmdline" 2>/dev/null) || : cmdline2=$(tr -d '\0' < /proc/$$/cmdline) if [ "${cmdline1}" = "${cmdline2}" ] ; then # Whoa, another run-crons is really running. -- cgit v1.2.3-65-gdbad