158 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
 | 
						|
# Distributed under the terms of the GNU General Public License v2
 | 
						|
#
 | 
						|
# Based in part upon 'openrc-0.20.4.ebuild' from Gentoo, which is:
 | 
						|
#     Copyright 1999-2015 Gentoo Foundation
 | 
						|
#     Distributed under the terms of the GNU General Public License v2
 | 
						|
 | 
						|
require github
 | 
						|
 | 
						|
SUMMARY="A dependency-based init system that works with the system-provided init program"
 | 
						|
SLOT="0"
 | 
						|
LICENCES="BSD-2"
 | 
						|
 | 
						|
MYOPTIONS="
 | 
						|
    ( providers:
 | 
						|
        runit
 | 
						|
        sinit
 | 
						|
        sysvinit
 | 
						|
    ) [[
 | 
						|
        *description = [ provider for the init daemon ]
 | 
						|
    ]]
 | 
						|
    ncurses
 | 
						|
    newnet [[ description = [
 | 
						|
            Enable the new network stack (experimental)
 | 
						|
        ] ]]
 | 
						|
    pam
 | 
						|
    tools [[ description = [ Build optional tools ]  ]]
 | 
						|
"
 | 
						|
 | 
						|
PLATFORMS="~amd64 ~x86"
 | 
						|
 | 
						|
DEPENDENCIES="
 | 
						|
    build+run:
 | 
						|
        ncurses? ( sys-libs/ncurses )
 | 
						|
        pam? ( sys-libs/pam )
 | 
						|
    run:
 | 
						|
        providers:runit? ( sys-apps/runit )
 | 
						|
        providers:sinit? ( sys-apps/sinit )
 | 
						|
        providers:sysvinit? ( sys-apps/sysvinit )
 | 
						|
    recommendation:
 | 
						|
        net-misc/netifrc [[ description = [
 | 
						|
            Network Interface Management Scripts
 | 
						|
        ] ]]
 | 
						|
"
 | 
						|
 | 
						|
REMOTE_IDS="github:OpenRC/${PN}"
 | 
						|
 | 
						|
DEFAULT_SRC_COMPILE_PARAMS=(
 | 
						|
    LIBNAME=lib
 | 
						|
    LIBEXECDIR=/usr/$(exhost --target)/libexec/rc
 | 
						|
    OS=Linux
 | 
						|
)
 | 
						|
 | 
						|
DEFAULT_SRC_INSTALL_PARAMS=(
 | 
						|
    PREFIX=/usr/$(exhost --target)
 | 
						|
    SBINDIR=/usr/$(exhost --target)/bin
 | 
						|
    SYSCONFDIR=/etc
 | 
						|
    UPREFIX=/usr
 | 
						|
    INCDIR=/usr/$(exhost --target)/include
 | 
						|
    INCMODE=0755
 | 
						|
    LIBDIR=/usr/$(exhost --target)/lib
 | 
						|
    SHLIBDIR=/usr/$(exhost --target)/lib
 | 
						|
    LIBMODE=0755
 | 
						|
)
 | 
						|
 | 
						|
pkg_setup() {
 | 
						|
    exdirectory --allow /etc/sysctl.d
 | 
						|
}
 | 
						|
 | 
						|
src_prepare() {
 | 
						|
    default
 | 
						|
 | 
						|
    edo sed -e 's#readelf #${READELF:-readelf} #g'  \
 | 
						|
            -i src/test/runtests.sh
 | 
						|
 | 
						|
    edo sed -i 's:0444:0644:' mk/sys.mk
 | 
						|
}
 | 
						|
 | 
						|
