# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit toolchain-funcs flag-o-matic DESCRIPTION="A UNIX init scheme with service supervision" HOMEPAGE="http://smarden.org/runit/" SRC_URI="http://smarden.org/runit/${P}.tar.gz" LICENSE="BSD" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86" IUSE="static" RDEPEND="sys-apps/openrc" S=${WORKDIR}/admin/${P}/src src_prepare() { default # we either build everything or nothing static sed -i -e 's:-static: :' Makefile # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726008 [[ ${COMPILER} == "diet" ]] && use ppc && filter-flags "-mpowerpc-gpopt" } src_configure() { use static && append-ldflags -static echo "$(tc-getCC) ${CFLAGS}" > conf-cc echo "$(tc-getCC) ${LDFLAGS}" > conf-ld } src_install() { into / dobin $(<../package/commands) dodir /sbin mv "${ED}"/bin/{runit-init,runit,utmpset} "${ED}"/sbin/ || die "dosbin" dosym ../etc/runit/2 /sbin/runsvdir-start DOCS=( ../package/{CHANGES,README,THANKS,TODO} ) HTML_DOCS=( ../doc/*.html ) einstalldocs doman ../man/*.[18] dodir /etc/runit exeinto /etc/runit doexe "${FILESDIR}"/ctrlaltdel newexe "${FILESDIR}"/1-${PV} 1 newexe "${FILESDIR}"/2-${PV} 2 newexe "${FILESDIR}"/3-${PV} 3 dodir /etc/sv for tty in tty1 tty2 tty3 tty4 tty5 tty6; do exeinto /etc/sv/getty-$tty/ newexe "${FILESDIR}"/finish.getty finish newexe "${FILESDIR}"/run.getty-${PV} run for script in finish run; do sed -i -e "s:TTY:${tty}:g" "${ED}"/etc/sv/getty-$tty/$script done done # make sv command work newenvd - 20runit <<- EOF #/etc/env.d/20runit SVDIR="/etc/service/" EOF } default_config() { local sv="${EROOT}"etc/sv local service="${EROOT}"etc/service mkdir -p "${service}" || die for x in tty1 tty2 tty3 tty4 tty5 tty6; do ln -sf "${sv}"/getty-$x "${service}"/getty-$x || die done einfo "The links to services runit will supervise are installed" einfo "in $service." einfo "If you need multiple runlevels, please see the documentation" einfo "for how to set them up." einfo } migrate_from_211() { # Create /etc/service and /var/service if requested if [ -e "${T}"/make_var_service ]; then ln -sf "${EROOT}"etc/runit/runsvdir/current "${EROOT}"etc/service || die ln -sf "${EROOT}"etc/runit/runsvdir/current "${EROOT}"var/service || die fi if [ -d "${T}"/runsvdir ]; then cp -a "${T}"/runsvdir "${EROOT}"etc/runit || die fi return 0 } pkg_preinst() { if has_version '