Skip to content

Commit

Permalink
sys-apps/openrc: version bump to 0.21
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.28
  • Loading branch information
williamh committed May 24, 2016
1 parent 79815c0 commit 04acb29
Show file tree
Hide file tree
Showing 2 changed files with 353 additions and 0 deletions.
1 change: 1 addition & 0 deletions sys-apps/openrc/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ DIST openrc-0.18.4.tar.bz2 157237 SHA256 2c8bf1c6f52fcf4c1f6945a2836ba2551a7d930
DIST openrc-0.19.1.tar.bz2 159598 SHA256 5628c04b12e2f51f25e59c303bdccbf545ba0db25484adcca48e70d0712ce0e6 SHA512 303db4475fd02aa3aa161dbd8794a45c2633b9fe96aaab67b81014fa3915bed1aa51cff57128f4413cf9f2329ce1f2012e460e089c39f01ac6eb061a95844329 WHIRLPOOL a4e8720579b8983cb3c2c9b4dd983c1b7bf45e053aa0c9545f31e36c22e44d06e55198d4143dc0a6bca3b7d00b151b43d1da439b2479044344ca12f3151711f1
DIST openrc-0.20.4.tar.bz2 163060 SHA256 0474a08e9e280a3c2450bed014b1f6b485e1a583391575f0d35c3551709e3784 SHA512 6d4ccee5f3c3e64eeeaa05b591d7420e3cdaa82eb42606a8a721030b9323e1e56928da78d302e5cbd20c652f6ecf5db23a695de436216f2c55c0be4cfc98387a WHIRLPOOL b2bf5c1b66595a4b2b3a66a39f15896d6ab0aa4b0c42518146238016ba01adb12b3aaf6ce21570756693e283fe14a979f305afd253db68ba47246135529b1ab9
DIST openrc-0.20.5.tar.bz2 163033 SHA256 2af530aff271ffb8ef9428ca5847cde952ab985e2542b57f8d059373f8a77c4b SHA512 0784ac741aee96d0a4eeddc028b92dd5c79dd7fb66c8102e660fd059789559babd52a0618b7ea9216ea0a113708b356b0e1f9cdd32246cc744b2c7d6004f5a81 WHIRLPOOL 9798675508060d07804eee04a2e10d0ce5a84340aff842e4bbb88a530e41385785100e2a6e107e5e6767471e85438a504f8531032807cd733232a40266425360
DIST openrc-0.21.tar.bz2 167636 SHA256 ef92da7ff1447bc3a11aff799bf9aaaf226ce13c277318211f96d95bcbd064ac SHA512 14200663740406729462f9c412e63ab1f850ace46db7bb709b74a03c4fbf2159b7b6d7827f9c917cd9338564202538e2e115a4d677885eed055bda530ab4216b WHIRLPOOL 66ce916b25f6c81f2c87962bb6452f48ffab28eaee0c3f702830d62d9504c96d975c65aee2f2e3a03192a77cdc7cc75ca2e89af204ab4e4ac4d183f3c6f18a30
352 changes: 352 additions & 0 deletions sys-apps/openrc/openrc-0.21.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,352 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6

inherit flag-o-matic pam toolchain-funcs

DESCRIPTION="OpenRC manages the services, startup and shutdown of a host"
HOMEPAGE="https://github.com/openrc/openrc/"

if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="git://github.com/OpenRC/${PN}.git"
inherit git-r3
else
SRC_URI="https://dev.gentoo.org/~williamh/dist/${P}.tar.bz2"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
fi

LICENSE="BSD-2"
SLOT="0"
IUSE="audit debug ncurses pam newnet prefix +netifrc selinux static-libs
tools unicode kernel_linux kernel_FreeBSD"

COMMON_DEPEND="kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-ubin-9.0_rc sys-process/fuser-bsd ) )
ncurses? ( sys-libs/ncurses:0= )
pam? (
sys-auth/pambase
virtual/pam
)
tools? ( dev-lang/perl )
audit? ( sys-process/audit )
kernel_linux? (
sys-process/psmisc
!<sys-process/procps-3.3.9-r2
)
selinux? (
sys-apps/policycoreutils
sys-libs/libselinux
)
!<sys-apps/baselayout-2.1-r1
!<sys-fs/udev-init-scripts-27"
DEPEND="${COMMON_DEPEND}
virtual/os-headers
ncurses? ( virtual/pkgconfig )"
RDEPEND="${COMMON_DEPEND}
!prefix? (
kernel_linux? ( || ( >=sys-apps/sysvinit-2.86-r6 sys-process/runit ) )
kernel_FreeBSD? ( sys-freebsd/freebsd-sbin )
)
selinux? (
sec-policy/selinux-base-policy
sec-policy/selinux-openrc
)
"

