hasufell-repository/packages/sys-apps/openrc/openrc-0.38.2.exheres-0

164 lines
4.3 KiB
Bash
Raw Normal View History

2016-05-25 11:10:42 +00:00
# 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 bash-completion zsh-completion
2016-12-30 21:30:04 +00:00
require github
2016-05-25 11:10:42 +00:00
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
2016-05-25 11:10:42 +00:00
]]
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:
2016-05-25 11:10:42 +00:00
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
BASHCOMPDIR=${BASHCOMPLETIONDIR}
ZSHCOMPDIR=${ZSHCOMPLETIONDIR}
2016-05-25 11:10:42 +00:00
)
pkg_setup() {
exdirectory --allow /etc/sysctl.d
}
src_prepare() {
2016-06-29 12:33:19 +00:00
default
2016-05-25 11:10:42 +00:00
edo sed -e 's#readelf #${READELF:-readelf} #g' \
-i src/test/runtests.sh
}
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
MKBASHCOMP=$(option bash-completion yes no)
2017-06-15 17:06:42 +00:00
MKNET=$(option newnet yes no)
2016-05-25 11:10:42 +00:00
MKPAM=$(optionv pam)
2017-06-15 17:06:42 +00:00
MKSELINUX=no
2016-05-25 11:10:42 +00:00
MKSTATICLIBS=no
2017-06-15 17:06:42 +00:00
MKSYSVINIT=no
MKZSHCOMP=$(option zsh-completion yes no)
2016-05-25 11:10:42 +00:00
"
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
elog "Since openrc 0.35 openrc has a cgroup init.d script which"
elog "you'll have to add to your startup if you need cgroups."
2016-05-25 11:10:42 +00:00
}