src_compile() {
 | 
						|
    export BRANDING="Exherbo Linux"
 | 
						|
 | 
						|
    export DEBUG=
 | 
						|
    export MKTERMCAP=$(optionv ncurses)
 | 
						|
 | 
						|
    export AR=$(exhost --tool-prefix)ar
 | 
						|
    export RANLIB=$(exhost --tool-prefix)ranlib
 | 
						|
    export CC=$(exhost --tool-prefix)cc
 | 
						|
 | 
						|
    MAKE_ARGS="
 | 
						|
        ${DEFAULT_SRC_COMPILE_PARAMS[@]}
 | 
						|
        MKNET=$(option newnet yes no)
 | 
						|
        MKSELINUX=no
 | 
						|
        MKAUDIT=no
 | 
						|
        MKPAM=$(optionv pam)
 | 
						|
        MKSTATICLIBS=no
 | 
						|
        MKTOOLS=$(option tools yes no)
 | 
						|
    "
 | 
						|
 | 
						|
    emake ${MAKE_ARGS}
 | 
						|
}
 | 
						|
 | 
						|
src_test() {
 | 
						|
    export READELF=$(exhost --tool-prefix)readelf
 | 
						|
    default
 | 
						|
}
 | 
						|
 | 
						|
src_install() {
 | 
						|
    emake \
 | 
						|
        ${DEFAULT_SRC_INSTALL_PARAMS[@]} \
 | 
						|
        ${MAKE_ARGS} \
 | 
						|
        DESTDIR="${IMAGE}" install
 | 
						|
 | 
						|
    keepdir /usr/$(exhost --target)/libexec/rc/init.d
 | 
						|
    keepdir /usr/$(exhost --target)/libexec/rc/tmp
 | 
						|
 | 
						|
    dodir /usr/share/"${PN}"
 | 
						|
    edo cp -PR "${IMAGE}"/etc/runlevels "${IMAGE}"/usr/share/${PN}
 | 
						|
    rm -rf "${IMAGE}"/etc/runlevels
 | 
						|
 | 
						|
    insinto /etc/logrotate.d
 | 
						|
    newins "${FILES}"/openrc.logrotate openrc
 | 
						|
 | 
						|
    dodoc ChangeLog *.md
 | 
						|
    if option newnet; then
 | 
						|
        dodoc README.newnet
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
pkg_postinst() {
 | 
						|
    # Make our runlevels if they don't exist
 | 
						|
    if [[ ! -e "${ROOT}"etc/runlevels ]] ||
 | 
						|
            [[ -e "${ROOT}"etc/runlevels/.add_boot_init.created ]] ; then
 | 
						|
        einfo "Copying across default runlevels"
 | 
						|
        cp -RPp "${ROOT}"usr/share/${PN}/runlevels "${ROOT}"etc
 | 
						|
        rm -f "${ROOT}"etc/runlevels/.add_boot_init.created
 | 
						|
    else
 | 
						|
        if [[ ! -e "${ROOT}"etc/runlevels/sysinit/devfs ]] ; then
 | 
						|
            mkdir -p "${ROOT}"etc/runlevels/sysinit
 | 
						|
            cp -RPp "${ROOT}"usr/share/${PN}/runlevels/sysinit/* \
 | 
						|
                "${ROOT}"etc/runlevels/sysinit
 | 
						|
        fi
 | 
						|
        if [[ ! -e "${ROOT}"etc/runlevels/shutdown/mount-ro ]] ; then
 | 
						|
            mkdir -p "${ROOT}"etc/runlevels/shutdown
 | 
						|
            cp -RPp "${ROOT}"usr/share/${PN}/runlevels/shutdown/* \
 | 
						|
                "${ROOT}"etc/runlevels/shutdown
 | 
						|
        fi
 | 
						|
        if [[ ! -e "${ROOT}"etc/runlevels/nonetwork/local ]]; then
 | 
						|
            cp -RPp "${ROOT}"usr/share/${PN}/runlevels/nonetwork \
 | 
						|
                "${ROOT}"etc/runlevels
 | 
						|
        fi
 | 
						|
    fi
 | 
						|
 | 
						|
    # update the dependency tree after touching all files #224171
 | 
						|
    [[ "${ROOT}" = "/" ]] &&
 | 
						|
        "${ROOT}usr/$(exhost --target)/libexec"/rc/bin/rc-depend -u
 | 
						|
}
 | 
						|
 |