commit: dc1afc0e320e959cbf212b4e5f1f0bfae87778f2
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 25 12:51:20 2017 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Jul 25 12:51:54 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc1afc0e
sys-process/fcron: Add support for /etc/conf.d/fcron (bug #622990)
Package-Manager: Portage-2.3.5, Repoman-2.3.2
...ron-3.3.0_beta.ebuild => fcron-3.2.1-r2.ebuild} | 13 ++-
....3.0_beta.ebuild => fcron-3.3.0_beta-r1.ebuild} | 4 +-
sys-process/fcron/files/fcron.confd | 7 ++
sys-process/fcron/files/fcron.init-r5 | 100 +++++++++++++++++++++
4 files changed, 115 insertions(+), 9 deletions(-)
diff --git a/sys-process/fcron/fcron-3.3.0_beta.ebuild
b/sys-process/fcron/fcron-3.2.1-r2.ebuild
similarity index 96%
copy from sys-process/fcron/fcron-3.3.0_beta.ebuild
copy to sys-process/fcron/fcron-3.2.1-r2.ebuild
index 0ec297cae21..604e9afb710 100644
--- a/sys-process/fcron/fcron-3.3.0_beta.ebuild
+++ b/sys-process/fcron/fcron-3.2.1-r2.ebuild
@@ -7,15 +7,12 @@ WANT_AUTOMAKE=none
inherit cron pam flag-o-matic user autotools versionator systemd
-MY_PV=${PV/_beta/}
-MY_P=${PN}-${MY_PV}
-
DESCRIPTION="A command scheduler with extended capabilities over cron and
anacron"
HOMEPAGE="http://fcron.free.fr/"
-SRC_URI="http://fcron.free.fr/archives/${MY_P}.src.tar.gz -> ${P}.tar.gz"
+SRC_URI="http://fcron.free.fr/archives/${P}.src.tar.gz"
LICENSE="GPL-2"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE="audit debug pam selinux l10n_fr +mta +system-crontab readline"
DEPEND="audit? ( sys-process/audit )
@@ -33,8 +30,6 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.2.1-configure-fix-audit-parameter-check.patch
)
-S="${WORKDIR}/${MY_P}"
-
pkg_setup() {
enewgroup fcron
enewuser fcron -1 -1 -1 fcron
@@ -166,9 +161,11 @@ src_install() {
EOF
newpamd "${T}"/fcrontab.pam fcrontab
- newinitd "${FILESDIR}"/fcron.init.4 fcron
+ newinitd "${FILESDIR}"/fcron.init-r5 fcron
systemd_newunit "${S}/script/fcron.init.systemd" fcron.service
+ newconfd "${FILESDIR}"/fcron.confd fcron
+
local DOCS=( MANIFEST VERSION "${WORKDIR}/crontab")
DOCS+=( doc/en/txt/{readme,thanks,faq,todo,relnotes,changes}.txt )
diff --git a/sys-process/fcron/fcron-3.3.0_beta.ebuild
b/sys-process/fcron/fcron-3.3.0_beta-r1.ebuild
similarity index 98%
rename from sys-process/fcron/fcron-3.3.0_beta.ebuild
rename to sys-process/fcron/fcron-3.3.0_beta-r1.ebuild
index 0ec297cae21..10f03c92f51 100644
--- a/sys-process/fcron/fcron-3.3.0_beta.ebuild
+++ b/sys-process/fcron/fcron-3.3.0_beta-r1.ebuild
@@ -166,9 +166,11 @@ src_install() {
EOF
newpamd "${T}"/fcrontab.pam fcrontab
- newinitd "${FILESDIR}"/fcron.init.4 fcron
+ newinitd "${FILESDIR}"/fcron.init-r5 fcron
systemd_newunit "${S}/script/fcron.init.systemd" fcron.service
+ newconfd "${FILESDIR}"/fcron.confd fcron
+
local DOCS=( MANIFEST VERSION "${WORKDIR}/crontab")
DOCS+=( doc/en/txt/{readme,thanks,faq,todo,relnotes,changes}.txt )
diff --git a/sys-process/fcron/files/fcron.confd
b/sys-process/fcron/files/fcron.confd
new file mode 100644
index 00000000000..ea907d8e80b
--- /dev/null
+++ b/sys-process/fcron/files/fcron.confd
@@ -0,0 +1,7 @@
+# /etc/conf.d/fcron
+
+# Options to fcron
+# See fcron(8) for more details
+# Notes:
+# * Do not specify another CONFIGFILE
+#FCRON_OPTS=""
diff --git a/sys-process/fcron/files/fcron.init-r5
b/sys-process/fcron/files/fcron.init-r5
new file mode 100644
index 00000000000..4021cb2fbb3
--- /dev/null
+++ b/sys-process/fcron/files/fcron.init-r5
@@ -0,0 +1,100 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+FCRON_INSTANCE="${SVCNAME##*.}"
+FCRON_OPTS=${FCRON_OPTS:-""}
+
+if [ -n "${FCRON_INSTANCE}" ] && [ "${SVCNAME}" != "fcron" ]; then
+ FCRON_CONFIGFILE="/etc/fcron/fcron.${FCRON_INSTANCE}.conf"
+else
+ FCRON_CONFIGFILE="/etc/fcron/fcron.conf"
+fi
+
+getconfig() {
+ local key="$1"
+ local value_default="$2"
+ local value=
+
+ if service_started; then
+ value="$(service_get_value "${key}")"
+ fi
+
+ if [ -z "${value}" ] && [ -r "${FCRON_CONFIGFILE}" ]; then
+ value="$(sed -n -e 's:^'"${key}"'[ \t]*=[ \t]*::p'
"${FCRON_CONFIGFILE}")"
+ fi
+
+ if [ -z "${value}" ]; then
+ # Value not explicitly set in the configfile or configfile does
not exist
+ # or is not readable
+ echo "${value_default}"
+ else
+ echo "${value}"
+ fi
+
+ return 0
+}
+
+depend() {
+ config "${FCRON_CONFIGFILE}"
+
+ use clock logger
+ need hostname
+
+ # provide the cron service if we are the main instance
+ [ "${SVCNAME}" = "fcron" ] && provide cron
+}
+
+
+command="/usr/libexec/fcron"
+command_args="${FCRON_OPTS} -c \"${FCRON_CONFIGFILE}\""
+start_stop_daemon_args=${FCRON_SSDARGS:-"--wait 1000"}
+pidfile="$(getconfig pidfile /run/fcron.pid)"
+fcrontabs="$(getconfig fcrontabs /var/spool/fcron)"
+fifofile="$(getconfig fifofile /run/fcron.fifo)"
+required_files="${FCRON_CONFIGFILE}"
+
+extra_started_commands="reload"
+
+reload() {
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+}
+
+start_pre() {
+ if [ "${SVCNAME}" != "fcron" ]; then
+ local _has_invalid_instance_cfg=0
+
+ if [ "${pidfile}" = "/run/fcron.pid" ]; then
+ eerror "You cannot use the same pidfile like the
default instance!"
+ eerror "Please adjust your 'pidfile' setting in
'${FCRON_CONFIGFILE}'."
+ _has_invalid_instance_cfg=1
+ fi
+
+ if [ "${fcrontabs}" = "/var/spool/fcron" ]; then
+ eerror "You cannot use the same fcrontabs location like
the default instance!"
+ eerror "Please adjust your 'fcrontabs' setting in
'${FCRON_CONFIGFILE}'."
+ _has_invalid_instance_cfg=1
+ fi
+
+ if [ "${fifofile}" = "/run/fcron.fifo" ]; then
+ eerror "You cannot use the same fifo file like the
default instance!"
+ eerror "Please adjust your 'fifofile' setting in
'${FCRON_CONFIGFILE}'."
+ _has_invalid_instance_cfg=1
+ fi
+
+ [ ${_has_invalid_instance_cfg} -ne 0 ] && return 1
+ fi
+
+ checkpath --file "${FCRON_CONFIGFILE}" --owner root:fcron --mode 0640
+
+ if [ ! -d "${fcrontabs}" ]; then
+ ebegin "Creating missing spooldir '${fcrontabs}'"
+ ${command} --newspooldir "${fcrontabs}"
+ eend $?
+ fi
+}
+
+start_post() {
+ service_set_value fcrontabs "${fcrontabs}"
+ service_set_value fifofile "${fifofile}"
+}