# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/sh/package.use.mask,v 1.28 2013/05/28 13:53:42 chithanh Exp $

# Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> (28 May 2013)
# depends on sys-devel/llvm[video_cards_radeon]
media-libs/mesa r600-llvm-compiler

# Raúl Porcel <armin76@gentoo.org> (28 May 2012)
# Needs x11-misc/lightdm(which also requires some other deps)
x11-misc/xscreensaver new-login

# Raúl Porcel <armin76@gentoo.org> (05 Nov 2011)
# jit not supported on sh
dev-libs/libpcre jit

# Sebastian Pipping <sping@gentoo.org> (22 Feb 2011)
# No media-sound/lilypond here, yet (bug #356069)
app-text/asciidoc test

# Raúl Porcel <armin76@gentoo.org> (13 Feb 2011)
# Fails to build, pending to send a report upstream
media-libs/mesa gallium

# Alon Bar-Lev <alonbl@gentoo.org> (24 Jan 2007)
# pkcs11-helper is not keyworded
net-misc/openvpn pkcs11

# Gilles Dartiguelongue <eva@gentoo.org> (19 Oct 2007)
# gdm depends on zenity which is not keyworded
>=gnome-base/gdm-2.20 remote

# Christoph Mende <angelos@gentoo.org> (14 May 2008)
# media-sound/wavpack is not keyworded
media-sound/mpd wavpack

# Peter Alfredsen <loki_val@gentoo.org> (20 Jun 2008)
# cppunit is not keyworded, needed by test. Bug 228559.
media-libs/taglib test

# missing keyword for sys-cluster/openmpi sys-cluster/mpich2
dev-libs/boost mpi

# Needs testing and keywording
media-plugins/gst-plugins-meta aac dv lame pulseaudio taglib vcd vpx wavpack
