From c26549a063f4b768346dfd95c6ef63c9c858e9ab Mon Sep 17 00:00:00 2001
From: Diego Elio Pettenò <flameeyes@gentoo.org>
Date: Thu, 11 Mar 2010 13:17:25 +0000
Subject: Add a patch to fix fcrontab -u systab when using PAM. Thanks to
 Dmitry Karasik in bug #308799. Package-Manager: portage-2.2_rc67/cvs/Linux
 x86_64

---
 sys-process/fcron/ChangeLog                   |   9 +-
 sys-process/fcron/Manifest                    |  15 +-
 sys-process/fcron/fcron-3.0.5-r1.ebuild       | 274 ++++++++++++++++++++++++++
 sys-process/fcron/fcron-3.0.5.ebuild          | 271 -------------------------
 sys-process/fcron/files/fcron-3.0.5-pam.patch |  15 ++
 5 files changed, 310 insertions(+), 274 deletions(-)
 create mode 100644 sys-process/fcron/fcron-3.0.5-r1.ebuild
 delete mode 100644 sys-process/fcron/fcron-3.0.5.ebuild
 create mode 100644 sys-process/fcron/files/fcron-3.0.5-pam.patch

(limited to 'sys-process/fcron')

diff --git a/sys-process/fcron/ChangeLog b/sys-process/fcron/ChangeLog
index 88bd8d6de000..506adcb9928c 100644
--- a/sys-process/fcron/ChangeLog
+++ b/sys-process/fcron/ChangeLog
@@ -1,6 +1,13 @@
 # ChangeLog for sys-process/fcron
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-process/fcron/ChangeLog,v 1.70 2010/03/10 20:14:09 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-process/fcron/ChangeLog,v 1.71 2010/03/11 13:17:25 flameeyes Exp $
+
+*fcron-3.0.5-r1 (11 Mar 2010)
+
+  11 Mar 2010; Diego E. Pettenò <flameeyes@gentoo.org> -fcron-3.0.5.ebuild,
+  +fcron-3.0.5-r1.ebuild, +files/fcron-3.0.5-pam.patch:
+  Add a patch to fix fcrontab -u systab when using PAM. Thanks to Dmitry
+  Karasik in bug #308799.
 
   10 Mar 2010; Robin H. Johnson <robbat2@gentoo.org> metadata.xml:
   UTF8 not permitted in USE flag descriptions.
diff --git a/sys-process/fcron/Manifest b/sys-process/fcron/Manifest
index 55005a8b6aa4..b678a61907a3 100644
--- a/sys-process/fcron/Manifest
+++ b/sys-process/fcron/Manifest
@@ -1,6 +1,10 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 AUX check_system_crontabs.fcron-config-file.patch 1740 RMD160 05a8b1f3ae6a2217482765806dce1b24a4a51c29 SHA1 32125fbe6752fa839e2dc00e21e8ddaee5b26801 SHA256 40ed92d5f2ea1468b705d624e6ff756eddda212cb8216d26fbf63ec7d50a2b86
 AUX crontab 864 RMD160 f181a337c032df8711384bd54c58e594fd516313 SHA1 db6ce92b9109134d8c8dfb3e6f248dafea217c69 SHA256 ccb4bf3d5732f7f26fb9a7ae75e13e5e20603e8f1db8859cfa6ee4d4dcb9df45
 AUX fcron-3.0.4-docfix.patch 1446 RMD160 1c57256ccd7cb2cd6c6723050e347577123a1afb SHA1 8e96a9b00eeecfe7add5848618c0f21f20cce30f SHA256 24737725423a109860ac77bf34a59211914434225e2e1f7ed1db922595730a47
+AUX fcron-3.0.5-pam.patch 704 RMD160 1045f6e800aab8b32c8931230925561beec7467f SHA1 1b591cdef9f99da8f05385be9abe87448868d8af SHA256 69eb39f40e5a7eea4431fbd3150de01a86a410503da0e1ff60e28ce5a8deef54
 AUX fcron.init 1582 RMD160 e0fd0cadddac8b344ea84f70c3c6e645d9badce2 SHA1 fd5fddb75378af57c37fa57432f3c068521e4a68 SHA256 f5bc89e7204906790b0046bd30a865b7b04c4d21e7ef4154cbad3ae1213d6526
 AUX fcron.init.2 1562 RMD160 6434ae17c2636454a16c8fba1f2bae0933598692 SHA1 52baed45ddebe6b343fb28f187e667a055e40d44 SHA256 b8bd49ce367ed30e1f5d7f6eabfb8cbff14f1a7bc486f0816c53a64c2dc0ac6c
 AUX fcrontab 332 RMD160 062faddf0551bebbf9834b796f9957cf49dbc967 SHA1 063f77dd90a76170a793352530a35c60922283e4 SHA256 ab5c104248c51471d61e3312f52bf738d74ab3319b8c01cd0cc5c74458fb8fcc
