# ChangeLog for Gentoo/ARM profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/arch/arm/ChangeLog,v 1.278 2013/11/10 15:47:03 chithanh Exp $

  10 Nov 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask, use.mask:
  Adjust llvm masks in preparation for global llvm USE flag unmasking.

  31 Oct 2013; Benda Xu <heroxbd@gentoo.org> package.use.mask:
  mask USE gtk and guionly of net-p2p/mldonkey, bug #487722

  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.

  05 Oct 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask net-misc/tigervnc[java] for all versions, bug #485436

  15 Sep 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask dev-python/ipython[nbconvert], bug #481462

  15 Sep 2013; Johannes Huber <johu@gentoo.org> package.use.mask:
  Mask use kde-base/solid-runtime[networkmanager], unkeyworded dep
  kde-misc/networkmanagement.

  06 Sep 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Mask USE-flag hdf on dev-perl/PDL

  31 Aug 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Remove games USE-flag mask for gnome-base/gnome-extra-apps, bug #476710

  24 Aug 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  remove kde-base/kdepim-runtime[facebook] package.use.mask, bug #481088

  24 Aug 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  remove kde-base/nepomuk-core[epub] package.use.mask, bug #481092

  24 Aug 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  remove dev-db/mysql[systemtap] and dev-db/mariadb[systemtap]
  package.use.mask, bug #351931

  23 Aug 2013; Michael Weber <xmw@gentoo.org> package.use.mask:
  Maskung unkeyworded deps of media-gfx/fim

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

  15 Aug 2013; Tom Wijsman <TomWij@gentoo.org> package.mask:
  =sys-kernel/gentoo-sources-3.4.58: Broken due to not building patches that
  upstream slipped through.

  14 Aug 2013; Andreas K. Huettel <dilfridge@gentoo.org> package.use.mask:
  mask ebook support of nepomuk-core until keyworded

  14 Aug 2013; Andreas K. Huettel <dilfridge@gentoo.org> package.use.mask:
  mask facebook support of kdepim-runtime until keyworded

  13 Aug 2013; Markus Meier <maekke@gentoo.org> package.mask:
  remove texive-2013 mask, as dev-texlive/texlive-langeuropean-2013 is
  keyworded now, bug #475124

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

  04 Aug 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask app-admin/conky flags with unkeyworded deps for bug #474026

  02 Aug 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask media-libs/libjpeg-turbo[java] for all versions

  30 Jul 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Mask some of untested features of media-libs/devil

  23 Jul 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Add dev-libs/protobuf[java]

  21 Jul 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  add =dev-libs/cyrus-sasl-2.1.26-r3 and =dev-libs/cyrus-sasl-2.1.23-r7
  to the existing mask

  16 Jul 2013; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  Remove obsolete masks from gnome-3.2 era

  13 Jul 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Drop wayland mask as wayland is now keyworded.

  13 Jul 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask rdp flag for dev-libs/weston.

  07 Jul 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Remove the version from cups to cover the next stable

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

  16 Jun 2013; Alexandre Rostovtsev <tetromino@gentoo.org> use.mask:
  Unmask networkmanager USE flag - it has been keyworded since February 2013.

  07 Jun 2013; Jeroen Roovers <jer@gentoo.org> package.use.mask:
  Remove versions from libidn USE mask.

  31 May 2013; Patrick Lauer <patrick@gentoo.org> package.use.mask:
  Masking java useflag for tightvnc to avoid stable keyword problems #469540

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

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

  27 May 2013; Andreas K. Huettel <dilfridge@gentoo.org> package.use.mask:
  Mask firmware loader support of linux-gpib since that is not keyworded yet

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

  12 May 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  drop media-libs/gst-plugins-base[ivorbis] mask as media-libs/tremor has ~arm

  12 May 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Add dev-util/oprofile[java] to the list

  11 May 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask x11-wm/enlightenment[emotion]

  10 May 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask dev-python/ipython[mongodb]

  09 May 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask x11-misc/lightdm[razor]

  05 May 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Mask dev-libs/libmemcached[tcmalloc] because dev-util/google-perftools is not
  keyworded for arm

  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.

  02 May 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask r600-llvm-compiler on arm

  29 Apr 2013; Christoph Junghans <ottxor@gentoo.org> package.use.mask:
  masked mkl for media-gfx/povray

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

  21 Apr 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Remove the version from dev-vcs/subversion

  21 Apr 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Remove the version from dev-tex/tex4ht

  01 Apr 2013; Benda Xu <heroxbd@gentoo.org> package.use.mask:
  mask net-misc/unison[gtk] for bug #445055

  24 Mar 2013; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask sys-devel/gettext-0.18.2[java] for bug #460792

  18 Mar 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask:
  Mask dev-libs/xapian-bindings[java]

  27 Feb 2013; Mike Frysinger <vapier@gentoo.org> package.use.mask:
  Unmask USE=llvm for newer mesa.

  25 Feb 2013; Mike Frysinger <vapier@gentoo.org> use.mask:
  Mask USE=doomsday since we just want the data.

  25 Feb 2013; Mike Frysinger <vapier@gentoo.org> use.mask:
  Unmask USE=dri for ARM devices since it works.

  20 Feb 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask one more flag of calligra

  20 Feb 2013; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask flags of calligra and dependencies due to lack of keywords

  16 Feb 2013; Eray Aslan <eras@gentoo.org> package.use.mask:
  Mask =dev-libs/cyrus-sasl-2.1.25-r4 java

  10 Feb 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.mask:
  Mask =dev-libs/xapian-bindings-1.2.12-r1 cause it becomes stable wrt bug
  #456550

  08 Feb 2013; Agostino Sarubbo <ago@gentoo.org> package.mask:
  Remove KDE SC 4.10.0, wrt to bug #455960

  07 Feb 2013; Alexey Shvetsov <alexxy@gentoo.org> package.mask:
  Mask KDE SC 4.10.0 for keywording bug #455960

  05 Feb 2013; Rick Farina <zerochaos@gentoo.org> use.mask package.use.mask:
  removing java use mask, jre 1.6 is now available, 1.7 is next
  adjust package.use.mask to keep the mask on stable packages with
  java use flag

  02 Feb 2013; Agostino Sarubbo <ago@gentoo.org> package.use.mask, use.mask:
  add -zeitgeist to use.mask and remove gnome-base/nautilus-3[sendto]

  01 Feb 2013; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Mask dev-python/numpy[lapack] because of missing keywords on virtual/cblas,
  bug #455050.

  29 Jan 2013; Sergey Popov <pinkbyte@gentoo.org> package.mask,
  package.use.mask:
  Masks cleanup, wrt bug #444181

  26 Jan 2013; Christoph Junghans <ottxor@gentoo.org> use.mask:
  unmasked lapack

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

  20 Jan 2013; Robin H. Johnson <robbat2@gentoo.org> package.use.mask:
  tcmalloc now available on arm.

  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.

  04 Jan 2013; Raúl Porcel <armin76@gentoo.org> armv6j/make.defaults,
  armv7a/make.defaults:
  Update armv6j/armv7a make.defaults to note that the default is hardfloat

  04 Jan 2013; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Move contents from default/linux/arm/10.0/package.use.mask to here, its
  proper place

  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; 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:
  Mask dev-util/dbus-test-runner[test]: it requires dev-util/bustle which is
  written in haskell.

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

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

  26 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/smokeqt[qscintilla,qwt] and
  kde-base/qtruby[qscintilla,qwt]

  25 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/smokeqt qscintilla[qwt]

  25 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask unkeyworded deps for app-accessibility/speech-dispatcher

  25 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kdesdk-misc[extras]

  24 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kdenetwork-meta[ppp]

  24 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kdeutils-meta[floppy]

  24 Dec 2012; Mike Frysinger <vapier@gentoo.org> armv6j/make.defaults,
  armv7a/make.defaults:
  Drop -mfpu/-mfloat-abi flags as toolchain.eclass takes care of setting sane
  defaults based on $CHOST #448126.

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kstars[indi]

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/okular[ebook,chm]

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kdeplasma-addons[fcitx,oauth,qwt,scim]

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/kopete[jingle,msn,sms]

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask kde-base/krdc[rdesktop]

  23 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  mask kde-base/kalzium flags due to unkeyworded dependencies

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

  08 Dec 2012; Markus Meier <maekke@gentoo.org> use.mask:
  unmask synaptics input driver

  08 Dec 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  mask app-office/libreoffice java extensions

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

  11 Nov 2012; Anthony G. Basile <blueness@gentoo.org> +package.use.force:
  Force USE=gdm for xscreensave to avoid unstable lightdm and kdm

  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

  17 Oct 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask net-libs/libproxy/libproxy-0.4.10[spidermonkey]

  17 Oct 2012; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask csharp

  17 Oct 2012; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask ace

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

  01 Oct 2012; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Remove systemd[http] mask, libmicrohttpd keyworded now.

  30 Sep 2012; Michał Górny <mgorny@gentoo.org> package.use.mask:
  Mask systemd[http] due to non-keyworded dep.

  24 Sep 2012; Mike Frysinger <vapier@gentoo.org> package.use.mask:
  Drop old alsa/webm masks #433930.

  16 Sep 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Revert part of last commit, better wait for package.use.stable.mask

  16 Sep 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Unmask java, bug #305773.

  05 Aug 2012; Raúl Porcel <armin76@gentoo.org> make.defaults, use.mask:
  Unmask video_cards_omap and add exynos and omap to VIDEO_CARDS

  25 Jul 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask vlc for media-libs/phonon, bug #401313

  24 Jul 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> use.mask:
  Mask video_cards_radeonsi flag

  23 Jul 2012; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask anthy, bug #424329

  17 Jul 2012; Anthony G. Basile <blueness@gentoo.org> package.use.mask:
  Mask net-libs/cyassl[aes-ni] on arm

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

  27 Jun 2012; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask devil and gts, bug #419621

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

  02 Jun 2012; Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
  package.use.mask:
  Mask udis86 flag for llvm, which is of limited use outside x86/amd64.

  15 May 2012; Benda Xu <heroxbd@gentoo.org> use.mask:
  unmask ocamlopt on arm, as per bug 340607. Thanks to Josh Parsons

  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.

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

  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. Also remove dead radeonhd mask.

  05 Feb 2012; Markus Meier <maekke@gentoo.org> use.mask:
  remove ruby19 mask, bug #332593

  05 Feb 2012; Markus Meier <maekke@gentoo.org> package.use.mask:
  update x11-misc/colord gusb use-mask to match only stable version

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

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

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

  27 Nov 2011; Alexandre Rostovtsev <tetromino@gentoo.org> package.use.mask:
  package.use.masked colord[gusb], needs libgusb keyworded (bug #392057).

  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

  06 Nov 2011; Markus Meier <maekke@gentoo.org> use.mask:
  remove colord use.mask, bug #387959

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

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

  22 Oct 2011; Matt Turner <mattst88@gentoo.org> use.mask:
  un-use.mask arm's iwmmxt flag.

  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="packagekit" for x11-libs/gtk+.

  11 Sep 2011; Andreas K. Huettel <dilfridge@gentoo.org> package.mask:
  Remove the kde-4.7 mask as it is not needed anymore; keywording describes a
  consistent package set

  11 Sep 2011; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask mssql, bug #381709

  07 Sep 2011; Alexey Shvetsov <alexxy@gentoo.org> package.mask:
  Update kde mask

  05 Sep 2011; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask some unkeyworded deps for bug 379657 and bug 379651

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

  14 Aug 2011; Markus Meier <maekke@gentoo.org> use.mask:
  remove -neon from common use.mask since it's unmasked in armv7a subprofile

  14 Aug 2011; Markus Meier <maekke@gentoo.org> +armv4/make.defaults,
  +armv4/parent, +armv4t/make.defaults, +armv4t/parent, +armv5te/make.defaults,
  +armv5te/parent, +armv6j/make.defaults, +armv6j/parent,
  +armv7a/make.defaults, +armv7a/parent, +armv7a/use.mask:
  add armv4, armv4t, armv5re, armv6j and armv7a subprofiles

  06 Aug 2011; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Use.mask alsa webm for xulrunner-2 and firefox-5

  28 Jul 2011; Andreas K. Huettel <dilfridge@gentoo.org> package.mask:
  Add kde-base/kdepim-l10n to kde-4.7 package mask

  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; Ulrich Mueller <ulm@gentoo.org> -virtuals:
  Remove old-style virtual/linux-sources, bug 118442.

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

  14 Apr 2011; Tomáš Chvátal <scarabeus@gentoo.org> package.mask:
  Drop useless kde mask.

  08 Apr 2011; Andreas K. Huettel <dilfridge@gentoo.org> package.use.mask:
  Masked qscintilla useflag for pykde4, bug 362305

  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> use.mask:
  Use.mask dvb

  13 Mar 2011; Markus Meier <maekke@gentoo.org> package.use.mask:
  remove net-firewall/iptables[netlink] mask wrt bug #354309

  13 Mar 2011; Markus Meier <maekke@gentoo.org> package.use.mask:
  package.use.mask sys-auth/polkit[kde], needs stable kde

  04 Mar 2011; Alexey Shvetsov <alexxy@gentoo.org> +package.mask:
  mask kde use for bug #357403

  04 Mar 2011; Alexey Shvetsov <alexxy@gentoo.org> package.use.mask:
  mask kde use for bug #357403

  20 Feb 2011; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask pdfannotextractor (needs java)

  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.

  14 Jan 2011; Justin Lecher <jlec@gentoo.org> package.use.mask:
  Mask app-misc/nut with USE=X as x11-libs/fltk is not keyworded

  02 Jan 2011; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask upnp

  08 Dec 2010; Raúl Porcel <armin76@gentoo.org> make.defaults:
  Add omapfb

  08 Dec 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask omapfb

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

  21 Nov 2010; Ryan Hill <dirtyepic@gentoo.org> use.mask:
  Mask lpsol USE flag, needs sci-mathematics/glpk.

  10 Nov 2010; Markus Meier <maekke@gentoo.org> package.use.mask:
  remove buildbot{,-slave}[test] mask, as dev-python/mock is keyworded

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

  30 Oct 2010; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask libvirt

  29 Oct 2010; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask oracle, bug #341965

  15 Oct 2010; Markus Meier <maekke@gentoo.org> -package.mask:
  unmask kde-4.5, remove emtpy package.mask file

  15 Oct 2010; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask plotutils and google-gadgets

  14 Oct 2010; Markus Meier <maekke@gentoo.org> use.mask:
  mask iplayer USE-flag

  11 Oct 2010; Markus Meier <maekke@gentoo.org> use.mask:
  use.mask frei0r

  27 Aug 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask dvb, bug #327585

  22 Aug 2010; Markus Meier <maekke@gentoo.org> use.mask:
  mask wimax USE

  21 Aug 2010; Markus Meier <maekke@gentoo.org> use.mask:
  mask clamav USE

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

  15 Aug 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Unmask virtuoso use-flag from dev-libs/soprano, unmask bluetooth
  from ofono

  09 Aug 2010; Kacper Kowalik <xarthisius@gentoo.org> use.mask:
  Mask cblas-external

  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> use.mask:
  Use.mask ipod

  18 Jul 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask v4l/v4l2

  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; 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 arm due to bug 325185

  13 Jun 2010; Pacho Ramos <pacho@gentoo.org> package.use.mask:
  Mask gnome-base/gvfs bluetooth USE flag until bug 305913 is fixed.

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

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

  10 May 2010; Markus Meier <maekke@gentoo.org> package.mask:
  remove libpng-1.4 mask as texlive-2009 is unmasked

  10 May 2010; Markus Meier <maekke@gentoo.org> package.mask:
  unmask texlive-2009

  22 Apr 2010; Alexis Ballier <aballier@gentoo.org> package.use.mask:
  mask vlc[projectm], bug #314969

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

  17 Apr 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Move fits from p.use.mask to use.mask

  05 Apr 2010; Markus Meier <maekke@gentoo.org> package.use.mask:
  drop dev-python/PyQt4[multimedia] mask as it's keyworded now

  04 Apr 2010; Jeremy Olexa <darkside@gentoo.org> package.use.mask:
  mask net-misc/mediatomb[lastfm] as lastfmlib isn't keyworded

  02 Apr 2010; Markus Meier <maekke@gentoo.org> package.use.mask:
  mask media-gfx/ufraw[fits] as it isn't keyworded

  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

  15 Feb 2010; Mark Loeser <halcy0n@gentoo.org> package.use.mask:
  Mask bluetooth for net-misc/ofono since we need >=net-wireless/bluez-4.61

  12 Feb 2010; Samuli Suominen <ssuominen@gentoo.org> package.mask:
  Mask KDE 4.4.0 also here because of ~arm in kdelibs.

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

  07 Feb 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask dvd

  01 Feb 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask bs2b toolame ladspa ggi nut xanim

  27 Jan 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask darcs

  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

  23 Jan 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask kde

  20 Jan 2010; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask thumbnail for konqueror and dolphin since it needs
  mplayer

  20 Jan 2010; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask pm-utils, wicd and unmask webkit

  27 Dec 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  P.use.mask app-portage/cfg-update kde

  25 Dec 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask debug-utils

  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

  05 Nov 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add sctp to use.mask

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

  27 Sep 2009; Markus Meier <maekke@gentoo.org> package.use.mask:
  mask media-gfx/imagemagick[autotrace] as autotrace is unkeyworded

  24 Sep 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask ieee1394

  20 Sep 2009; Markus Meier <maekke@gentoo.org> use.mask:
  remove kate USE-mask

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

  22 Jul 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask mtp

  30 Jun 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask:
  Package.use.mask media-plugins/gst-plugins-meta lame taglib

  30 Jun 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask libmms and sid

  07 Jun 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask prolog

  28 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask qt4

  17 May 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add webkit to use.mask, if you tested it and it works, let me know

  23 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Unmask libssh2

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

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

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

  06 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add mpi and lasi to use.mask

  05 Apr 2009; Raúl Porcel <armin76@gentoo.org> -package.mask:
  Remove gnome-2.22 mask

  05 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask gnomecd

  04 Apr 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask zvbi, kate, v4l, v4l2, dvd, fluidsynth

  30 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add madwifi to use.mask

  14 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask xfs, as xfs doesn't work too well on arm

  14 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask cupsddk

  13 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Masking a lot of video_cards which i doubt are available on ARM

  12 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add video_cards_radeonhd and video_cards_ast to use.mask

  11 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add lyx to use.mask

  10 Mar 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add xindy to use.mask

  20 Feb 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask scanner, no hardware to test

  06 Feb 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Use.mask xemacs, not keyworded

  19 Jan 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Some reordering, and use.mask tracker, fuse, gphoto2 and laptop

  16 Jan 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Use.mask chicken, clisp, R, octave

  15 Jan 2009; Raúl Porcel <armin76@gentoo.org> package.use.mask, use.mask:
  Move dvb and mythtv p.use.mask to use.mask

  01 Jan 2009; Raúl Porcel <armin76@gentoo.org> use.mask:
  Add openexr to use.mask as it fails to work

  05 Nov 2008; Jim Ramsay <lack@gentoo.org> package.use.mask:
  app-admin/gkrellm may pull in net-libs/libntlm, which is not keyworded

  22 Aug 2008; Mart Raudsepp <leio@gentoo.org> +package.mask:
  Mask GNOME-2.22 here in preparation of removing the global one

  11 Apr 2008; Chris Gianelloni <wolf31o2@gentoo.org> use.mask:
  Sync use.mask with 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.

  02 Apr 2008; Mart Raudsepp <leio@gentoo.org> package.use.mask:
  USE mask dvb and mythtv on gst-plugins-meta - dependencies not keyworded

  02 Apr 2008; Mart Raudsepp <leio@gentoo.org> use.mask:
  Mask networkmanager USE flag - no version of it keyworded

