# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

# Patrice Clement <monsieurp@gentoo.org> (30 Oct 2015)
# Requires dependencies that are not stable on sparc yet.
# See https://qa-reports.gentoo.org/output/gentoo-ci/7182f7a/5.html#l2294
mail-mta/postfix

# Raúl Porcel <armin76@gentoo.org> (17 Nov 2014)
# Mask sys-devel/kgcc64 since >=gcc-4.4 can build 64bit kernels
sys-devel/kgcc64

# Julian Ospald <hasufell@gentoo.org> (01 Sep 2014)
# Needs either hardmasked >=media-video/libav-10 or
# >=media-video/ffmpeg-2.1.4 which is not keyworded for
# sparc. Also see bug #521808
=media-video/mpv-0.4*
=media-video/mpv-0.5*

# Alexis Ballier <aballier@gentoo.org> (27 Jun 2013)
# TeX Live 2013 mask.
# kpathsea has to be there because it has config files without /usr/share/texmf
# and thus will break anything before TeX Live 2013.
>=dev-libs/kpathsea-6.1.1_p20130530
>=app-text/texlive-core-2013
>=dev-tex/luatex-0.74
>=app-text/texlive-2013
>=dev-tex/bibtexu-3.71_p20130530
>=dev-texlive/texlive-fontsextra-2013
>=dev-texlive/texlive-langother-2013
>=dev-texlive/texlive-latexrecommended-2013
>=dev-texlive/texlive-formatsextra-2013
>=dev-texlive/texlive-games-2013
>=dev-texlive/texlive-langcyrillic-2013
>=dev-texlive/texlive-pstricks-2013
>=dev-texlive/texlive-langportuguese-2013
>=dev-texlive/texlive-omega-2013
>=dev-texlive/texlive-langspanish-2013
>=dev-texlive/texlive-langczechslovak-2013
>=dev-texlive/texlive-basic-2013
>=dev-texlive/texlive-langindic-2013
>=dev-texlive/texlive-langpolish-2013
>=dev-texlive/texlive-luatex-2013
>=dev-texlive/texlive-plainextra-2013
>=dev-texlive/texlive-langafrican-2013
>=dev-texlive/texlive-fontutils-2013
>=dev-texlive/texlive-genericextra-2013
>=dev-texlive/texlive-latexextra-2013
>=dev-texlive/texlive-latex-2013
>=dev-texlive/texlive-mathextra-2013
>=dev-texlive/texlive-langgreek-2013
>=dev-texlive/texlive-langenglish-2013
>=dev-texlive/texlive-fontsrecommended-2013
>=dev-texlive/texlive-science-2013
>=dev-texlive/texlive-langarabic-2013
>=dev-texlive/texlive-metapost-2013
>=dev-texlive/texlive-xetex-2013
>=dev-texlive/texlive-langgerman-2013
>=dev-texlive/texlive-music-2013
>=dev-texlive/texlive-langitalian-2013
>=dev-texlive/texlive-langcjk-2013
>=dev-texlive/texlive-langeuropean-2013
>=dev-texlive/texlive-langfrench-2013
>=dev-texlive/texlive-bibtexextra-2013
>=dev-texlive/texlive-humanities-2013
>=dev-texlive/texlive-context-2013
>=dev-texlive/texlive-pictures-2013
>=dev-texlive/texlive-genericrecommended-2013
>=dev-texlive/texlive-publishers-2013