@@ -8,6 +12,13 @@ DIST fcron-3.0.4.src.tar.gz 553609 RMD160 2bb8eb489251eaa1380b4e37b6526d20402913
 DIST fcron-3.0.5.src.tar.gz 551516 RMD160 7523bd7de39bb2aa96e61714ee98f389b1fb68b1 SHA1 73a1fe43305c6afaafd82086a17c03fa1ebcfac3 SHA256 f3360475a2d09598f24254e41d626b11be89aa8680933e6e35b7708edce90671
 EBUILD fcron-3.0.4-r1.ebuild 8833 RMD160 4e0d5b162d05c031fe7a33fe90be94b9d8938bd8 SHA1 255dbcdbc715d84b4196f557dc8211f27b48c934 SHA256 c02d90a080f53a30e3a14002406514e9f83d94201d7c770cdcce4447963663bc
 EBUILD fcron-3.0.4-r2.ebuild 8988 RMD160 33be5526cb595f9311007dc312709338a9431a6c SHA1 47b22e75ba0b08071ede0cec9a8c946896292269 SHA256 d013ac7e4c3174aace5070bec0b1f2dd38b67540785ec40331c64d198d3d915a
-EBUILD fcron-3.0.5.ebuild 9626 RMD160 1b5f62cc1a49e9568583aaa498b7c568ec6fcc78 SHA1 d0767fd412d1922f85c9695b4bb70805d2806de5 SHA256 9910755b3c16bb088058181a523afd8548de272a4d128b5b97eff1f9ba1ef007
-MISC ChangeLog 17967 RMD160 9bcd276a4a56cb797102a4f3f19656388cd33616 SHA1 8cbdf8bd9f55b3a745ebefab995d095276246b1c SHA256 92a71d95c8aacb596a480efd25f6ec79f13da89388bdc57362a7dfe8e5b19b25
+EBUILD fcron-3.0.5-r1.ebuild 9682 RMD160 8ce236b01bdfc431a1095609f0774b2bc70b914c SHA1 4beb8f64bec46ea9b1936e461d777e224bfdc830 SHA256 6a3eaa6051d8a12ccc13153914476d9fd76c226969fe48a264f87ea305c093a7
+MISC ChangeLog 18233 RMD160 e2e05e0c83337598ce5f36162beb1ac306a3083e SHA1 ce42eea8d60da901b5f683811b85541a1e2a9d6f SHA256 e6d098428e3af722d2d2965ce704db598a9dac791c30e6b8c76e1b97d596657f
 MISC metadata.xml 1339 RMD160 52ce6f7f857513f37c32a193082b3ab5c416decc SHA1 ae84fe903dfb1ef235e088ecf59e26bd0d3fc42e SHA256 3b6ed143cd47d298191633e6c0ec05ff761c5f03b0b92537b67b75f9172bcaaf
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.14 (GNU/Linux)
+
+iEYEARECAAYFAkuY7WQACgkQAiZjviIA2Xhm4QCdEvnb2J4V7LEZ9B0f7IxaSgZe
+myEAn0Mz0mb+mgmKMG2rKV7+qu5JPKV4
+=DvYm
+-----END PGP SIGNATURE-----
diff --git a/sys-process/fcron/fcron-3.0.5-r1.ebuild b/sys-process/fcron/fcron-3.0.5-r1.ebuild
new file mode 100644
index 000000000000..3b005dab3710
--- /dev/null
+++ b/sys-process/fcron/fcron-3.0.5-r1.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-process/fcron/fcron-3.0.5-r1.ebuild,v 1.1 2010/03/11 13:17:25 flameeyes Exp $
+
+inherit cron pam eutils
+
+MY_P=${P/_/-}
+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"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~hppa ~ia64 ~mips ~ppc ~sparc ~x86 ~x86-fbsd"
+IUSE="debug pam selinux linguas_fr"
+
+DEPEND="selinux? ( sys-libs/libselinux )
+	pam? ( virtual/pam )"
+
+# see bug 282214 for the reason to depend on bash
+RDEPEND="${DEPEND}
+	app-shells/bash
+	app-editors/gentoo-editor
+	pam? ( >=sys-auth/pambase-20100310 )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+	enewgroup fcron
+	enewuser fcron -1 -1 -1 fcron
+	rootuser=$(egetent passwd 0 | cut -d ':' -f 1)
+	rootgroup=$(egetent group 0 | cut -d ':' -f 1)
+}
+
+src_unpack() {
+	unpack ${A}
+	cd "${S}"
+
+	# respect LDFLAGS
+	sed -i "s:\(@LIBS@\):\$(LDFLAGS) \1:" Makefile.in || die "sed failed"
+
+	# patch check_system_crontabs to support "-c /path/to/fcron.conf"
+	epatch "${FILESDIR}"/check_system_crontabs.fcron-config-file.patch
+
+	# bug #308799
+	epatch "${FILESDIR}"/${P}-pam.patch
+
+	# the script contains bashism, so until upstream fixes it we're
+	# going to simply require bash for this to work, sorry!
+	# see also bug #282214
+	sed -i -e '1s:/bin/sh:/bin/bash:' script/check_system_crontabs \
+		|| die "Unable to fix check_system_crontabs shebang."
+}
+
+src_compile() {
+	local myconf
+
+	# Don't try to pass --with-debug as it'll play with cflags as
+	# well, and run foreground which is a _very_ nasty idea for
+	# Gentoo.
+	use debug && append-flags -DDEBUG
+
+	[[ -n "${rootuser}" ]] && myconf="${myconf} --with-rootname=${rootuser}"
+	[[ -n "${rootgroup}" ]] && myconf="${myconf} --with-rootgroup=${rootgroup}"
+
+	econf \
+		--with-cflags="${CFLAGS}" \
+		$(use_with pam) \
+		$(use_with selinux) \
+		--sysconfdir=/etc/fcron \
+		--with-username=fcron \
+		--with-groupname=fcron \
+		--with-piddir=/var/run \
+		--with-spooldir=/var/spool/fcron \
+		--with-fifodir=/var/run \
+		--with-fcrondyn=yes \
+		--disable-checks \
+		--with-editor=/usr/libexec/gentoo-editor \
+		--with-sendmail=/usr/sbin/sendmail \
+		--with-shell=/bin/sh \
+		--without-db2man --without-dsssl-dir \
+		${myconf} \
+		|| die "configure failed"
+
+	emake || die "make failed"
+
+	# bug #216460
+	sed -i \
+		-e 's:/usr/local/etc/fcron:/etc/fcron/fcron:g' \
+		-e 's:/usr/local/etc:/etc:g' \
+		-e 's:/usr/local/:/usr/:g' \
+		doc/*/*/*.{txt,1,5,8,html} \
+		|| die "unable to fix documentation references"
+}
+
+src_install() {
+	# create directories that don't have special permissions first so
+	# that we can play with the permissions later
+	dodir /usr/bin /etc /var/spool
+
+	diropts -m6770 -o fcron -g fcron
+	keepdir /var/spool/fcron
+
+	# install fcron tools
+	insinto /usr/bin
+	dosbin fcron || die
+
+	# fcronsighup needs to be suid root, because it sends a HUP
+	# to the running fcron daemon
+	insopts -m6755 -o ${rootuser:-root} -g fcron
+	doins fcronsighup || die
+	insopts -m6755 -o fcron -g fcron
+	doins fcrondyn fcrontab || die
+
+	# /etc stuff
+	diropts -m0750 -o ${rootuser:-root} -g fcron
+	dodir /etc/fcron
+	insinto /etc/fcron
+	insopts -m0640 -o ${rootuser:-root} -g fcron
+	doins files/fcron.{allow,deny,conf} || die
+
+	diropts -m0755
+	insopts -m0644
+
+	# install /etc/crontab and /etc/fcrontab
+	insopts -m0640 -o ${rootuser:-root} -g ${rootgroup:-root}
+	doins "${FILESDIR}"/crontab "${FILESDIR}"/fcrontab || die
+
+	# install PAM files
+	pamd_mimic system-services fcron auth account session
+	cat - > "${T}"/fcrontab.pam <<EOF
+# Don't ask for the user's password; fcrontab will only allow to
+# change user if running as root.
+auth		sufficient		pam_permit.so
+
+# Still use the system-auth stack for account and session as the
+# sysadmin might have set up stuff properly, and also avoids
+# sidestepping limits (since fcrontab will run $EDITOR).
+account		include			system-auth
+session		include			system-auth
+EOF
+	newpamd "${T}"/fcrontab.pam fcrontab
+
+	# install init script
+	newinitd "${FILESDIR}"/fcron.init.2 fcron || die
+
+	# install the very handy check_system_crontabs script
+	dosbin script/check_system_crontabs || die
+
+	# doc stuff
+	dodoc MANIFEST VERSION "${FILESDIR}"/crontab \
+		doc/en/txt/{readme,thanks,faq,todo,relnotes,changes}.txt \
+		|| die
+	newdoc files/fcron.conf fcron.conf.sample || die
+	dohtml doc/en/HTML/*.html || die
+	doman doc/en/man/*.{1,5,8} || die
+
+	# localized docs
+	for lang in fr; do
+		use linguas_${lang} || continue
+
+		doman -i18n=${lang} doc/${lang}/man/*.{1,5,8} || die
+		docinto html/${lang}
+		dohtml doc/${lang}/HTML/*.html || die
+	done
+}
+
+pkg_postinst() {
+	elog
+	elog "fcron has some important differences compared to vixie-cron:"
+	elog
+	elog "1. fcron stores the crontabs in ${ROOT}var/spool/fcron"
+	elog "   instead of ${ROOT}var/spool/cron/crontabs"
+	elog
+	elog "2. fcron uses a special binary file format for storing the"
+	elog "   crontabs in ${ROOT}var/spool/fcron/USERNAME,"
+	elog "   but the original plain text version is saved as"
+	elog "   ${ROOT}var/spool/fcron/USERNAME.orig for your"
+	elog "   reference (and for being edited with fcrontab)."
+	elog
+	elog "3. fcron does not feature a system crontab in exactly the"
+	elog "   same way as vixie-cron does. This version of fcron"
+	elog "   features a crontab for a pseudo-user 'systab' for use"
+	elog "   as the system crontab. Running a command like"
+	elog
+	elog "      fcrontab -u systab ${ROOT}etc/crontab"
+	elog
+	elog "   will write ${ROOT}etc/crontab to the fcron crontabs directory as"
+	elog
+	elog "      ${ROOT}var/spool/fcron/systab"
+	elog
+	elog "   Please note that changes to ${ROOT}etc/crontab will not become"
+	elog "   active automatically! fcron also does not use the directory"
+	elog "   ${ROOT}etc/cron.d by default like vixie-cron does."
+	elog "   Fortunately, it's possible to emulate vixie-cron's behavior"
+	elog "   with regards to ${ROOT}etc/crontab and ${ROOT}etc/cron.d by using a"
+	elog "   little helper script called 'check_system_crontabs'."
+	elog "   The file ${ROOT}etc/fcrontab (not ${ROOT}etc/crontab!) has been set up"
+	elog "   to run the script once a while to check whether"
+	elog "   ${ROOT}etc/fcrontab, ${ROOT}etc/crontab or files in ${ROOT}etc/cron.d/ have"
+	elog "   changed since the last generation of the systab and"
+	elog "   regenerate it from those three locations as necessary."
+	elog "   You should now run 'check_system_crontabs' once to properly"
+	elog "   generate an initial systab:"
+	elog
+	elog "      check_system_crontabs -v -i -f"
+	elog
+	elog "   The file ${ROOT}etc/fcrontab should only be used to run that"
+	elog "   script in order to ensure independence from the standard"
+	elog "   system crontab file ${ROOT}etc/crontab."
+	elog "   You may of course adjust the schedule for the script"
+	elog "   'check_system_crontabs' or any other setting in"
+	elog "   ${ROOT}etc/fcrontab as you desire."
+	elog
+	elog "If you do NOT want to use 'check_system_crontabs', you"
+	elog "might still want to activate the use of the well known"
+	elog "directories ${ROOT}etc/cron.{hourly|daily|weekly|monthly} by"
+	elog "just generating a systab once from ${ROOT}etc/crontab:"
+	elog
+	elog "   fcrontab -u systab ${ROOT}etc/crontab"
+	elog
+	elog "Happy fcron'ing!"
+	elog
+
+	ewarn
+	ewarn "Fixing permissions and ownership of ${ROOT}usr/bin/fcron{tab,dyn,sighup}"
+	chown fcron:fcron "${ROOT}"usr/bin/fcron{tab,dyn} >&/dev/null
+	chown ${rootuser:-root}:fcron "${ROOT}"usr/bin/fcronsighup >&/dev/null
+	chmod 6755 "${ROOT}"usr/bin/fcron{tab,dyn,sighup} >&/dev/null
+	ewarn "Fixing permissions and ownership of ${ROOT}etc/{fcron,fcrontab,crontab}"
+	chown -R ${rootuser:-root}:fcron "${ROOT}"etc/{fcron,fcrontab,crontab} >&/dev/null
+	chmod -R g+rX,o= "${ROOT}"etc/fcron "${ROOT}"etc/{fcron,fcrontab,crontab} >&/dev/null
+	ewarn
+
+	ewarn
+	ewarn "WARNING: fcron now uses a dedicated user and group"
+	ewarn "'fcron' for the suid/sgid programs/files instead of"
+	ewarn "the user and group 'cron' that were previously used."
+	ewarn
+	ewarn "fcron usage can now only be restricted by adding users"
+	ewarn "to the following files instead of to the group 'cron':"
+	ewarn
+	ewarn "   ${ROOT}etc/fcron/fcron.allow"
+	ewarn "   ${ROOT}etc/fcron/fcron.deny"
+	ewarn
+
+	if ls -1 "${ROOT}"var/spool/cron/fcrontabs/* >&/dev/null; then
+		ewarn
+		ewarn "WARNING: fcron now uses a dedicated fcron-specific"
+		ewarn "spooldir ${ROOT}var/spool/fcron instead of the commonly"
+		ewarn "used ${ROOT}var/spool/cron for several reasons."
+		ewarn
+		ewarn "Copying over existing crontabs from ${ROOT}var/spool/cron/fcrontabs"
+		cp "${ROOT}"var/spool/cron/fcrontabs/* "${ROOT}"var/spool/fcron/ >&/dev/null \
+			|| die "failed to migrate existing crontabs"
+		ewarn "You should now remove ${ROOT}var/spool/cron/fcrontabs!"
+		ewarn
+		ewarn "Fixing permissions and ownership of ${ROOT}var/spool/fcron"
+		chown root:root "${ROOT}"var/spool/fcron/* >&/dev/null
+		chmod 0600 "${ROOT}"var/spool/fcron/* >&/dev/null
+		chown fcron:fcron "${ROOT}"var/spool/fcron/*.orig >&/dev/null
+		chmod 0640 "${ROOT}"var/spool/fcron/*.orig >&/dev/null
+		ewarn
+		ewarn "*** YOU SHOULD IMMEDIATELY UPDATE THE"
+		ewarn "*** fcrontabs ENTRY IN ${ROOT}etc/fcron/fcron.conf"
+		ewarn "*** AND RESTART YOUR FCRON DAEMON!"
+	fi
+
+	elog ""
+	elog "Since version 3.0.5 the fcron init script will no longer wait for LDAP, MySQL"
+	elog "or PostgreSQL before starting. If you need any of these for authentication or"
+	elog "for jobs that are executed by fcron, please create a /etc/conf.d/fcron file to"
+	elog "set the rc_need variable to the list of services you should be waiting for."
+	elog ""
+}
diff --git a/sys-process/fcron/fcron-3.0.5.ebuild b/sys-process/fcron/fcron-3.0.5.ebuild
deleted file mode 100644
index f80e1bdd4b9b..000000000000
--- a/sys-process/fcron/fcron-3.0.5.ebuild
+++ /dev/null
@@ -1,271 +0,0 @@
-# Copyright 1999-2010 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-process/fcron/fcron-3.0.5.ebuild,v 1.1 2010/03/10 01:38:20 flameeyes Exp $
-
-inherit cron pam eutils
-
-MY_P=${P/_/-}
-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"
-
-LICENSE="GPL-2"
-KEYWORDS="~amd64 ~hppa ~ia64 ~mips ~ppc ~sparc ~x86 ~x86-fbsd"
-IUSE="debug pam selinux linguas_fr"
-
-DEPEND="selinux? ( sys-libs/libselinux )
-	pam? ( virtual/pam )"
-
-# see bug 282214 for the reason to depend on bash
-RDEPEND="${DEPEND}
-	app-shells/bash
-	app-editors/gentoo-editor
-	pam? ( >=sys-auth/pambase-20100310 )"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
-	enewgroup fcron
-	enewuser fcron -1 -1 -1 fcron
-	rootuser=$(egetent passwd 0 | cut -d ':' -f 1)
-	rootgroup=$(egetent group 0 | cut -d ':' -f 1)
-}
-
-src_unpack() {
-	unpack ${A}
-	cd "${S}"
-
-	# respect LDFLAGS
-	sed -i "s:\(@LIBS@\):\$(LDFLAGS) \1:" Makefile.in || die "sed failed"
-
-	# patch check_system_crontabs to support "-c /path/to/fcron.conf"
-	epatch "${FILESDIR}"/check_system_crontabs.fcron-config-file.patch
-
-	# the script contains bashism, so until upstream fixes it we're
-	# going to simply require bash for this to work, sorry!
-	# see also bug #282214
-	sed -i -e '1s:/bin/sh:/bin/bash:' script/check_system_crontabs \
-		|| die "Unable to fix check_system_crontabs shebang."
-}
-
-src_compile() {
-	local myconf
-
-	# Don't try to pass --with-debug as it'll play with cflags as
-	# well, and run foreground which is a _very_ nasty idea for
-	# Gentoo.
-	use debug && append-flags -DDEBUG
-
-	[[ -n "${rootuser}" ]] && myconf="${myconf} --with-rootname=${rootuser}"
-	[[ -n "${rootgroup}" ]] && myconf="${myconf} --with-rootgroup=${rootgroup}"
-
-	econf \
-		--with-cflags="${CFLAGS}" \
-		$(use_with pam) \
-		$(use_with selinux) \
-		--sysconfdir=/etc/fcron \
-		--with-username=fcron \
-		--with-groupname=fcron \
-		--with-piddir=/var/run \
-		--with-spooldir=/var/spool/fcron \
-		--with-fifodir=/var/run \
-		--with-fcrondyn=yes \
-		--disable-checks \
-		--with-editor=/usr/libexec/gentoo-editor \
-		--with-sendmail=/usr/sbin/sendmail \
-		--with-shell=/bin/sh \
-		--without-db2man --without-dsssl-dir \
-		${myconf} \
-		|| die "configure failed"
-
-	emake || die "make failed"
-
-	# bug #216460
-	sed -i \
-		-e 's:/usr/local/etc/fcron:/etc/fcron/fcron:g' \
-		-e 's:/usr/local/etc:/etc:g' \
-		-e 's:/usr/local/:/usr/:g' \
-		doc/*/*/*.{txt,1,5,8,html} \
-		|| die "unable to fix documentation references"
-}
-
-src_install() {
-	# create directories that don't have special permissions first so
-	# that we can play with the permissions later
-	dodir /usr/bin /etc /var/spool
-
-	diropts -m6770 -o fcron -g fcron
-	keepdir /var/spool/fcron
-
-	# install fcron tools
-	insinto /usr/bin
-	dosbin fcron || die
-
-	# fcronsighup needs to be suid root, because it sends a HUP
-	# to the running fcron daemon
-	insopts -m6755 -o ${rootuser:-root} -g fcron
-	doins fcronsighup || die
-	insopts -m6755 -o fcron -g fcron
-	doins fcrondyn fcrontab || die
-
-	# /etc stuff
-	diropts -m0750 -o ${rootuser:-root} -g fcron
-	dodir /etc/fcron
-	insinto /etc/fcron
-	insopts -m0640 -o ${rootuser:-root} -g fcron
-	doins files/fcron.{allow,deny,conf} || die
-
-	diropts -m0755
-	insopts -m0644
-
-	# install /etc/crontab and /etc/fcrontab
-	insopts -m0640 -o ${rootuser:-root} -g ${rootgroup:-root}
-	doins "${FILESDIR}"/crontab "${FILESDIR}"/fcrontab || die
-
-	# install PAM files
-	pamd_mimic system-services fcron auth account session
-	cat - > "${T}"/fcrontab.pam <<EOF
-# Don't ask for the user's password; fcrontab will only allow to
-# change user if running as root.
-auth		sufficient		pam_permit.so
-
-# Still use the system-auth stack for account and session as the
-# sysadmin might have set up stuff properly, and also avoids
-# sidestepping limits (since fcrontab will run $EDITOR).
-account		include			system-auth
-session		include			system-auth
-EOF
-	newpamd "${T}"/fcrontab.pam fcrontab
-
-	# install init script
-	newinitd "${FILESDIR}"/fcron.init.2 fcron || die
-
-	# install the very handy check_system_crontabs script
-	dosbin script/check_system_crontabs || die
-
-	# doc stuff
-	dodoc MANIFEST VERSION "${FILESDIR}"/crontab \
-		doc/en/txt/{readme,thanks,faq,todo,relnotes,changes}.txt \
-		|| die
-	newdoc files/fcron.conf fcron.conf.sample || die
-	dohtml doc/en/HTML/*.html || die
-	doman doc/en/man/*.{1,5,8} || die
-
-	# localized docs
-	for lang in fr; do
-		use linguas_${lang} || continue
-
-		doman -i18n=${lang} doc/${lang}/man/*.{1,5,8} || die
-		docinto html/${lang}
-		dohtml doc/${lang}/HTML/*.html || die
-	done
-}
-
-pkg_postinst() {
-	elog
-	elog "fcron has some important differences compared to vixie-cron:"
-	elog
-	elog "1. fcron stores the crontabs in ${ROOT}var/spool/fcron"
-	elog "   instead of ${ROOT}var/spool/cron/crontabs"
-	elog
-	elog "2. fcron uses a special binary file format for storing the"
-	elog "   crontabs in ${ROOT}var/spool/fcron/USERNAME,"
-	elog "   but the original plain text version is saved as"
-	elog "   ${ROOT}var/spool/fcron/USERNAME.orig for your"
-	elog "   reference (and for being edited with fcrontab)."
-	elog
-	elog "3. fcron does not feature a system crontab in exactly the"
-	elog "   same way as vixie-cron does. This version of fcron"
-	elog "   features a crontab for a pseudo-user 'systab' for use"
-	elog "   as the system crontab. Running a command like"
-	elog
-	elog "      fcrontab -u systab ${ROOT}etc/crontab"
-	elog
-	elog "   will write ${ROOT}etc/crontab to the fcron crontabs directory as"
-	elog
-	elog "      ${ROOT}var/spool/fcron/systab"
-	elog
-	elog "   Please note that changes to ${ROOT}etc/crontab will not become"
-	elog "   active automatically! fcron also does not use the directory"
-	elog "   ${ROOT}etc/cron.d by default like vixie-cron does."
-	elog "   Fortunately, it's possible to emulate vixie-cron's behavior"
-	elog "   with regards to ${ROOT}etc/crontab and ${ROOT}etc/cron.d by using a"
-	elog "   little helper script called 'check_system_crontabs'."
-	elog "   The file ${ROOT}etc/fcrontab (not ${ROOT}etc/crontab!) has been set up"
-	elog "   to run the script once a while to check whether"
-	elog "   ${ROOT}etc/fcrontab, ${ROOT}etc/crontab or files in ${ROOT}etc/cron.d/ have"
-	elog "   changed since the last generation of the systab and"
-	elog "   regenerate it from those three locations as necessary."
-	elog "   You should now run 'check_system_crontabs' once to properly"
-	elog "   generate an initial systab:"
-	elog
-	elog "      check_system_crontabs -v -i -f"
-	elog
-	elog "   The file ${ROOT}etc/fcrontab should only be used to run that"
-	elog "   script in order to ensure independence from the standard"
-	elog "   system crontab file ${ROOT}etc/crontab."
-	elog "   You may of course adjust the schedule for the script"
-	elog "   'check_system_crontabs' or any other setting in"
-	elog "   ${ROOT}etc/fcrontab as you desire."
-	elog
-	elog "If you do NOT want to use 'check_system_crontabs', you"
-	elog "might still want to activate the use of the well known"
-	elog "directories ${ROOT}etc/cron.{hourly|daily|weekly|monthly} by"
-	elog "just generating a systab once from ${ROOT}etc/crontab:"
-	elog
-	elog "   fcrontab -u systab ${ROOT}etc/crontab"
-	elog
-	elog "Happy fcron'ing!"
-	elog
-
-	ewarn
-	ewarn "Fixing permissions and ownership of ${ROOT}usr/bin/fcron{tab,dyn,sighup}"
-	chown fcron:fcron "${ROOT}"usr/bin/fcron{tab,dyn} >&/dev/null
-	chown ${rootuser:-root}:fcron "${ROOT}"usr/bin/fcronsighup >&/dev/null
-	chmod 6755 "${ROOT}"usr/bin/fcron{tab,dyn,sighup} >&/dev/null
-	ewarn "Fixing permissions and ownership of ${ROOT}etc/{fcron,fcrontab,crontab}"
-	chown -R ${rootuser:-root}:fcron "${ROOT}"etc/{fcron,fcrontab,crontab} >&/dev/null
-	chmod -R g+rX,o= "${ROOT}"etc/fcron "${ROOT}"etc/{fcron,fcrontab,crontab} >&/dev/null
-	ewarn
-
-	ewarn
-	ewarn "WARNING: fcron now uses a dedicated user and group"
-	ewarn "'fcron' for the suid/sgid programs/files instead of"
-	ewarn "the user and group 'cron' that were previously used."
-	ewarn
-	ewarn "fcron usage can now only be restricted by adding users"
-	ewarn "to the following files instead of to the group 'cron':"
-	ewarn
-	ewarn "   ${ROOT}etc/fcron/fcron.allow"
-	ewarn "   ${ROOT}etc/fcron/fcron.deny"
-	ewarn
-
-	if ls -1 "${ROOT}"var/spool/cron/fcrontabs/* >&/dev/null; then
-		ewarn
-		ewarn "WARNING: fcron now uses a dedicated fcron-specific"
-		ewarn "spooldir ${ROOT}var/spool/fcron instead of the commonly"
-		ewarn "used ${ROOT}var/spool/cron for several reasons."
-		ewarn
-		ewarn "Copying over existing crontabs from ${ROOT}var/spool/cron/fcrontabs"
-		cp "${ROOT}"var/spool/cron/fcrontabs/* "${ROOT}"var/spool/fcron/ >&/dev/null \
-			|| die "failed to migrate existing crontabs"
-		ewarn "You should now remove ${ROOT}var/spool/cron/fcrontabs!"
-		ewarn
-		ewarn "Fixing permissions and ownership of ${ROOT}var/spool/fcron"
-		chown root:root "${ROOT}"var/spool/fcron/* >&/dev/null
-		chmod 0600 "${ROOT}"var/spool/fcron/* >&/dev/null
-		chown fcron:fcron "${ROOT}"var/spool/fcron/*.orig >&/dev/null
-		chmod 0640 "${ROOT}"var/spool/fcron/*.orig >&/dev/null
-		ewarn
-		ewarn "*** YOU SHOULD IMMEDIATELY UPDATE THE"
-		ewarn "*** fcrontabs ENTRY IN ${ROOT}etc/fcron/fcron.conf"
-		ewarn "*** AND RESTART YOUR FCRON DAEMON!"
-	fi
-
-	elog ""
-	elog "Since version 3.0.5 the fcron init script will no longer wait for LDAP, MySQL"
-	elog "or PostgreSQL before starting. If you need any of these for authentication or"
-	elog "for jobs that are executed by fcron, please create a /etc/conf.d/fcron file to"
-	elog "set the rc_need variable to the list of services you should be waiting for."
-	elog ""
-}
diff --git a/sys-process/fcron/files/fcron-3.0.5-pam.patch b/sys-process/fcron/files/fcron-3.0.5-pam.patch
new file mode 100644
index 000000000000..25ccbb5bb8f3
--- /dev/null
+++ b/sys-process/fcron/files/fcron-3.0.5-pam.patch
@@ -0,0 +1,15 @@
+Index: fcron-3.0.5/fcrontab.c
+===================================================================
+--- fcron-3.0.5.orig/fcrontab.c
++++ fcron-3.0.5/fcrontab.c
+@@ -1038,8 +1038,8 @@ main(int argc, char **argv)
+     /* Open PAM session for the user and obtain any security
+        credentials we might need */
+ 
+-    debug("username: %s", user);
+-    retcode = pam_start("fcrontab", user, &apamconv, &pamh);
++    debug("username: %s runas: %s", user, runas);
++    retcode = pam_start("fcrontab", runas, &apamconv, &pamh);
+     if (retcode != PAM_SUCCESS) die_pame(pamh, retcode, "Could not start PAM");
+     retcode = pam_authenticate(pamh, 0);    /* is user really user? */
+     if (retcode != PAM_SUCCESS)
-- 
cgit v1.2.3-65-gdbad