# Copyright 1999-2013 Gentoo Foundation.
# Distributed under the terms of the GNU General Public License, v2
# $Header: /var/cvsroot/gentoo-x86/profiles/prefix/packages,v 1.8 2013/08/29 02:58:55 jcallen Exp $

# Gentoo Base Prefix Profile

# NOTE: THIS IS THE BASE PROFILE FOR *ANY* PREFIX BASED OPERATING SYSTEM.
# NO MODIFICATIONS MAY BE MADE TO THIS FILE WITHOUT PRIOR DISCUSSION.  IF
# YOU ARE CREATING A NEW PROFILE, YOU SIMPLY NEED TO INHERIT THIS BASE
# PROFILE IN YOUR PROFILE DIRECTORY'S "parent" FILE.

# Read the descriptions of ../base/packages for some explanation

# This file removes everything from the base profile which is not
# necessary/desired in a prefix environment.

-*>=sys-apps/baselayout-2
-*net-misc/iputils
-*sys-apps/kbd
-*sys-process/procps
-*sys-process/psmisc
-*sys-fs/e2fsprogs
-*virtual/dev-manager
-*virtual/modutils
-*virtual/shadow

# add back prefix baselayout
*sys-apps/baselayout-prefix

# we don't want binutils everywhere, only in linux and solaris
-*sys-devel/binutils

# we don't ever will install these, so no need to depend on them
-*virtual/libc
-*virtual/os-headers

# we don't want this either (as baselayout-prefix provides the functions.sh
# file that this was added to ../base/packages for)
-*sys-apps/openrc
