View Raw Ebuild
# Copyright 2014-2024 Martin V\"ath
# Distributed under the terms of the GNU General Public License v2
EAPI=8
RESTRICT="mirror"
inherit readme.gentoo-r1 systemd
DESCRIPTION="script to schedule jobs in a multiuser multitasking environment"
HOMEPAGE="https://github.com/vaeth/schedule/"
SRC_URI="https://github.com/vaeth/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="split-usr"
# These should really depend on USE-flags but must not by policy.
# Waiting for https://bugs.gentoo.org/show_bug.cgi?id=424283
OPTIONAL_RDEPEND="|| ( >=dev-lang/perl-5.14 virtual/perl-Term-ANSIColor )
dev-perl/Crypt-Rijndael"
IDEPEND="acct-group/schedule
acct-user/schedule"
RDEPEND=">=dev-lang/perl-5.12
!<sys-apps/openrc-0.13
${IDEPEND}
${OPTIONAL_RDEPEND}"
# || ( >=dev-lang/perl-5.10.1 >=virtual/perl-version-0.77 )
# || ( >=dev-lang/perl-5.1 virtual/perl-File-Path )
# || ( >=dev-lang/perl-5.9.4 virtual/perl-File-Spec-3.0 )
# || ( >=dev-lang/perl-5.6.1 >=virtual/perl-Getopt-Long-2.24 )
# || ( >=dev-lang/perl-5.6.0 >=virtual/perl-IO-1.190.0 )
# || ( >=dev-lang/perl-5.9.4 virtual/perl-Digest-SHA) # for encryption
DISABLE_AUTOFORMATTING="true"
DOC_CONTENTS="It is recommended to put a lengthy passphrase into the first line
of /etc/schedule.password and to change permission so that only users allowed
to access the system schedule-server can read it.
You might want to adapt /etc/conf.d/schedule to your needs.
If you use systemd, you might want to override schedule.service locally in
/etc/systemd/system to adapt it to your needs."
src_prepare() {
use prefix || sed -i \
-e '1s"^#!/usr/bin/env sh$"#!'"${EPREFIX}$(usex split-usr '' /usr)/bin/sh"'"' \
-e '1s"^#!/usr/bin/env perl$"#!'"${EPREFIX}/usr/bin/perl"'"' \
-e 's"^/usr/share/schedule"${EPREFIX}/usr/share/${PN}"' \
-e '/^use FindBin;/,/^\}$/d' \
-- bin/* || die
default
}
src_install() {
dobin bin/*
dodoc README.md ChangeLog
insinto /usr
doins -r share
doinitd openrc/init.d/*
doconfd openrc/conf.d/*
systemd_dounit systemd/system/*
doenvd env.d/*
insinto /usr/share/zsh/site-functions
doins zsh/*
insinto /etc
(
umask 027
: >"${ED}/etc/schedule.password"
)
readme.gentoo_create_doc
}
generate_password() (
umask 027
for i in {1..50}
do printf "%s" "${RANDOM}"
done >"${EPREFIX}/etc/schedule.password"
)
pkg_postinst() {
if ! test -s "${EPREFIX}/etc/schedule.password"
then if generate_password
then ewarn "You should fill ${EPREFIX}/etc/schedule.password with a random password:"
ewarn "the current random value is not necessarily cryptographically strong."
chown 'schedule:schedule' -- "${EPREFIX}/etc/schedule.password" || \
ewarn "failed to set permissions for ${EPREFIX}/etc/schedule.password"
else ewarn "failed to generate ${EPREFIX}/etc/schedule.password"
fi
fi
readme.gentoo_print_elog
}