# ChangeLog for Gentoo/sparc profile
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/sparc/ChangeLog,v 1.216 2013/11/10 15:48:14 chithanh Exp $

  10 Nov 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask llvm flag until sys-devel/llvm is keyworded, bug #320221.

  25 Oct 2013; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Remove redundant entries (webkit is already use.mask-ed globally on sparc).

  21 Oct 2013; Tom Wijsman <TomWij@gentoo.org> package.use.mask:
  Added bug reference to media-video/mpv luajit mask.

  20 Oct 2013; Tom Wijsman <TomWij@gentoo.org> package.use.mask:
  Adjusted media-video/mpv luajit USE mask to support future versions.

  16 Oct 2013; Tom Wijsman <TomWij@gentoo.org> package.use.mask:
  Mask luajit on ~media-video/mpv-0.2.0 because it only has amd64 x86 keywords.

  22 Aug 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask jemalloc flag for gnash

  22 Aug 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask opencl flag due to lack of virtual/opencl keywording.

  11 Aug 2013; Alexis Ballier <aballier@gentoo.org> +package.mask:
  move texlive mask from global to arch profiles, bug #475124

  16 Jul 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Drop obsolete quvi masks

  08 Jul 2013; Michael Weber <xmw@gentoo.org> package.use.mask:
  Mask net-dns/rbldnsd test for missing keywords on dev-python/pydns.

  17 Jun 2013; Patrick Lauer <patrick@gentoo.org> package.use.mask:
  Fix per-arch mask of phonon[zeitgeist] #460140

  28 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask r600-llvm-compiler flag for mesa.

  28 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask video_cards_radeonsi.

  27 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask video_cards_ilo.

  27 May 2013; Patrick Lauer <patrick@gentoo.org> package.use.mask:
  Masking upnp-av useflag for totem and rhytmbox to work around missing stable
  keywords on coherence/tagpy

  22 Apr 2013; Bernard Cafarelli <voyageur@gentoo.org> use.mask:
  x11-misc/google-gadgets removed from tree

  12 Mar 2013; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="cg" since it is a toolkit for nvidia binary drivers.

  31 Jan 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask net-misc/modemmanager[qmi,qmi-newest] until libqmi is keyworded.

  22 Jan 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask colord[extra-print-profiles] until argyllcms is keyworded here.

  20 Jan 2013; Michał Górny <mgorny@gentoo.org> use.mask:
  Remove duplicate pypy/jython masks (masked in base profile now).

  18 Jan 2013; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="cman clvm" because cman and libdlm are not keyworded on this arch.

  07 Jan 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask,
  use.mask:
  Remove obsolete mask entries. Since media-libs/libquvi is now ~sparc, mask
  USE=quvi only for stable ebuilds depending on it.

  06 Jan 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask, use.mask:
  Add -zeitgeist. Remove eds/telepathy from folks and sendto from nautilus

  31 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask,
  use.mask:
  Mask USE=connman globally for simplicity.

  31 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask,
  use.mask:
  Mask flags due to firefox, thunderbird, xine not being keyworded.

  31 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask totem[flash]: like totem[youtube], it needs quvi.

  31 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask sushi[office], needs virtual/ooo.

  30 Dec 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask media-libs/phonon gstreamer vlc, needs testing

  27 Dec 2012; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Remove obsolete masks, wrt bug #444181

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask >=zenity-3.6[test] until yelp-tools is keyworded.

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask >=libgda-5.1[gnome-keyring,reports] until app-crypt/libsecret and
  dev-java/fop are keywored.

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask devhelp[gedit] until gedit-3.6 is keyworded.

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask >=gvfs-1.14[gnome-keyring] until app-crypt/libsecret is keyworded.

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask >=folks-0.8[telepathy] until dev-libs/libzeitgeist is keyworded.

  01 Dec 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask fdk, bug #442806

  01 Dec 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask tremor, bug #439722

  24 Nov 2012; Mike Gilbert <floppym@gentoo.org> use.mask:
  Mask python_single_target values not supported on this arch.

  31 Oct 2012; Michał Górny <mgorny@gentoo.org> use.mask:
  Add a PYTHON_TARGETS mask based on keywords.

  21 Oct 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Remove sys-apps/portage python3 p.use.mask now that python3 is stable

  11 Sep 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask instrospection, geoloc, bug #432578

  11 Sep 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask gps

  26 Aug 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Update python3+portage mask

  26 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask metalink

  25 Aug 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Temporarily mask USE=introspection for >=webkit-gtk-1.8.1 and >=epiphany-3.4
  until USE=geoloc is unmasked; bug #432578

  19 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add clang to use.mask, needs testing

  19 Aug 2012; Diego E. Pettenò <flameeyes@gentoo.org> use.mask:
  Mask nagios-game USE flag.

  05 Aug 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask gts, devil, bug #419621, unmask qt4

  29 Jul 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask soundcloud, bug #424509

  11 Jul 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Unmask PyQt4[assistant], qt-assistant is keyworded now.

  11 Jul 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Remove redundant PyQt4 mask.

  09 Jul 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask x11-libs/qt-declarative webkit

  08 Jul 2012; Raúl Porcel <armin76@gentoo.org> -package.mask:
  Unmask qt stuff now that its stable

  08 Jul 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask stuff for qt-webkit

  24 Jun 2012; Diego E. Pettenò <flameeyes@gentoo.org> package.use.mask:
  Mask jit USE flag for mod_security.

  15 Jun 2012; Ben de Groot <yngwin@gentoo.org> package.use.mask:
  Add latex-beamer[lyx] to qt mask

  14 Jun 2012; Ben de Groot <yngwin@gentoo.org> package.mask, package.use.mask:
  Add tora and eigen[examples] to qt mask

  14 Jun 2012; Ben de Groot <yngwin@gentoo.org> package.mask, package.use.mask,
  use.mask:
  Since x11-libs/qt-* will no longer be available for sparc, we need to mask
  the reverse dependencies

  09 Jun 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask ups

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  remove old mask due to texlive 2010 not being keyworded, texlive 2011 is
  stable these days...

  28 May 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  package.use.mask x11-misc/xscreensaver new-login, bug #412847

  25 May 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask webkit-gtk[geoloc,webkit2], requires app-misc/geoclue and
  app-accessibility/at-spi2-core to be keyworded (bug #411761).

  15 May 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Mask USE="udisks" for gnome-base/gvfs wrt #412801

  13 May 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Add nautilus[sendto] to gnome3 mask.

  07 May 2012; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="mozilla" because of missing keywording in www-client/firefox wrt
  #360427

  06 May 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add systemd to use.mask, needs testing

  02 May 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Mask USE=qt4 for cairo due to unkeyworded dep.

  12 Apr 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask glib-networking[smartcard], it requires gnutls[pkcs11], which is
  use.masked on sparc. Temporary mask-in-base, unmask-in-arch for
  dev-python/mako keywording for gobject-introspection[doctool], bug #411761.

  08 Apr 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask aacplus

  10 Feb 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  Add new video_cards_* to use.mask.

  10 Feb 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  Mask wayland USE flag.

  10 Feb 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  Mask d3d USE flag.

  05 Feb 2012; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask bluray, bug #397891

  25 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask USE flags on gnome-3.2 packages due to missing keywords on deps; bug
  #390345

  05 Nov 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask dev-libs/libpcre jit since it isn't supported on this arch

  03 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  p.use.masking gnome-extra/gnome-media[aac] due to missing keywords in
  gst-plugins-faac, bug #389433.

  01 Nov 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Remove obsolete entry for USE="v4l2"

  28 Oct 2011; Alexandre Rostovtsev <tetromino@gentoo.org> use.mask:
  use.mask colord and packagekit to allow gtk+-3.2 unmasking. use.mask instead
  of p.use.mask because other packages with these flags are coming. Bug
  #387959.

  08 Oct 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  p.use.mask app-text/asciidoc test

  04 Sep 2011; Robin H. Johnson <robbat2@gentoo.org> package.use.mask:
  Bug #381737: block dev-libs/libmemcached[tcmalloc] until
  dev-utils/google-perftools is keyworded (and virtual/gsasl on hppa/arm).

  21 Aug 2011; Matt Turner <mattst88@gentoo.org> use.mask:
  Remove radeonhd from use.mask. It's gone from the tree.

  07 Aug 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask webp

  03 Aug 2011; Sergei Trofimovich <slyfox@gentoo.org> package.use.mask:
  masked dev-lang/ghc[llvm]

  03 Jul 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask =sys-apps/portage-2.1.10* python3

  30 Jun 2011; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Needed plugins are not keyworded on this arch

  29 May 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask prelude

  30 Apr 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask apcupsd

  23 Apr 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add video_cards_nouveau to use.mask

  23 Apr 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Cleanup package.use.mask

  02 Apr 2011; Ulrich Mueller <ulm@gentoo.org> -virtuals:
  Remove old-style virtual/bootloader, bug 359971.

  02 Apr 2011; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask media-video/totem youtube USE flag as quvi support is needed to play
  youtube files now.

  31 Mar 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="pda" wrt #353436, Comment #28. Remove support for
  app-pda/pilot-link and reverse dependencies on sparc.

  18 Mar 2011: Mike Frysinger <vapier@gentoo.org> make.defaults:
  Drop CDEFINE_<abi> variables now that nothing uses them.

  16 Mar 2011; Andreas Proschofsky <suka@gentoo.org> use.mask:
  Remove old-style virtual/ooo, bug #358895.

  13 Mar 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="chipcard" and USE="hbci" wrt #355077.

  09 Mar 2011; Justin Lecher <jlec@gentoo.org> +package.mask:
  Mask sci-biology/emboss-6.3.1 due to missing keyworded dep (sci-libs/plplot)

  27 Feb 2011; Raúl Porcel <armin76@gentoo.org> -package.mask:
  Punt package.mask

  27 Feb 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask pdfannotextractor

  30 Jan 2011; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask quvi

  27 Jan 2011; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask more gst-plugins-meta USE flags.

  09 Dec 2010; <nirbheek@gentoo.org> package.use.mask:
  net-misc/connman is not keyworded, bug 348308

  05 Dec 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask net-analyzer/wireshark doc-pdf as it needs java

  27 Nov 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Add portage python3 use-flag to p.use.mask

  14 Nov 2010; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  Mask app-i18n/canna[doc], app-text/ptex does not build and ptex is
  provided by TeX Live 2010, please remove the mask when TeX Live 2010 is
  unmasked, bug #342513

  14 Nov 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask gme

  14 Nov 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  unmask test USE flag of dev-util/buildbot*.

  13 Nov 2010; Alexis Ballier <aballier@gentoo.org> package.mask:
  Move TeX Live 2010 package.mask to per-arch package.mask, bug #342513

  08 Nov 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  package.use.mask:
  Mask "test" USE flag of dev-util/buildbot*.

  07 Nov 2010; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>
  package.use.mask:
  Mask "declarative" USE flag for dev-python/PyQt4.

  24 Oct 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libvirt

  23 Oct 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask webkit as it sigbuses

  12 Oct 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask wildmidi, barcode, xmms2

  10 Oct 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask frei0r

  25 Sep 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask media-sound/rhythmbox upnp

  18 Sep 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mtp

  13 Aug 2010; Justin Lecher <jlec@gentoo.org> package.use.mask:
  MKL not available on this arch

  24 Jul 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Use.mask kde

  10 Jul 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Add app-i18n/uim kde to p.use.mask

  08 Jul 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Use mask iphone gvfs USE flag until bug #325839 is fixed.

  27 Jun 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask vaapi, rtmp, vpx

  24 Jun 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mod_wsgi

  16 May 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask ots

  15 May 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask schroedinger

  14 May 2010; Raúl Porcel <armin76@gentoo.org> package.mask:
  Unmask texlive-2009 wrt #300526

  14 May 2010; Justin Lecher <jlec@gentoo.org> package.mask:
  Mask dev-tcltk/tkimg-1.4.20100510 until libpng-1.4 is unmasked

  09 May 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask ipod

  28 Mar 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask dev-util/subversion kde

  13 Mar 2010; Samuli Suominen <ssuominen@gentoo.org> package.mask:
  Mask libpng-1.4 pending on texlive-core-2009 unmasking.

  03 Mar 2010; Jonathan Callen <abcd@gentoo.org> package.mask:
  Mask all of KDE SC 4.4.x, not just 4.4.0

  02 Mar 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask media-sound/rhythmbox webkit

  24 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove redudant sane-backends "v4l" mask wrt #306645.

  14 Feb 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  p.use.mask media-gfx/sanebackends v4l

  09 Feb 2010; Alexey Shvetsov <alexxy@gentoo.org> package.mask:
  mask kde sc 4.4.0 since neede deps not keyworded

  08 Feb 2010; Alexey Shvetsov <alexxy@gentoo.org> package.use.mask:
  mask dev-libs/soprano[virtuoso] since it needs dev-db/virtuoso-* keyworded

  08 Feb 2010; Alexey Shvetsov <alexxy@gentoo.org> package.use.mask:
  mask app-admin/system-config-printer-common[policykit] since it needs
  sys-auth/polkit keyworded

  25 Jan 2010; Alexis Ballier <aballier@gentoo.org> package.mask:
  Move TeX Live 2009 mask here from global package.mask, remove it once
  keyworded, bug #300526

  18 Jan 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask ssh

  26 Dec 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask dmraid as i don't have any hardware to test
  Use.mask jingle

  22 Dec 2009; Peter Volkov <pva@gentoo.org> package.use.mask:
  Masked ssh USE flag for www-plugins/gnash, see bug 297899 for details.

  17 Dec 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask capi/celt/lensfun

  13 Dec 2009; Rémi Cardona <remi@gentoo.org> use.mask:
  drop "imstt" from VIDEO_CARDS in all profiles

  13 Dec 2009; Rémi Cardona <remi@gentoo.org> use.mask:
  drop "vga" from VIDEO_CARDS in all profiles

  11 Dec 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Unmask webkit

  03 Dec 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask google-gadgets

  30 Nov 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask tokyocabinet

  29 Nov 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove obsolete net-misc/kvpnc[smartcard] mask for KDE 3 version.

  29 Nov 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask epos, indi, wicd, ebook, chm

  22 Nov 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask pm-utils

  21 Nov 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask bluetooth

  07 Nov 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Mask app-arch/p7zip[kde].

  27 Oct 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask lqr

  17 Oct 2009; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE musepack because media-sound/musepack-tools support is missing.

  16 Aug 2009; Rémi Cardona <remi@gentoo.org> use.mask:
  drop last traces of i810

  01 Aug 2009; Steve Dibb <beandog@gentoo.org> use.mask:
  Remove "real" use flag mask, as its already in base

  01 Jul 2009; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  Add net-libs/ortp srtp to package.use.mask because libsrtp is -sparc.

  16 Jun 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Add dev-util/subversion kde to package.use.mask as it needs kde4

  09 Jun 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Add dev-python/PyQt4 assistant masking

  01 Jun 2009; Ferris McCormick <fmccor@gentoo.org> package.mask:
  Remove package mask for libffi, because libffi-3.0.8 is more current than 3.4.3

  22 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add topal to use.mask wrt #267299

  17 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libburn as it sigbuses

  25 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask srtp wrt bug #266193

  18 Feb 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Mask USE=doc for sci-geosciences/gpsbabel as it needs java stuff

  06 Feb 2009; Raúl Porcel <armin76@gentoo.org> package.mask:
  Mask old versions of qt related packages, bug #248038

  20 Jan 2009; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  package.use.mask zemberek for enchant --- requires java (see Bug #255691).

  20 Jan 2009; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  Package.use.mask zephyr for net-im/pidgin --- Bug #255579.

  27 Dec 2008; Friedrich Oslage <bluebird@gentoo.org> make.defaults:
  Fix multilib profile so it doesn't break linux-headers

  26 Dec 2008; Friedrich Oslage <bluebird@gentoo.org> make.defaults,
  packages, parent:
  Add experimental sparc multilib profile

  23 Dec 2008; Tiago Cunha <tcunha@gentoo.org> package.use.mask:
  Fix package name

  14 Dec 2008; Peter Alfredsen <loki_val@gentoo.org> package.mask:
  Add virtual/monodoc to mono package.mask

  24 Nov 2008; Friedrich Oslage <bluebird@gentoo.org> use.mask:
  Mask dxr2 and dxr3 use flag, no hardware to test

  21 Nov 2008; Ferris McCormick <fmccor@gentoo.org> package.mask:
  Clean up the texlive masks, remove the commented entries.

  18 Nov 2008; Ferris McCormick <fmccor@gentoo.org> package.mask:
  Unmask texlive-2008 (thanks to Friedrich Oslage for zziplib fix).

  12 Nov 2008; Alexis Ballier <aballier@gentoo.org> package.mask:
  mask glossaries 1.16 along with texlive 2008 because it is needed, bug
  #246384

  06 Oct 2008; Alexis Ballier <aballier@gentoo.org> package.mask:
  Move TeX Live mask to sparc profile for bug #237202 and bug #239472

  14 Sep 2008; Friedrich Oslage <bluebird@gentoo.org> use.mask:
  Mask video_cards_ast, no hardware to test
  Mask video_cards_radeonhd, no hardware to test

  09 Sep 2008; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  package.use.mask xindy for texlive because it requires clisp which does not
  build.

  15 Aug 2008; Friedrich Oslage <bluebird@gentoo.org> package.mask:
  Unmask GNOME 2.22

  11 Aug 2008; Friedrich Oslage <bluebird@gentoo.org> package.mask:
  Unmask openoffce, 2.4.1 finally compiles and works right

  10 Aug 2008; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  Unmask openinventor package.use.mask on geant.  openinventor now builds.  (Bug
  #231962.)

  31 Jul 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Reorder package.use.mask

  31 Jul 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Move webkit to use.mask

  31 Jul 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask reordering

  16 Jul 2008; Friedrich Oslage <bluebird@gentoo.org> use.mask:
  Un-use.mask tordns

  15 Jul 2008; Ferris McCormick <fmccor@gentoo.org> package.use.mask:
  package.use.mask openinventor for sci-physics/geant --- it does not build and
  this is required for Bug #230716.

  21 Jun 2008; Friedrich Oslage <bluebird@gentoo.org> use.mask:
  use.mask multilib, there currently is no profile that supports multilib

  21 Jun 2008; Friedrich Oslage <bluebird@gentoo.org> package.use.mask:
  Package.use.mask smartcard for net-misc/kvpnc

  21 Jun 2008; Friedrich Oslage <bluebird@gentoo.org> use.mask:
  Mask openct use flag, no hardware to test

  12 Jun 2008; Friedrich Oslage <bluebird@gentoo.org> package.use.mask,
  use.mask:
  Remove mpi from use.mask and add it to package.use.mask, bug #217854

  10 Jun 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mpi for bug #217854

  05 Jun 2008; Raúl Porcel <armin76@gentoo.org> package.mask:
  Unmask selinux packages since we have >=glibc-2.4

  21 Apr 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  wavegain fails to build

  10 Apr 2008; Donnie Berkholz <dberkholz@gentoo.org>; make.defaults:
  Make VIDEO_CARDS defaults a reasonable set instead of every imaginable
  card.

  10 Apr 2008; Donnie Berkholz <dberkholz@gentoo.org>; use.mask:
  changing around video_cards_via masking by unmasking only for available
  arches instead of masking on unavailable.

  09 Apr 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask laptop, no hardware to test

  08 Apr 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask pcks11 and some cleanup, will fix some more later

  03 Apr 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Move dvb and mythtv to global use.mask

  02 Apr 2008; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  Mask USE=mythtv on gst-plugins-meta as media-tv/mythtv not keyworded

