# ChangeLog for Gentoo/Alpha profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/alpha/ChangeLog,v 1.183 2013/11/13 04:18:20 mattst88 Exp $

  13 Nov 2013; Matt Turner <mattst88@gentoo.org> use.mask:
  Drop systemd from use.mask, bug 478076.

  26 Oct 2013; Mark Wright <gienah@gentoo.org> package.use.mask:
  mask dev-haskell/dataenc test as template-haskell not yet available

  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.

  10 Sep 2013; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove mask for USE="pam" in sys-auth/polkit since it doesn't have the
  difficult pambase dependency anymore.

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

  12 Aug 2013; Tobias Klausmann <klausman@gentoo.org> package.mask:
  Mask glibc-2.17 on alpha due to bug 480740

  09 Jul 2013; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Extend masking of USE=webkit to dev-qt/assistant and dev-qt/designer.

  22 Jun 2013; William Hubbs <williamh@gentoo.org> package.use.mask:
  Mask python use flag for >=brltty-4.5 because dev-python/cython is not
  keyworded for alpha.

  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.

  22 Apr 2013; Bernard Cafarelli <voyageur@gentoo.org> package.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; Agostino Sarubbo <ago@gentoo.org> use.mask:
  remove mask on colord/packagekit use

  20 Jan 2013; Agostino Sarubbo <ago@gentoo.org> use.mask:
  mask template_haskell IUSE as per slyfox suggest

  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.

  01 Jan 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask, use.mask:
  Remove dev-libs/folks eds telepathy and gnome-base/nautilus sendto from
  package.use.mask. Remove gnome-online-accounts and add -zeitgeist from
  use.mask

  31 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> use.mask:
  Mask USE=xine since xine-lib is not keyworded here.

  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.

  15 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask totem[upnp-av] after upnp -> upnp-av rename since media-video/coherence
  not keyworded (bug #435776).

  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.

  02 Nov 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask p.use.mask net-libs/webkig-gtk geoloc since its stable

  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

  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

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

  16 Aug 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  use.mask video_cards_siliconmotion.

  05 Aug 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Use.mask gts, devil for bug #419621, unmask qt4, p.use.mask
  x11-misc/google-gadgets qt4 because it requires qt-webkit which we don't have

  22 Jul 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Remove media-gfx/gimp udev from p.use.mask

  15 Jul 2012; Raúl Porcel <armin76@gentoo.org> package.mask:
  Drop udev mask

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

  06 Jul 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove unnecessary x11-plugins/enigmail entry.

  04 Jul 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove obsolete entries for net-libs/xulrunner and www-client/icecat wrt
  #424617

  27 Jun 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask net-irc/kvirc webkit

  27 Jun 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Mask USE=webkit for PyQt4 too, because qt-webkit is not keyworded on alpha.

  25 Jun 2012; Raúl Porcel <armin76@gentoo.org> package.mask,
  package.use.mask:
  Unmask qt-related stuff

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

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

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

  14 Jun 2012; Ben de Groot <yngwin@gentoo.org> package.mask:
  Add app-text/djview 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 alpha, 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...

  30 May 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  use.mask socialweb

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

  27 May 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  Add entropy to use.mask.

  27 May 2012; Matt Turner <mattst88@gentoo.org> use.mask:
  Add gnome-online-accounts to use.mask.

  27 May 2012; Matt Turner <mattst88@gentoo.org> package.use.mask, use.mask:
  Add connman to use.mask.

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

  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).

  20 May 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Mask USE="acl" for sys-auth/consolekit because >=sys-fs/udev-167 is masked in
  this same directory at package.mask file.

  18 May 2012; Sebastian Pipping <sping@gentoo.org> package.use.mask:
  Mask >=media-gfx/gimp-2.7[udev]

  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.

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

  06 May 2012; Raúl Porcel <armin76@gentoo.org> -package.use.force:
  Remove nptlonly outdated package.use.force

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

  08 Apr 2012; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask pyxattr

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

  21 Feb 2012; Zac Medico <zmedico@gentoo.org> package.use.mask:
  Bug #402215: Mask USE=xattr for sys-apps/portage, pending ~alpha keyword for
  dev-python/pyxattr.

  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.

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

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

  29 Dec 2011; Tobias Klausmann <klausman@gentoo.org> use.mask:
  Drop Ruby 1.9 mask since there now is a keyworded dev-ruby/rubygems (1.8.11)
  that works

  26 Dec 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask www-client/firefox crashreporter as it fails to build

  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

  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.

  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

  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; Tomáš Chvátal <scarabeus@gentoo.org> package.use.mask:
  Drop mask on non-existant portage version.

  20 Mar 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask iptables netlink

  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

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

  26 Dec 2010; Matt Turner <mattst88@gentoo.org> package.use.mask:
  Add 'www-client/elinks javascript' package.use.mask

  17 Dec 2010; Diego E. Pettenò <flameeyes@gentoo.org> package.use.mask:
  Mask caps USE flag for smartmontools until libcap-ng is keyworded.

  14 Dec 2010; Matt Turner <mattst88@gentoo.org> use.mask:
  use.mask llvm.

  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:
  P.use.mask www-client/elinks javascript

  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> 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.

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

  15 Aug 2010; Raúl Porcel <armin76@gentoo.org> -package.mask,
  package.use.mask, use.mask:
  Cleanup

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

  25 Jul 2010; Nirbheek Chauhan <nirbheek@gentoo.org> package.use.mask:
  Fix atom for pkgmove from www-client/mozilla-firefox -> www-client/firefox

  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

  26 Jun 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Use.mask custom-optimization

  13 Jun 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask net-im/empathy nautilus use until bug 323851 is fixed.

  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

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

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

  13 Feb 2010; Raúl Porcel <armin76@gentoo.org> package.mask:
  Unmask texlive-2009

  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; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask x11-themes/qtcurve-qt4 kde

  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

  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> make.defaults:
  drop "vga" from VIDEO_CARDS in all profiles

  15 Sep 2009; Raúl Porcel <armin76@gentoo.org> package.mask:
  Unmask kde-4.3

  12 Sep 2009; Raúl Porcel <armin76@gentoo.org> package.mask:
  Remove keyworded packages from package.mask

  12 Sep 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask redland and raptor, pm-utils, indi, fits, wicd

  06 Sep 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
  package.mask:
  Removed akonadi-server package.mask entry now that version 1.1.2 was
  restored and the keywords for the newer versions dropped (bug 280312).

  06 Sep 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
  package.mask:
  Added kde-base/akonadi to the list of masked packages as soprano is not
  keyworded for this arch.

  05 Sep 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
  package.mask:
  Added missing KDE-4.3 deps mask for this arch to fix tree breakage (bug
  #280312).

  02 Sep 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
  package.mask:
  Masking >= KDE-4.3 for this arch to prevent tree breakage following
  the global unmask of KDE-4.3 (bug #280312).

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

  28 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask radeonhd and ast video_cards

  03 May 2009; Tobias Klausmann <klausman@gentoo.org> use.mask:
  Masked topal use flag since it needs gnat/ada

  12 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add ktts to use.mask

  11 Apr 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Mask editor and solver for kde-base/kalzium to keep deps minimal

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

  11 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add semantic-desktop, mecab, tunepimp, captury, bittorrent-external, gps
  to use.mask

  20 Mar 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Remask webkit on qt packages since qt-webkit is not stable

  20 Mar 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask webkit

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

  31 Jan 2009; Tobias Klausmann <klausman@gentoo.org> package.use.mask:
  Webkit still isn't keyworded, so mask the use flag for qt-assistant, too.

  26 Dec 2008; Tobias Klausmann <klausman@gentoo.org> use.mask:
  Masked openafs on alpha

  23 Nov 2008; Patrick Lauer <patrick@gentoo.org> package.use.mask:
  webkit is missing keywords, masking webkit useflag for PyQt4

  10 Nov 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask laptop, no hardware on alpha

  10 Nov 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask dxr3, no hardware to test

  31 Aug 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask openct, no hardware to test

  31 Aug 2008; Raúl Porcel <armin76@gentoo.org> package.mask:
  Unmask gnome-2.22

  10 Aug 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask hddtemp USE-flag

  07 Jul 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Reuse.mask hddtemp as its not stable yet, to remove in 30 days

  07 Jul 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask hddtemp USE-flag

  07 Jul 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Make dev-lisp/clisp deps minimal

  23 Jun 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mtp, no hardware to test

  25 May 2008; Tobias Klausmann <klausman@gentoo.org> package.mask:
  libggi compiles on alpha these days

  23 May 2008; Tobias Klausmann <klausman@gentoo.org> package.mask:
  The glint driver is broken completely currently

  20 May 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask lm_sensors on xfce4-extras, needs to be keyworded

  13 May 2008; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask lm_sensors, bug #221891

  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.

  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 dvb on gst-plugins-meta as well

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

