# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/s390/package.use.mask,v 1.25 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

# Agostino Sarubbo <ago@gentoo.org< (10 Apr 2013)
# It requires too much unstable dep.
x11-libs/gtk+ colord

# Justin Lecher <jlec@gentoo.org> (09 Jan 2013)
# x11-base/xorg-server[xvfb] is not keyworded
dev-lang/tk test

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

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

# Mike Frysinger <vapier@gentoo.org> (10 Feb 2011)
# Waiting for keywording #354309
net-firewall/iptables netlink

# Raúl Porcel <armin76@gentoo.org> (27 Mar 2008)
# Needs gtk USE-flag
net-dns/avahi python

# Masking this so repoman shuts up about paludis
sys-apps/paludis ruby-bindings

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

# Robin H Johnson <robbat2@gentoo.org> (01 Nov 2012)
# MySQL 5.5 wants systemtap, tcmalloc & jemalloc
>=dev-db/mysql-5.5 tcmalloc
>=dev-db/mariadb-5.5 tcmalloc
