# Copyright 2018 Redcore Linux Project # Distributed under the terms of the GNU General Public License v2 require bash-completion zsh-completion 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 ] number-selected = at-most-one ]] dhcp [[ description = [ Enable external networking tools ] ]] dkms [[ description = [ Enable DKMS (dynamic kernel module support) integration ] ]] ncurses newnet [[ description = [ Enable the new network stack (experimental) ] ]] pam plymouth [[ description = [ Enable plymouth plugin for OpenRC ] ]] " PLATFORMS="~amd64 ~x86" DEPENDENCIES=" build+run: dkms? ( sys-kernel/dkms ) ncurses? ( sys-libs/ncurses ) pam? ( sys-libs/pam ) run: providers:runit? ( sys-apps/runit ) providers:sinit? ( sys-apps/sinit ) providers:sysvinit? ( sys-apps/sysvinit ) plymouth? ( sys-boot/plymouth-openrc-plugin ) recommendation: plymouth? ( sys-boot/plymouth-openrc-plugin ) dhcp? ( sys-apps/net-tools net-misc/dhcpcd ) " REMOTE_IDS="github:OpenRC/${PN}" DEFAULT_SRC_PREPARE_PATCHES=( # Redcore Linux : enable rclogger, disable cgroupsv2 "${FILES}"/"${PN}"-enable-rclogger.patch "${FILES}"/"${PN}"-disable-cgroupsv2.patch ) 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 BASHCOMPDIR=${BASHCOMPLETIONDIR} ZSHCOMPDIR=${ZSHCOMPLETIONDIR} ) pkg_setup() { exdirectory --allow /etc/sysctl.d } src_prepare() { default # Redcore Linux : enable dkms integration if option dkms; then expatch "${FILES}"/"${PN}"-dkms.patch fi edo sed -e 's#readelf #${READELF:-readelf} #g' \ -i src/test/runtests.sh } src_compile() { export BRANDING="Redcore 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[@]} MKAUDIT=no MKBASHCOMP=$(option bash-completion yes no) MKNET=$(option newnet yes no) MKPAM=$(optionv pam) MKSELINUX=no MKSTATICLIBS=no MKSYSVINIT=no MKZSHCOMP=$(option zsh-completion 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 insinto /etc/pam.d newins "${FILES}"/start-stop-daemon.pam start-stop-daemon newins "${FILES}"/start-stop-daemon.pam supervise-daemon 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 }