157 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			4.0 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
 | |
| "
 | |
| 
 | |
| 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[@]}
 | |
|         MKAUDIT=no
 | |
|         MKNET=$(option newnet yes no)
 | |
|         MKPAM=$(optionv pam)
 | |
|         MKSELINUX=no
 | |
|         MKSTATICLIBS=no
 | |
|         MKSYSVINIT=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
 | |
| }
 | |
| 
 |