PDEPEND="netifrc? ( net-misc/netifrc )"

src_prepare() {
sed -i 's:0444:0644:' mk/sys.mk || die

if [[ ${PV} == "9999" ]] ; then
local ver="git-${EGIT_VERSION:0:6}"
sed -i "/^GITVER[[:space:]]*=/s:=.*:=${ver}:" mk/gitver.mk || die
fi

# Allow user patches to be applied without modifying the ebuild
eapply_user
}

src_compile() {
unset LIBDIR #266688

MAKE_ARGS="${MAKE_ARGS}
LIBNAME=$(get_libdir)
LIBEXECDIR=${EPREFIX}/$(get_libdir)/rc
MKNET=$(usex newnet)
MKSELINUX=$(usex selinux)
MKAUDIT=$(usex audit)
MKPAM=$(usev pam)
MKSTATICLIBS=$(usex static-libs)
MKTOOLS=$(usex tools)"

local brand="Unknown"
if use kernel_linux ; then
MAKE_ARGS="${MAKE_ARGS} OS=Linux"
brand="Linux"
elif use kernel_FreeBSD ; then
MAKE_ARGS="${MAKE_ARGS} OS=FreeBSD"
brand="FreeBSD"
fi
export BRANDING="Gentoo ${brand}"
use prefix && MAKE_ARGS="${MAKE_ARGS} MKPREFIX=yes PREFIX=${EPREFIX}"
export DEBUG=$(usev debug)
export MKTERMCAP=$(usev ncurses)

tc-export CC AR RANLIB
emake ${MAKE_ARGS}
}

# set_config <file> <option name> <yes value> <no value> test
# a value of "#" will just comment out the option
set_config() {
local file="${ED}/$1" var=$2 val com
eval "${@:5}" && val=$3 || val=$4
[[ ${val} == "#" ]] && com="#" && val='\2'
sed -i -r -e "/^#?${var}=/{s:=([\"'])?([^ ]*)\1?:=\1${val}\1:;s:^#?:${com}:}" "${file}"
}

set_config_yes_no() {
set_config "$1" "$2" YES NO "${@:3}"
}

src_install() {
emake ${MAKE_ARGS} DESTDIR="${D}" install

# move the shared libs back to /usr so ldscript can install
# more of a minimal set of files
# disabled for now due to #270646
#mv "${ED}"/$(get_libdir)/lib{einfo,rc}* "${ED}"/usr/$(get_libdir)/ || die
#gen_usr_ldscript -a einfo rc
gen_usr_ldscript libeinfo.so
gen_usr_ldscript librc.so

if ! use kernel_linux; then
keepdir /$(get_libdir)/rc/init.d
fi
keepdir /$(get_libdir)/rc/tmp

# Backup our default runlevels
dodir /usr/share/"${PN}"
cp -PR "${ED}"/etc/runlevels "${ED}"/usr/share/${PN} || die
rm -rf "${ED}"/etc/runlevels

# Setup unicode defaults for silly unicode users
set_config_yes_no /etc/rc.conf unicode use unicode

# Cater to the norm
set_config_yes_no /etc/conf.d/keymaps windowkeys '(' use x86 '||' use amd64 ')'

# On HPPA, do not run consolefont by default (bug #222889)
if use hppa; then
rm -f "${ED}"/usr/share/openrc/runlevels/boot/consolefont
fi

# Support for logfile rotation
insinto /etc/logrotate.d
newins "${FILESDIR}"/openrc.logrotate openrc

# install gentoo pam.d files
newpamd "${FILESDIR}"/start-stop-daemon.pam start-stop-daemon
newpamd "${FILESDIR}"/start-stop-daemon.pam supervise-daemon

# install documentation
dodoc ChangeLog *.md
if use newnet; then
dodoc README.newnet
fi
}

