diff options
author | Roy Marples <roy@marples.name> | 2007-12-28 07:51:32 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2007-12-28 07:51:32 +0000 |
commit | 9dfa189da02d676c01ec87fc869297c3105a8eb0 (patch) | |
tree | 3dd334eef7859f456007b065cd3e0dce1bc9dc6c | |
download | uberlord-9dfa189da02d676c01ec87fc869297c3105a8eb0.tar.gz uberlord-9dfa189da02d676c01ec87fc869297c3105a8eb0.tar.bz2 uberlord-9dfa189da02d676c01ec87fc869297c3105a8eb0.zip |
Add initial ebuilds for OpenRC
-rw-r--r-- | sys-apps/baselayout/baselayout-2.0.0.ebuild | 110 | ||||
-rw-r--r-- | sys-apps/openrc/openrc-0.1.ebuild | 74 |
2 files changed, 184 insertions, 0 deletions
diff --git a/sys-apps/baselayout/baselayout-2.0.0.ebuild b/sys-apps/baselayout/baselayout-2.0.0.ebuild new file mode 100644 index 0000000..d83ea6f --- /dev/null +++ b/sys-apps/baselayout/baselayout-2.0.0.ebuild @@ -0,0 +1,110 @@ +inherit flag-o-matic eutils toolchain-funcs multilib + +DESCRIPTION="Filesystem baselayout and init scripts" +HOMEPAGE="http://www.gentoo.org/" +SRC_URI="http://roy.marples.name/~roy/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" +IUSE="bootstrap build kernel_linux kernel_FreeBSD" + +RDEPEND="!<net-misc/dhcpcd-2.0.0 + !<sys-apps/baselayout-2.0.0" +DEPEND="virtual/os-headers + sys-apps/openrc" +PDEPEND="sys-apps/openrc" + +make_opts() { + local libdir="lib" + [ "${SYMLINK_LIB}" = "yes" ] && libdir=$(get_abi_LIBDIR "${DEFAULT_ABI}") + echo "LIB=${libdir}" +} + +pkg_preinst() { + # We need to install directories and maybe some dev nodes when building + # stages, but they cannot be in CONTENTS. + # Also, we cannot reference $S as binpkg will break so we do this. + if use build || use bootstrap ; then + local libdirs="$(get_all_libdirs)" dir= + # Create our multilib dirs - the Makefile has no knowledge of this + : ${libdirs:=lib} # it isn't that we don't trust multilib.eclass... + for dir in ${libdirs}; do + mkdir -p "${ROOT}${dir}" + touch "${ROOT}${dir}"/.keep + mkdir -p "${ROOT}usr/${dir}" + touch "${ROOT}usr/${dir}"/.keep + mkdir -p "${ROOT}usr/local/${dir}" + touch "${ROOT}usr/local/${dir}"/.keep + done + + # Ugly compatibility with stupid ebuilds and old profiles symlinks + if [ "${SYMLINK_LIB}" = "yes" ] ; then + rm -r "${ROOT}"/{lib,usr/lib,usr/local/lib} 2>/dev/null + local lib=$(get_abi_LIBDIR ${DEFAULT_ABI}) + ln -s "${lib}" "${ROOT}lib" + ln -s "${lib}" "${ROOT}usr/lib" + ln -s "${lib}" "${ROOT}usr/local/lib" + fi + + emake -C "${T}" $(make_opts) DESTDIR="${ROOT}" layout || die "failed to layout filesystem" + fi +} + +src_install() { + emake $(make_opts) DESTDIR="${D}" install || die + dodoc ChangeLog COPYRIGHT + + # Should this belong in another ebuild? Like say binutils? + # List all the multilib libdirs in /etc/env/04multilib (only if they're + # actually different from the normal + if has_multilib_profile || [ $(get_libdir) != "lib" -o -n "${CONF_MULTILIBDIR}" ]; then + local libdirs="$(get_all_libdirs)" libdirs_env= dir= + : ${libdirs:=lib} # it isn't that we don't trust multilib.eclass... + for dir in ${libdirs}; do + libdirs_env=${libdirs_env:+$libdirs_env:}/${dir}:/usr/${dir}:/usr/local/${dir} + done + + # Special-case uglyness... For people updating from lib32 -> lib amd64 + # profiles, keep lib32 in the search path while it's around + if has_multilib_profile && [ -d "${ROOT}"lib32 -o -d "${ROOT}"lib32 ] && ! hasq lib32 ${libdirs}; then + libdirs_env="${libdirs_env}:/lib32:/usr/lib32:/usr/local/lib32" + fi + echo "LDPATH=\"${libdirs_env}\"" > "${T}"/04multilib + doenvd "${T}"/04multilib + fi + + # version for testing of features that *should* be present + echo "Gentoo Base System release ${PV}" > "${D}"/etc/gentoo-release +} + +pkg_postinst() { + # We installed some files to /usr/share/baselayout instead of /etc to stop + # (1) overwriting the user's settings + # (2) screwing things up when attempting to merge files + # (3) accidentally packaging up personal files with quickpkg + # If they don't exist then we install them + for x in master.passwd passwd shadow group fstab ; do + [ -e "${ROOT}etc/${x}" ] && continue + [ -e "${ROOT}usr/share/baselayout/${x}" ] || continue + cp -p "${ROOT}usr/share/baselayout/${x}" "${ROOT}"etc + done + + # This is also written in src_install (so it's in CONTENTS), but + # write it here so that the new version is immediately in the file + # (without waiting for the user to do etc-update) + rm -f "${ROOT}"/etc/._cfg????_gentoo-release + local release="${PV}" + [ "${PR}" != r0 ] && release="${release}-${PR}" + echo "Gentoo Base System release ${release}" > "${ROOT}"/etc/gentoo-release + + # whine about users that lack passwords #193541 + if [ -e "${ROOT}"/etc/shadow ]; then + local bad_users=$(sed -n '/^[^:]*::/s|^\([^:]*\)::.*|\1|p' "${ROOT}"/etc/shadow) + if [ -n "${bad_users}" ] ; then + echo + ewarn "The following users lack passwords!" + ewarn ${bad_users} + fi + fi +} diff --git a/sys-apps/openrc/openrc-0.1.ebuild b/sys-apps/openrc/openrc-0.1.ebuild new file mode 100644 index 0000000..d17e454 --- /dev/null +++ b/sys-apps/openrc/openrc-0.1.ebuild @@ -0,0 +1,74 @@ +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 + + rm "${D}"usr/"${LIBDIR}"/libeinfo.so "${D}"usr/"${LIBDIR}"/librc.so + gen_usr_ldscript libeinfo.so 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_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." +} |