# ChangeLog for Gentoo/AMD64 profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/amd64/ChangeLog,v 1.234 2013/11/19 10:15:16 radhermit Exp $

  19 Nov 2013; Tim Harder <radhermit@gentoo.org> package.use.mask:
  Unmask racket USE flag for app-editors/(g)vim.

  03 Oct 2013; Ian Stakenvicius <axs@gentoo.org> make.defaults:
  swapped USE=abi_x86_64 for ABI_X86=64 per mgorny's recommendation

  03 Oct 2013; Michał Górny <mgorny@gentoo.org> make.defaults:
  Enable abi_x86_64 globally for packages that don't have it forced-on.

  02 Oct 2013; Michał Górny <mgorny@gentoo.org> package.use.force:
  Un-force abi_x86_64 on www-plugins/adobe-flash.

  01 Sep 2013; Jeff Horelick <jdhore@gentoo.org> package.use.mask:
  unmask sid for >=media-plugins/audacious-plugins-3.4

  22 Aug 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Drop obsolete opencl unmask.

  13 Aug 2013; Tim Harder <radhermit@gentoo.org> package.use.mask:
  Unmask luajit USE flag for app-editors/(g)vim.

  22 Jul 2013; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Mask USE=sse2 on dev-python/pypy since it controls only 32-bit JIT.

  22 Jun 2013; Tomáš Chvátal <scarabeus@gentoo.org>
  no-multilib/package.mask:
  Mask lotus-notes on multilib.

  18 Jun 2013; Michael Weber <xmw@gentoo.org> package.use.mask:
  masking www-client/netsurf abi_x86_32 due unsatisfied multilib dep on
  curl[abi_x86_32]

  12 Jun 2013; Jeroen Roovers <jer@gentoo.org> package.use.mask:
  Mask USE=debug for www-plugins/adobe-flash (bug #357321).

  09 Jun 2013; Ulrich Müller <ulm@gentoo.org> no-multilib/package.mask:
  Remove mask for media-libs/realcodecs and media-libs/win32codecs. Packages
  have been removed.

  08 Jun 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Move mask for app-leechcraft/leechcraft-meta[unstable] to base profile

  04 May 2013; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Remove USE=systemd from package.use.mask since the flag is (un)masked
  globally now.

  04 May 2013; Michał Górny <mgorny@gentoo.org> use.mask:
  Mask systemd flag globally, unmask on arches on which systemd is keyworded.

  14 Mar 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Adjust wine's gstreamer mask to cover <wine-1.5.25

  13 Mar 2013; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remask USE="gstreamer" for current stable wine wrt #461602

  12 Mar 2013; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Unmask the abi_x86_32 support due to freetype and friends being unmasked.

  12 Mar 2013; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove package.use.mask entry for wine[gstreamer] because we have 32bit gst
  libraries now.

  07 Mar 2013; Tim Harder <radhermit@gentoo.org> use.mask:
  Unmask jython2_7 for PYTHON_TARGETS.

  03 Mar 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.force,
  x32/package.use.mask:
  Update wine to autotools-multilib.eclass

  27 Feb 2013; Michał Górny <mgorny@gentoo.org> +x32/use.force,
  +x32/use.mask:
  Unmask and set ABI flags for x32.

  27 Feb 2013; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Mask the abi_x86_32 on packages belonging to emul-linux-x86-xlibs until
  freetype is unmasked.

  21 Feb 2013; Justin Lecher <jlec@gentoo.org> package.use.mask:
  cuda only works on x86 and amd64

  16 Feb 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  mask net-misc/leechcraft-full[unstable] because requires packages not ready
  for the stabilization

  12 Feb 2013; Christoph Junghans <ottxor@gentoo.org> use.mask:
  sse41 -> sse4_1 (bug #456886)

  07 Feb 2013; Matt Turner <mattst88@gentoo.org> use.mask:
  Drop sse5 USE flag.

  01 Feb 2013; Michał Górny <mgorny@gentoo.org> make.defaults,
  no-multilib/make.defaults, no-multilib/use.mask, use.force, use.mask:
  Set ABI_X86 flags for amd64 & x86 up.

  25 Jan 2013; Christoph Junghans <ottxor@gentoo.org> use.mask:
  unmask missing amd64/x86 instruction sets

  20 Jan 2013; Michał Górny <mgorny@gentoo.org> use.mask:
  Remove the pypy unmask for old profiles. It is unmasked in the new EAPI=5
  profiles now.

  02 Jan 2013; Mike Gilbert <floppym@gentoo.org> use.mask:
  Mask pypy-1.8 for removal.

  02 Jan 2013; Mike Gilbert <floppym@gentoo.org> use.mask:
  Unmask pypy targets.

  30 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Unmask sys-kernel/dracut[dracut_modules_systemd] (masked in base).

  30 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Unmask sys-kernel/dracut[dracut_modules_biosdevname] (masked in base).

  30 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Unmask zeitgeist-datasources[chromium,tomboy] (masked in base).

  27 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Add epiphany[jit] to webkit-gtk[jit] unmask.

  26 Dec 2012; Christoph Junghans <ottxor@gentoo.org> package.use.mask:
  unmasked openmm/mkl for sci-chemistry/gromacs

  19 Dec 2012; Sergey Popov <pinkbyte@gentoo.org> no-multilib/package.mask,
  no-multilib/package.use.mask, package.use.mask:
  Clean up deprecated masks, wrt bug #444181

  09 Dec 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask,
  use.mask:
  dev-lang/orc is used in many packages, so move orc from package.use.mask to
  use.mask

  30 Nov 2012; Christoph Junghans <ottxor@gentoo.org> package.use.mask:
  unmasked cuda for sci-chemistry/gromacs

  26 Nov 2012; Anthony G. Basile <blueness@gentoo.org> package.use.mask:
  No need to unmask net-misc/tor[nat-pmp,upnp] on amd64

  24 Nov 2012; Mike Gilbert <floppym@gentoo.org> use.mask:
  Unmask python_single_target_jython2_5

  12 Nov 2012; Mike Gilbert <floppym@gentoo.org> make.defaults:
  Move PYTHON_TARGETS=python3_2 from arch profiles to base.

  05 Nov 2012; Sergei Trofimovich <slyfox@gentoo.org> package.use:
  Fixed typo qemu_softmmu_target{,s}_.

  04 Nov 2012; Diego E. Pettenò <flameeyes@gentoo.org> package.use.mask:
  Unmask dane USE flag for net-libs/gnutls.

  29 Oct 2012; Doug Goldstein <cardoe@gentoo.org> +package.use:
  Add package.use so we can enable the native arch as the default qemu target
  for bug #437788

  07 Oct 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Restore USE="systemd" mask to sys-auth/polkit for stabilization.

  15 Sep 2012; Johannes Huber <johu@gentoo.org> package.use.mask:
  Masked media-libs/phonon[zeitgeist] for stabilization as the use flag pulls a
  dep tree of hell.

  22 Aug 2012; Mike Frysinger <vapier@gentoo.org> make.defaults:
  Update default CHOST for x32 targets.

  31 Jul 2012; Ralph Sennhauser <sera@gentoo.org> use.mask:
  Unmask python_targets_jython2_5 as it's available on amd64.

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

  29 Jun 2012; Mike Gilbert <floppym@gentoo.org> package.use.mask:
  Unmask libzfs flag for grub on amd64.

  26 Jun 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Mask USE=jit for qt-script wrt bug 423141.

  24 Jun 2012; Alexandre Rostovtsev <tetromino@gentoo.org>
  +no-multilib/package.use.force, no-multilib/package.mask,
  no-multilib/package.use.mask:
  Allow win64-only wine on amd64/no-multilib (bug #351436).

  14 Jun 2012; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Consolidate USE=jit masking/unmasking for qt-script and qt-webkit.

  31 May 2012; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  media-libs/mlt mmx code is compatible with x86_64 these days, remove that 5
  years old mask i added back then.

  25 May 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Remove webkit-gtk's USE mask, the flags are now masked in specific arches.

  24 May 2012; Arun Raghavan <ford_prefect@gentoo.org> package.use.mask:
  For PulseAudio, mask xen USE flag by default, unmask on x86/amd64 where it is
  supported.

  15 May 2012; Mike Gilbert <floppym@gentoo.org> make.defaults:
  Default PYTHON_TARGETS should include python-3 for arches where it is stable.
  See bug 415575.

  28 Apr 2012; Justin Lecher <jlec@gentoo.org> no-multilib/package.mask:
  Remove mask on app-text/bibus, noreason for that, #408247

  13 Apr 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Mask webkit-gtk[geoloc] in base and unmask on arches where app-misc/geoclue
  and app-accessibility/at-spi2-core are available.

  13 Apr 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Consolidate USE=systemd mask, and add gnome-system-monitor.

  12 Apr 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Temporary mask-in-base, unmask-in-arch for dev-python/mako keywording for
  gobject-introspection[doctool], bug #411761.

  11 Apr 2012; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Unmask USE=jit on libzpaq for x86/amd64.

  28 Mar 2012; Arun Raghavan <ford_prefect@gentoo.org> package.use.mask:
  webrtc-audio-processing is only supported on x86/amd64. Possibly arm can be
  added.

  27 Mar 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Allow networkmanager[systemd] on amd64.

  22 Mar 2012; Tim Harder <radhermit@gentoo.org> no-multilib/package.use.mask:
  Remove redundant use flag mask.

  18 Mar 2012; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove mask for USE="esd" because there is no such flag in tree anymore.

  17 Mar 2012; Tim Harder <radhermit@gentoo.org> no-multilib/package.use.mask:
  Mask USE="skype" for bitlbee on non-multilib systems.

  05 Mar 2012; Joerg Bornkessel <hd_brummy@gentoo.org> use.mask:
  dxr3 unmask, works with v4l2, #350211

  28 Feb 2012; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Remove mask for USE="vidix" because it's masked in base/use.mask. Remove
  obsolete mask for USE="asm".

  27 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> package.use.mask:
  Allow gnustep-make[libobjc2] on amd64

  11 Feb 2012; Sergei Trofimovich <slyfox@gentoo.org> no-multilib/package.mask:
  Mask skypetab-ng as it's a library for x86-only skype.

  10 Feb 2012; Matt Turner <mattst88@gentoo.org> no-multilib/use.mask:
  USE mask d3d on amd64/no-multilib since wine is 32-bit.

  08 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> package.use.mask:
  Drop arch-speficic mask on gnustep-base/gnustep-make[libobjc2]

  30 Jan 2012; Tupone Alfredo <tupone@gentoo.org> no-multilib/package.mask:
  Adding games-puzzle/drod-bin. Binary package 32 bits only

  09 Jan 2012; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Unmask USE="jit" for webkit-gtk (bug #396313).

  07 Dec 2011; Mike Frysinger <vapier@gentoo.org> make.defaults:
  Add settings for x32 ABI, and make amd64 explicit in case it is not the
  default ABI.

  29 Nov 2011; Davide Pesavento <pesa@gentoo.org> package.use.mask:
  Unmask USE="jit" for qt-webkit.

  21 Oct 2011; Kacper Kowalik <xarthisius@gentoo.org> package.use.mask:
  Drop hearbeat mask wrt #387685 by Marcin Mirosław <bug@mejor.pl>

  21 Oct 2011; Hans de Graaff <graaff@gentoo.org> use.mask:
  Unmask Rubinius since it is keyworded for amd64.

  21 Oct 2011; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Undo poorly thought out masking of USE="colord packagekit" on gtk+; need to
  get it keyworded properly (bug #387959)

  19 Oct 2011; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Unmask USE="colord" and "packagekit" for x11-libs/gtk+.

  16 Oct 2011; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE="bluray" for gnome-base/gvfs.

  14 Oct 2011; Mike Frysinger <vapier@gentoo.org> make.defaults:
  Drop unused ASFLAGS_x86 variable.

  03 Oct 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Mask USE="dxr3" again wrt #350211.

  29 Sep 2011; Diego E. Pettenò <flameeyes@gentoo.org> package.use.mask:
  Remove now-pointless masking of xfs USE flag on netatalk.

  29 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE="nls" for app-emulation/wine wrt #351224

  27 Sep 2011; Nirbheek Chauhan <nirbheek@gentoo.org> package.use.mask:
  Mask dev-libs/glib[systemtap] and unmask for amd64/x86, bug 384647

  18 Sep 2011; Maxim Koltsov <maksbotan@gentoo.org> no-multilib/package.mask:
  Mask 32bit only games-action/cs2d on no-multilib profile

  18 Sep 2011; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove obsolete USE="hal" mask for app-emulation/wine.

  26 Aug 2011; Tim Harder <radhermit@gentoo.org> package.use.mask:
  Remove USE="sse2" mask for libsoundtouch.

  29 Jul 2011; Kacper Kowalik <xarthisius@gentoo.org> package.use.mask:
  Mask dev-lang/path64[assembler] as it currently fails to build

  22 Jul 2011; Anthony G. Basile <blueness@gentoo.org> package.use.mask:
  Unmask USE="nat-pmp" and "upnp" here.

  20 Jul 2011; Jim Ramsay <lack@gentoo.org> package.use.mask:
  Unmask the KCM plugin (kde USE flag) for adobe-flash-11 and later which has a
  64-bit version

  15 Jul 2011; Kacper Kowalik <xarthisius@gentoo.org> no-multilib/package.mask:
  Fix adobe-flash pmask

  11 Jul 2011; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Unmask USE="opencl" here.

  11 Jul 2011; Robin H. Johnson <robbat2@gentoo.org> package.use.mask:
  unmask parse-clocks on x86/amd46 for ntp due to pps-tools.

  03 Jul 2011; Alexey Shvetsov <alexxy@gentoo.org> package.use.mask:
  unmask maui use flag for torque

  01 Jul 2011; Alexey Shvetsov <alexxy@gentoo.org> use.mask:
  use unmask infiniband on amd64

  10 Jun 2011; Markos Chandras <hwoarang@gentoo.org> package.use.mask:
  Unmasking firebird from qt-sql. Bug #337451

  07 Jun 2011; Bernard Cafarelli <voyageur@gentoo.org> package.use.mask:
  Allow libobjc2 USE-flag on gnustep-base/gnustep-make

  09 May 2011; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  use.mask:
  Remove video_cards_nouveau unmask, bug #364027.

  02 May 2011; Markos Chandras <hwoarang@gentoo.org> package.use.mask,
  use.mask:
  Keep firebird masked globally. Unmask it only for php

  01 May 2011; Markos Chandras <hwoarang@gentoo.org> use.mask:
  Move firebird to a more appropriate section

  01 May 2011; Markos Chandras <hwoarang@gentoo.org> use.mask:
  Unmasking firebird use flag. Bug #337451

  20 Apr 2011; Diego E. Pettenò <flameeyes@gentoo.org> package.use.force:
  Force minimal USE flag for new package to commit.

  15 Apr 2011; Christoph Mende <angelos@gentoo.org> no-multilib/package.mask,
  no-multilib/package.use.mask, package.use.mask:
  Cleaned up old package.use.mask and package.mask entries

  12 Apr 2011; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  Unmask orc USE flag on gst-plugins-bad

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

  31 Mar 2011; Tomáš Chvátal <scarabeus@gentoo.org> package.use.mask:
  xmame is no longer in portage

  30 Mar 2011; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  use.mask:
  Unmask video_cards_qxl

  28 Mar 2011; Luca Barbato <lu_zero@gentoo.org> package.use.mask:
  Unmask bluray and vdpau for mplayer2

  20 Mar 2011; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  Unmask orc USE flag on gst-plugins-good

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

  22 Feb 2011; Kacper Kowalik <xarthisius@gentoo.org> package.use.mask:
  Mask pacemaker-gui[heartbeat] since >=heartbeat-3.0 is still masked

  13 Feb 2011; Tim Harder <radhermit@gentoo.org> package.use.mask:
  Unmask bluray USE flag on mplayer

  30 Jan 2011; Arun Raghavan <ford_prefect@gentoo.org> package.use.mask:
  Unmask orc USE flag on gst-plugins-ffmpeg

  22 Jan 2011; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Update wine package.use.mask entry.

  19 Jan 2011; Markos Chandras <hwoarang@gentoo.org> package.use.mask:
  Masking md5sum use flag for mail-mta/ssmtp. Bug #244480

  10 Jan 2011; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask nls USE flag for wine until gettext is included in emul set (bug
  #351224).

  27 Dec 2010; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  Add gst-plugins-a52dec to the orc package.use.mask unmask set

  16 Dec 2010; Justin Lecher <jlec@gentoo.org> no-multilib/package.mask:
  Mask sci-chemistry/cyana for multilib as it depends on dev-lang/ifc

  28 Nov 2010; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Unmask mesa's llvm flag

  21 Nov 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask gstreamer USE flag on wine due bug #346077

  19 Nov 2010; Arun Raghavan <ford_prefect@gentoo.org> package.use.mask:
  Orc optimisations in gst-plugins-base work fine on amd64

  12 Nov 2010; Dane Smith <c1pher@gentoo.org> package.use.mask:
  Unmask valgrind USE flag for gnutls.

  08 Nov 2010; Alexey Shvetsov <alexxy@gentoo.org> no-multilib/use.mask:
  unmask wimax on 64bit

  18 Sep 2010; Samuli Suominen <ssuominen@gentoo.org>
  no-multilib/package.mask:
  Fix adobe-flash mask because 10.2 has 64bit support again.

  17 Sep 2010; Andrey Grozin <grozin@gentoo.org> package.use.mask:
  Unmasking the USE flag clozurecl for maxima (formerly it was openmcl)

  23 Aug 2010; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  make.defaults:
  Add VIDEO_CARDS="nouveau" to make.defaults

  22 Aug 2010; Mark Loeser <halcy0n@gentoo.org> -profile.bashrc:
  Remove profile.bashrc since it only did CFLAGS checks which shouldn't have
  existed to begin with; bug #296401

  19 Aug 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Remove USE="ao" mask for zsnes wrt #333497.

  11 Aug 2010; Mike Frysinger <vapier@gentoo.org> -package.mask:
  Drop hulu mask now that it has been switched to multilib.

  26 Jul 2010; Alexey Shvetsov <alexxy@gentoo.org> no-multilib/package.mask:
  Mask wimax stack on no-multilib systems

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

  17 Jul 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.force:
  Remove old USE="sse" force for libsoundtouch.

  05 Jul 2010; Mark Loeser <halcy0n@gentoo.org> +package.mask:
  adobe-flash-10.0 has been masked for security reasons, which huludesktop
  depends upon

  01 Jul 2010; Kacper Kowalik <xarthisius@gentoo.org> package.use.mask:
  Correct masking sys-cluster/pacemaker[heartbeat]

  01 Jul 2010; Kacper Kowalik <xarthisius@gentoo.org> package.use.mask:
  Masking sys-cluster/pacemaker[heartbeat]

  27 Jun 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE="mp3" for app-emulation/wine because
  emul-linux-x86-soundlibs-20100611 is stable and has working libmpg123.so
  for multilib.

  26 Jun 2010; Nirbheek Chauhan <nirbheek@gentoo.org> package.use.mask:
  Forgot to unmask icecat too

  26 Jun 2010; Nirbheek Chauhan <nirbheek@gentoo.org> package.use.mask:
  Unmask USE=ipc for firefox/xulrunner on amd64 due to bug 325185

  13 Jun 2010; Dror Levin <spatz@gentoo.org> use.mask:
  Remove vpx USE unmask.

  12 Jun 2010; Dror Levin <spatz@gentoo.org> use.mask:
  Unmask amd64/x86 only vpx for now.

  12 May 2010; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  unmask dev-libs/udis86 test after adding patch to make yasm optional

  10 May 2010; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  unmask dev-libs/udis86 test

  03 May 2010; Alex Legler <a3li@gentoo.org> use.mask:
  Unmask ruby_targets_ree18

  13 Apr 2010; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  unmask video_cards_nouveau

  22 Mar 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE="jpeg" for app-emulation/wine since emul- 20100220 is stable.

  16 Mar 2010; Vlastimil Babka <caster@gentoo.org> no-multilib/package.mask:
  Package move x11-misc/googleearth sci-geosciences/googleearth.

  14 Mar 2010; Samuli Suominen <ssuominen@gentoo.org>
  no-multilib/package.mask:
  Unmask snes9x-1.52.

  07 Mar 2010; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Unmask x86_* flags sse3, sse4, sse4a, and sse5.

  07 Mar 2010; Justin Lecher <jlec@gentoo.org>
  no-multilib/package.mask:
  Masked sci-chemistry/cara-bin for no-multilib -> binary package which
  needs emul*

  24 Feb 2010; Justin Lecher <jlec@gentoo.org>
  no-multilib/package.mask:
  Masked sci-chemistry/mars for non multilib as it only provides 32bit
  binaries

  21 Feb 2010; Samuli Suominen <ssuominen@gentoo.org>
  no-multilib/package.mask:
  Sync with features/64bit-native/package.mask.

  20 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Unmask sane_backends_qcam here; masked in base.

  14 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> use.mask:
  Unmask SANE_BACKENDS="canon_pp hpsj5s mustek_pp" here.

  14 Feb 2010; Raúl Porcel <armin76@gentoo.org> no-multilib/package.mask:
  p.mask openocd

  06 Feb 2010; Justin Lecher <jlec@gentoo.org>
  no-multilib/package.use.mask:
  USE="icc" masked from sci-biology/fasta as icc relies on multilib

  02 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Update app-emulation/wine wrt #299149.

  02 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> package.use.force:
  Remove unrequired skype mask.

  24 Jan 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask esd USE flag for wine since esound is not longer provided in emul-
  set

  08 Jan 2010; Diego E. Pettenò <flameeyes@gentoo.org> use.mask:
  Unmask JRuby target.

  03 Jan 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask wine's capi USE flag since its support is missing in our emul
  packages

  22 Dec 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE mmx for media-video/mjpegtools wrt #294909.

  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

  06 Nov 2009; Alexey Shvetsov <alexxy@gentoo.org> no-multilib/package.mask:
  Mask icm and icm-browser

  23 Oct 2009; Samuli Suominen <ssuominen@gentoo.org>
  no-multilib/package.use.mask:
  USE mask ipp for no-multilib because sci-libs/ipp is package.masked too.

  23 Oct 2009; Sébastien Fabbro <bicatali@gentoo.org>
  no-multilib/package.mask:
  Masked sci-libs/ipp for no-multilib until we have a ipp without icc

  01 Oct 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Mask app-emulation/wine[openal] wrt #286625.

  30 Sep 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Mask app-emulation/wine[jpeg] wrt #283089.

  23 Sep 2009; Jean-Noël Rivasseau <elvanor@gentoo.org> package.use.mask:
  X use flag only for amd64/x86, bug 285951.

  14 Sep 2009; Tristan Heaven <nyhm@gentoo.org> no-multilib/package.mask:
  Mask games-strategy/defcon-demo

  08 Sep 2009; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  Mask wine[gsm] because there are no 32bit libraries provided at the
  moment, bug 283875

  06 Sep 2009; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  Mask wine[mp3] because there are no 32bit libraries provided at the
  moment, bug 283860

  05 Sep 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>
  ChangeLog:
  Dropped the package.mask file now that the KDE-4.3 mask has been dropped
  from base/package.mask.

  02 Sep 2009; Tristan Heaven <nyhm@gentoo.org> no-multilib/package.mask:
  Remove old games-puzzle/world-of-goo{,-demo} versions

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

  07 Aug 2009; Theo Chatzimichos <tampakrap@gentoo.org> package.mask:
  Initial commit of package.mask file for amd64, with an entry of unmasked
  kde 4.3.0 for amd64 as it is properly keyworded there, under darkside's
  permission

  15 Jul 2009; Tristan Heaven <nyhm@gentoo.org> no-multilib/package.mask:
  Adjust games-puzzle/world-of-goo{,-demo} masks, bug #277881

  21 Jun 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Unmask USE="mmx sse 3dnow 3dnowext" for >= mpg123-1.8.1.

  20 Jun 2009; Samuli Suominen <ssuominen@gentoo.org>
  no-multilib/package.mask:
  Remove anubis because it has been removed from tree.

  18 Jun 2009; Dawid Węgliński <cla@gentoo.org> package.use.mask:
  Move mask from profiles/default/linux/amd64/package.use.mask (#273932)

  06 Jun 2009; Jeremy Olexa <darkside@gentoo.org> no-multilib/package.mask:
  remove media-video/dvdrip from no-multilib pmask based on a user report, bug
  267932

  11 May 2009; Samuli Suominen <ssuominen@gentoo.org> package.use.mask:
  Broken SSE2 detection in libsoundtouch for x86_64 wrt #262405

  20 Mar 2009; Bernard Cafarelli <voyageur@gentoo.org> package.use.mask:
  Mask s3 USE flag for app-backup/backup-manager, required dependencies are
  not ~amd64 yet

  07 Feb 2009; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  mask USE=mmx on imlib2 again, it causes problems with other apps. bug 218382

  05 Feb 2009; Serkan Kaba <serkan@gentoo.org> package.use.mask:
  Unmask nsplugin for >=dev-java/sun-jre-bin-1.6.0.12

  24 Jan 2009; Christoph Mende <angelos@gentoo.org> package.use.mask:
  Added LDAP to wine's USE mask (bug 256105)

  21 Jan 2009; Markus Meier <maekke@gentoo.org> package.mask:
  mask some unported x11-libs/qt-4.4* packages for a smooth upgrade wrt bug
  #248038

  18 Jan 2009; Markus Meier <maekke@gentoo.org> package.mask:
  mask this version for a smooth upgrade wrt bug #248038

  30 Dec 2008; Christoph Mende <angelos@gentoo.org>
  no-multilib/package.mask:
  Unmasked vmware-workstation-6.5 on no-multilib

  27 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  Add header to package.use.mask and mask USE=static for
  >=app-arch/p7zip-4.58, bug 236591

  24 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  re-add flags that I nuked by accident because they were under a mis-leading
  comment - bug #246144

  23 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.mask:
  clean for non-existant packages

  23 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  clean for non-existant package

  21 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  clean up package.use.mask for unneeded entries

  21 Dec 2008; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  Remove USE=mmx mask for imlib2, see bug 218382

  19 Dec 2008; Christoph Mende <angelos@gentoo.org>
  no-multilib/package.mask:
  Unmasked >=net-www/netscape-flash-10.0.20.7_alpha on no-multilib

  12 Dec 2008; Vlastimil Babka <caster@gentoo.org> package.use.mask:
  Unmask nsplugin for >=dev-java/sun-jdk-1.6.0.12_beta2.

  01 Dec 2008; <ssuominen@gentoo.org> no-multilib/package.mask,
  no-multilib/package.use.mask:
  Unmask rar-3.8.0 and above since it's a native 64bit binary.

  09 Nov 2008; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Fix masking of mplayer

  09 Nov 2008; Steve Dibb <beandog@gentoo.org> package.use.mask:
  Unmask mplayer bindist use flag for amd64

  05 Nov 2008; Steve Dibb <beandog@gentoo.org> package.use.mask:
  Remove real unmask, bug 245662

  28 Oct 2008; Diego Pettenò <flameeyes@gentoo.org> package.use.mask:
  Add gnutls to wine's masked USE flags.

  27 Oct 2008; Mike Frysinger <vapier@gentoo.org> use.mask:
  Unmask lilo.

  30 Sep 2008; Diego Pettenò <flameeyes@gentoo.org>
  no-multilib/package.mask:
  Mask sunstudioexpress on non-multilib profiles.

  17 Sep 2008; Santiago M. Mola <coldwind@gentoo.org> package.use.force:
  x86emu is the only backend available for amd64 (bug #224987)

  12 Sep 2008; Jeremy Olexa <darkside@gentoo.org> no-multilib/package.mask:
  add games-strategy/smac to no-multilib mask

  24 Aug 2008; Marijn Schouten <hkBst@gentoo.org> use.mask:
  don't use mask mzscheme anymore, dev-libs/mzscheme has been integrated
  into dev-scheme/drscheme and builds fine on amd64

  23 Aug 2008; Markus Meier <maekke@gentoo.org> no-multilib/package.mask:
  mask app-emulation/ies4linux for bug #218667

  16 Aug 2008; Robert Buchholz <rbu@gentoo.org>
  no-multilib/package.use.mask:
  use mask snes for freevo on no-multilib profiles

  16 Aug 2008; Robert Buchholz <rbu@gentoo.org> package.use.mask:
  Unmask tls for kaa-base

  10 Aug 2008; Markus Ullmann <jokey@gentoo.org> no-multilib/package.mask:
  Mask app-emulation/virtualbox-guest-additions on no-multilib profile

  08 Aug 2008; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask mmx for lame, refs bug #93279

  24 Jul 2008; Santiago M. Mola <coldwind@gentoo.org>
  no-multilib/package.mask:
  Remove media-sound/peercast from no-multilib p.masks, bug #232800.

  20 Jul 2008; Serkan Kaba <serkan@gentoo.org> package.use.mask:
  Add app-text/enchant:zemberek unmask.

  10 Jul 2008; Thomas Anderson <gentoofan23@gentoo.org>
  package.use.mask, no-multilib/package.use.mask:
  Unmask ia32 USE flag for www-client/opera for amd64 multilib
  profiles.

  06 Jun 2008; Rémi Cardona <remi@gentoo.org> package.mask:
  pkgmove to gnome-base/gnome-control-center

  30 Apr 2008; Sébastien Fabbro <bicatali@gentoo.org>
  no-multilib/package.use.mask:
  Added masked ifc flag for no-multilib on sci-libs/acml

  21 Apr 2008; Santiago M. Mola <coldwind@gentoo.org> package.mask:
  Add ->=net-im/telepathy-mission-control-4.65 to Gnome 2.22 mask.

  11 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org>
  no-multilib/package.mask:
  Sync no-multilib/package.mask from default-linux.

  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.

  04 Apr 2008; Torsten Veller <tove@gentoo.org> no-multilib/package.mask:
  Removed mask for mail-client/ciphire-mail (#213349)

  03 Apr 2008; Mart Raudsepp <leio@gentoo.org> package.mask:
  Unmask GNOME-2.22 on amd64