add_boot_init() {
local initd=$1
local runlevel=${2:-boot}
# if the initscript is not going to be installed and is not
# currently installed, return
[[ -e "${ED}"/etc/init.d/${initd} || -e "${EROOT}"etc/init.d/${initd} ]] \
|| return
[[ -e "${EROOT}"etc/runlevels/${runlevel}/${initd} ]] && return

# if runlevels dont exist just yet, then create it but still flag
# to pkg_postinst that it needs real setup #277323
if [[ ! -d "${EROOT}"etc/runlevels/${runlevel} ]] ; then
mkdir -p "${EROOT}"etc/runlevels/${runlevel}
touch "${EROOT}"etc/runlevels/.add_boot_init.created
fi

elog "Auto-adding '${initd}' service to your ${runlevel} runlevel"
ln -snf /etc/init.d/${initd} "${EROOT}"etc/runlevels/${runlevel}/${initd}
}
add_boot_init_mit_config() {
local config=$1 initd=$2
if [[ -e ${EROOT}${config} ]] ; then
if [[ -n $(sed -e 's:#.*::' -e '/^[[:space:]]*$/d' "${EROOT}"${config}) ]] ; then
add_boot_init ${initd}
fi
fi
}

pkg_preinst() {
local f LIBDIR=$(get_libdir)

# avoid default thrashing in conf.d files when possible #295406
if [[ -e "${EROOT}"etc/conf.d/hostname ]] ; then
(
unset hostname HOSTNAME
source "${EROOT}"etc/conf.d/hostname
: ${hostname:=${HOSTNAME}}
[[ -n ${hostname} ]] && set_config /etc/conf.d/hostname hostname "${hostname}"
)
fi

# set default interactive shell to sulogin if it exists
set_config /etc/rc.conf rc_shell /sbin/sulogin "#" test -e /sbin/sulogin

# termencoding was added in 0.2.1 and needed in boot
has_version ">=sys-apps/openrc-0.2.1" || add_boot_init termencoding

# swapfiles was added in 0.9.9 and needed in boot (february 2012)
has_version ">=sys-apps/openrc-0.9.9" || add_boot_init swapfiles

if ! has_version ">=sys-apps/openrc-0.11"; then
add_boot_init sysfs sysinit
fi

if ! has_version ">=sys-apps/openrc-0.11.3" ; then
migrate_udev_mount_script
add_boot_init tmpfiles.setup boot
fi

# these were added in 0.12.
if ! has_version ">=sys-apps/openrc-0.12"; then
add_boot_init loopback
add_boot_init tmpfiles.dev sysinit

# ensure existing /etc/conf.d/net is not removed
# undoes the hack to get around CONFIG_PROTECT in openrc-0.11.8 and earlier
# this needs to stay in openrc ebuilds for a long time. :(
# Added in 0.12.
if [[ -f "${EROOT}"etc/conf.d/net ]]; then
einfo "Modifying conf.d/net to keep it from being removed"
cat <<-EOF >>"${EROOT}"etc/conf.d/net
# The network scripts are now part of net-misc/netifrc
# In order to avoid sys-apps/${P} from removing this file, this comment was
# added; you can safely remove this comment. Please see
# /usr/share/doc/netifrc*/README* for more information.
EOF
fi
fi
has_version ">=sys-apps/openrc-0.14" || add_boot_init binfmt

if ! has_version ">=sys-apps/openrc-0.18.3"; then
add_boot_init mtab
if [[ -f "${EROOT}"etc/mtab ]] && [[ ! -L "${EROOT}"etc/mtab ]]; then
ewarn "${EROOT}etc/mtab will be replaced with a"
ewarn "symbolic link to /proc/self/mounts on the next"
ewarn "reboot."
ewarn "Change the setting in ${EROOT}etc/conf.d/mtab"
ewarn "if you do not want this to happen."
fi
fi
}

# >=OpenRC-0.11.3 requires udev-mount to be in the sysinit runlevel with udev.
migrate_udev_mount_script() {
if [ -e "${EROOT}"etc/runlevels/sysinit/udev -a \
! -e "${EROOT}"etc/runlevels/sysinit/udev-mount ]; then
add_boot_init udev-mount sysinit
fi
return 0
}

