blob: ef11c9e73a4dc2ce8a9a10a2f853c74b3c311f54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
inherit flag-o-matic eutils toolchain-funcs multilib
DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
HOMEPAGE="http://roy.marples.name/"
SRC_URI="http://roy.marples.name/${P}.tar.bz2"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
IUSE="ncurses pam static unicode kernel_linux kernel_FreeBSD"
RDEPEND="virtual/init
kernel_linux? (
>=sys-apps/coreutils-5.2.1
>=sys-apps/module-init-tools-3.2.2-r2
sys-apps/makedev
)
kernel_FreeBSD? ( sys-process/fuser-bsd )
ncurses? ( sys-libs/ncurses )
pam? ( virtual/pam )
!<sys-apps/baselayout-2.0.0"
DEPEND="virtual/os-headers"
pkg_setup() {
LIBDIR="lib"
[ "${SYMLINK_LIB}" = "yes" ] && LIBDIR=$(get_abi_LIBDIR "${DEFAULT_ABI}")
}
make_opts() {
local opts="${opts} LIB=${LIBDIR}"
if use kernel_linux; then
opts="${opts} OS=Linux"
else
opts="${opts} OS=BSD"
fi
use ncurses && opts="${opts} TERMCAP=ncurses"
use pam && opts="${opts} PAM=pam"
echo "${opts}"
}
src_compile() {
use static && append-ldflags -static
emake $(make_opts) CC=$(tc-getCC) || die
}
src_install() {
emake $(make_opts) DESTDIR="${D}" install || die
# Fix portage bitching about libs and symlinks
rm "${D}"/usr/"${LIBDIR}"/libeinfo.so "${D}"/usr/"${LIBDIR}"/librc.so
ln -s libeinfo.so.1 "${D}"/"${LIBDIR}"/libeinfo.so
gen_usr_ldscript libeinfo.so
ln -s librc.so.1 "${D}"/"${LIBDIR}"/librc.so
gen_usr_ldscript librc.so
# Backup our default runlevels
dodir /usr/share/"${PN}"
mv "${D}/etc/runlevels" "${D}/usr/share/${PN}"
# Setup unicode defaults for silly unicode users
if use unicode; then
sed -i -e '/^unicode=/s:NO:YES:' "${D}"/etc/rc.conf
fi
}
pkg_preinst() {
# baselayout bootmisc init script has been split out in OpenRC
# so handle upgraders
if ! has_version sys-apps/openrc; then
local x= xtra=
use kernel_linux && xtra="${xtra} procfs sysctl"
use kernel_FreeBSD && xtra="${xtra} savecore dumpon"
for x in swap ${xtra}; do
[ -e "${ROOT}"etc/runlevels/boot/"${x}" ] && continue
ln -snf /etc/init.d/"${x}" "${ROOT}"etc/runlevels/boot/"${x}"
done
fi
# Upgrade out state for baselayout-1 users
if [ ! -e "${ROOT}${LIBDIR}"/rc/init.d/started ]; then
(
[ -e "${ROOT}"etc/conf.d/rc ] && . "${ROOT}etc/conf.d/rc"
svcdir=${svcdir:-/var/lib/init.d}
if [ ! -d "${ROOT}${svcdir}/started" ]; then
ewarn "No state found, and no state exists"
elog "You should reboot this host"
else
einfo "Moving state from ${ROOT}${svcdir} to ${ROOT}${LIBDIR}/rc/init.d"
mv "${ROOT}${svcdir}"/* "${ROOT}${LIBDIR}"/rc/init.d
rm -rf "${ROOT}${LIBDIR}"/rc/init.d/daemons \
"${ROOT}${LIBDIR}"/rc/init.d/console
umount "${ROOT}${svcdir}" 2>/dev/null
rm -rf "${ROOT}${svcdir}"
fi
)
fi
}
pkg_postinst() {
# Make our runlevels if they don't exist
if [ ! -e "${ROOT}"etc/runlevels ]; then
einfo "Copying across default runlevels"
cp -RPp "${ROOT}"usr/share/"${PN}"/runlevels "${ROOT}"/etc
fi
einfo "You should now update all files in /etc, using etc-update"
einfo "or equivalent before restarting any services or this host."
}
|