summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-12-28 07:51:32 +0000
committerRoy Marples <roy@marples.name>2007-12-28 07:51:32 +0000
commit9dfa189da02d676c01ec87fc869297c3105a8eb0 (patch)
tree3dd334eef7859f456007b065cd3e0dce1bc9dc6c
downloaduberlord-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.ebuild110
-rw-r--r--sys-apps/openrc/openrc-0.1.ebuild74
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."
+}