diff options
author | Sam James <sam@gentoo.org> | 2024-01-19 10:28:25 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-01-19 10:28:35 +0000 |
commit | c8d03c5fd70d4e1f0696ed140203f2475869ea7b (patch) | |
tree | 9d4bfc364f811000e60ec56744216af59c329744 /sys-process/cronie | |
parent | dev-db/redis: introduce subslots for improved version management (diff) | |
download | gentoo-c8d03c5fd70d4e1f0696ed140203f2475869ea7b.tar.gz gentoo-c8d03c5fd70d4e1f0696ed140203f2475869ea7b.tar.bz2 gentoo-c8d03c5fd70d4e1f0696ed140203f2475869ea7b.zip |
sys-process/cronie: backport envelope revert
Closes: https://bugs.gentoo.org/922477
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-process/cronie')
-rw-r--r-- | sys-process/cronie/cronie-1.7.1-r1.ebuild | 111 | ||||
-rw-r--r-- | sys-process/cronie/files/cronie-1.7.1-envelope-revert.patch | 59 |
2 files changed, 170 insertions, 0 deletions
diff --git a/sys-process/cronie/cronie-1.7.1-r1.ebuild b/sys-process/cronie/cronie-1.7.1-r1.ebuild new file mode 100644 index 000000000000..cd49c8370d95 --- /dev/null +++ b/sys-process/cronie/cronie-1.7.1-r1.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# cronie supports /etc/crontab +CRON_SYSTEM_CRONTAB="yes" + +inherit cron flag-o-matic pam systemd + +DESCRIPTION="Cronie is a standard UNIX daemon cron based on the original vixie-cron" +HOMEPAGE="https://github.com/cronie-crond/cronie" +SRC_URI="https://github.com/cronie-crond/cronie/releases/download/${P}/${P}.tar.gz" + +LICENSE="ISC BSD BSD-2 GPL-2+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+anacron +inotify pam selinux" + +DEPEND=" + pam? ( sys-libs/pam ) + anacron? ( + !sys-process/anacron + !sys-process/systemd-cron + elibc_musl? ( sys-libs/obstack-standalone ) + ) + selinux? ( sys-libs/libselinux ) +" +BDEPEND="acct-group/crontab" +RDEPEND=" + ${BDEPEND} + ${DEPEND} + sys-apps/debianutils +" + +PATCHES=( + "${FILESDIR}"/${P}-envelope-revert.patch +) + +src_configure() { + local myeconfargs=( + $(use_with inotify) + $(use_with pam) + $(use_with selinux) + $(use_enable anacron) + --enable-syscrontab + # Required for correct pidfile location, bug #835814 + --runstatedir="${EPREFIX}/run" + --with-daemon_username=cron + --with-daemon_groupname=cron + ) + + if use anacron && use elibc_musl ; then + append-cflags "-lobstack" + fi + + SPOOL_DIR="/var/spool/cron/crontabs" \ + ANACRON_SPOOL_DIR="/var/spool/anacron" \ + econf "${myeconfargs[@]}" +} + +src_install() { + default + + docrondir -m 1730 -o root -g crontab + fowners root:crontab /usr/bin/crontab + fperms 2751 /usr/bin/crontab + + newconfd "${S}"/crond.sysconfig ${PN} + + insinto /etc + newins "${FILESDIR}/${PN}-crontab" crontab + newins "${FILESDIR}/${PN}-1.2-cron.deny" cron.deny + + insinto /etc/cron.d + doins contrib/{0hourly,dailyjobs} + + newinitd "${FILESDIR}/${PN}-1.3-initd" ${PN} + + if use pam ; then + newpamd "${FILESDIR}/${PN}-1.4.3-pamd" crond + fi + + systemd_newunit contrib/cronie.systemd cronie.service + + if use anacron ; then + local anacrondir="/var/spool/anacron" + keepdir ${anacrondir} + fowners root:cron ${anacrondir} + fperms 0750 ${anacrondir} + + insinto /etc + doins contrib/anacrontab + + insinto /etc/cron.hourly + doins contrib/0anacron + fperms 0750 /etc/cron.hourly/0anacron + fi + + einstalldocs +} + +pkg_postinst() { + cron_pkg_postinst + + if [[ -n "${REPLACING_VERSIONS}" ]] ; then + ewarn "You should restart ${PN} daemon or else you might experience segfaults" + ewarn "or ${PN} not working reliably anymore." + einfo "(see https://bugs.gentoo.org/557406 for details.)" + fi +} diff --git a/sys-process/cronie/files/cronie-1.7.1-envelope-revert.patch b/sys-process/cronie/files/cronie-1.7.1-envelope-revert.patch new file mode 100644 index 000000000000..ac10c1a132b5 --- /dev/null +++ b/sys-process/cronie/files/cronie-1.7.1-envelope-revert.patch @@ -0,0 +1,59 @@ +https://bugs.gentoo.org/922477 +https://github.com/cronie-crond/cronie/issues/166 +https://github.com/cronie-crond/cronie/issues/170 +https://github.com/cronie-crond/cronie/pull/118 + +https://github.com/cronie-crond/cronie/commit/aeb3f8a9cbc0da7e6367d41a2b769eb7e90855f3 +https://github.com/cronie-crond/cronie/commit/6181605fafe6aaedc0c19a8bdc85a335403b42d8 + +From aeb3f8a9cbc0da7e6367d41a2b769eb7e90855f3 Mon Sep 17 00:00:00 2001 +From: Tomas Mraz <tmraz@fedoraproject.org> +Date: Fri, 19 Jan 2024 11:17:48 +0100 +Subject: [PATCH] Revert "Use empty envelope address with default mailfrom" + +This reverts commit c640f4f39e5c20995e960e4b954cd0574a96c028. + +This causes more harm than expected and is also strictly speaking +not RFC compliant. +--- a/src/do_command.c ++++ b/src/do_command.c +@@ -471,9 +471,7 @@ static int child_process(entry * e, char **jobenv) { + if (MailCmd[0] == '\0') { + int len; + +- /* Use empty envelope address with default mailfrom */ +- len = snprintf(mailcmd, sizeof mailcmd, MAILFMT, MAILARG, +- mailfrom == e->pwd->pw_name ? "<>" : mailfrom); ++ len = snprintf(mailcmd, sizeof mailcmd, MAILFMT, MAILARG, mailfrom); + if (len < 0) { + fprintf(stderr, "mailcmd snprintf failed\n"); + (void) _exit(ERROR_EXIT); + +From 6181605fafe6aaedc0c19a8bdc85a335403b42d8 Mon Sep 17 00:00:00 2001 +From: Tomas Mraz <tmraz@fedoraproject.org> +Date: Fri, 19 Jan 2024 11:19:32 +0100 +Subject: [PATCH] Inherit MAILFROM from the crond process environment + +This allows setting it in /etc/sysconfig/crond or in the systemd unit. +--- a/man/crontab.5 ++++ b/man/crontab.5 +@@ -98,7 +98,8 @@ This option is useful if you decide to use /bin/mail instead of + aliasing and UUCP usually does not read its mail. If + .I MAILFROM + is defined (and non-empty), it is used as the envelope sender address, +-otherwise, ``root'' is used. ++otherwise, ``root'' is used. This variable is also inherited from the ++crond process environment. + .PP + (Note: Both + .I MAILFROM +--- a/src/env.c ++++ b/src/env.c +@@ -138,6 +138,7 @@ int env_set_from_environ(char ***envpp) { + "LC_ALL", + "LANGUAGE", + "RANDOM_DELAY", ++ "MAILFROM", + NULL + }; + const char **name; |