pkg_postinst() {
local LIBDIR=$(get_libdir)

# Make our runlevels if they don't exist
if [[ ! -e "${EROOT}"etc/runlevels ]] || [[ -e "${EROOT}"etc/runlevels/.add_boot_init.created ]] ; then
einfo "Copying across default runlevels"
cp -RPp "${EROOT}"usr/share/${PN}/runlevels "${EROOT}"etc
rm -f "${EROOT}"etc/runlevels/.add_boot_init.created
else
if [[ ! -e "${EROOT}"etc/runlevels/sysinit/devfs ]] ; then
mkdir -p "${EROOT}"etc/runlevels/sysinit
cp -RPp "${EROOT}"usr/share/${PN}/runlevels/sysinit/* \
"${EROOT}"etc/runlevels/sysinit
fi
if [[ ! -e "${EROOT}"etc/runlevels/shutdown/mount-ro ]] ; then
mkdir -p "${EROOT}"etc/runlevels/shutdown
cp -RPp "${EROOT}"usr/share/${PN}/runlevels/shutdown/* \
"${EROOT}"etc/runlevels/shutdown
fi
if [[ ! -e "${EROOT}"etc/runlevels/nonetwork/local ]]; then
cp -RPp "${EROOT}"usr/share/${PN}/runlevels/nonetwork \
"${EROOT}"etc/runlevels
fi
fi

if use hppa; then
elog "Setting the console font does not work on all HPPA consoles."
elog "You can still enable it by running:"
elog "# rc-update add consolefont boot"
fi

# Handle the conf.d/local.{start,stop} -> local.d transition
if path_exists -o "${EROOT}"etc/conf.d/local.{start,stop} ; then
elog "Moving your ${EROOT}etc/conf.d/local.{start,stop}"
elog "files to ${EROOT}etc/local.d"
mv "${EROOT}"etc/conf.d/local.start "${EROOT}"etc/local.d/baselayout1.start
mv "${EROOT}"etc/conf.d/local.stop "${EROOT}"etc/local.d/baselayout1.stop
chmod +x "${EROOT}"etc/local.d/*{start,stop}
fi

if use kernel_linux && [[ "${EROOT}" = "/" ]]; then
if ! /$(get_libdir)/rc/sh/migrate-to-run.sh; then
ewarn "The dependency data could not be migrated to /run/openrc."
ewarn "This means you need to reboot your system."
fi
fi

# update the dependency tree after touching all files #224171
[[ "${EROOT}" = "/" ]] && "${EROOT}/${LIBDIR}"/rc/bin/rc-depend -u

if ! use newnet && ! use netifrc; then
ewarn "You have emerged OpenRc without network support. This"
ewarn "means you need to SET UP a network manager such as"
ewarn " net-misc/netifrc, net-misc/dhcpcd, net-misc/wicd,"
ewarn "net-misc/NetworkManager, or net-misc/badvpn."
ewarn "Or, you have the option of emerging openrc with the newnet"
ewarn "use flag and configuring /etc/conf.d/network and"
ewarn "/etc/conf.d/staticroute if you only use static interfaces."
ewarn
fi

if use newnet && [ ! -e "${EROOT}"etc/runlevels/boot/network ]; then
ewarn "Please add the network service to your boot runlevel"
ewarn "as soon as possible. Not doing so could leave you with a system"
ewarn "without networking."
ewarn
fi

ewarn "In this version of OpenRC, the loopback interface no longer"
ewarn "satisfies the net virtual."
ewarn "If you have services now which do not start because of this,"
ewarn "They can be fixed by adding rc_need=\"!net\""
ewarn "to the ${EROOT}etc/conf.d/<servicename> file."
ewarn "You should also file a bug against the service asking that"
ewarn "need net be dropped from the dependencies."
ewarn "The bug you file should block the following tracker:"
ewarn "https://bugs.gentoo.org/show_bug.cgi?id=439092"
ewarn

# Updated for 0.13.2.
ewarn "Bug https://bugs.gentoo.org/show_bug.cgi?id=427996 was not"
ewarn "fixed correctly in earlier versions of OpenRC."
ewarn "The correct fix is implemented in this version, but that"
ewarn "means netmount needs to be added to the default runlevel if"
ewarn "you are using nfs file systems."
ewarn

elog "You should now update all files in /etc, using etc-update"
elog "or equivalent before restarting any services or this host."
}

0 comments on commit 04acb29

Please sign in to comment.