# Copyright 2004 Gentoo Foundation.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/default/linux/packages,v 1.1 2008/04/01 17:40:05 wolf31o2 Exp $

# This file extends the base packages file for the default profile that all
# architectures will enjoy.  Please note that default is what most architectures
# will have.  Some will have an selinux profile (see ${PORTDIR}/profiles/selinux).
# The idea is to only create a new family of profiles when absolutely necessary.

# We don't need busybox in our chroot sdk as it is used in upstream Gentoo
# only as a static rescue shell, and that doesn't make sense for us
#*sys-apps/busybox
*sys-apps/man-pages
*sys-apps/util-linux
