# ChangeLog for Gentoo eapi-5-files profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/eapi-5-files/ChangeLog,v 1.29 2013/11/16 19:08:50 mgorny Exp $

  16 Nov 2013; Michał Górny <mgorny@gentoo.org> package.use.stable.mask:
  Un-stable-mask all Python impls on python-exec. We are forcing them anyway,
  and users are having issues due to un-masking them manually.

  28 Oct 2013; Sergey Popov <pinkbyte@gentoo.org> package.use.stable.mask:
  Stable-mask USE 'cman' for sys-cluster/pacemaker

  03 Oct 2013; Alexandre Rostovtsev <tetromino@gentoo.org>
  package.use.stable.mask:
  We want to stabilize libsecret before gnome-keyring-3.

  03 Oct 2013; Alexandre Rostovtsev <tetromino@gentoo.org>
  package.use.stable.mask:
  Allow zukitwo to be stabilized before gnome-shell

  26 Sep 2013; Mike Gilbert <floppym@gentoo.org> package.use.stable.mask:
  Remove the pillow mask (again).

  26 Sep 2013; Ian Delaney <idella4@gentoo.org> package.use.stable.mask:
  Remove invalid entry for xen-tools-4.2.1-r3 which was removed
  04 Jul 2013 on stabilising xen-tools-4.2.2-r3.ebuild; see
  Bug #484524

  21 Sep 2013; Mike Gilbert <floppym@gentoo.org> package.use.stable.mask:
  Stable-mask sys-boot/grub[libzfs]

  08 Sep 2013; Mike Gilbert <floppym@gentoo.org> package.use.stable.mask:
  Unmask python3 for virtual/python-imaging.

  31 Aug 2013; Agostino Sarubbo <ago@gentoo.org> package.use.stable.mask:
  mask app-portage/eix[clang]

  23 Aug 2013; Agostino Sarubbo <ago@gentoo.org> use.stable.mask:
  Remove php_targets_php5-5, php:5.5 is now stable on all arches

  15 Aug 2013; Alexandre Rostovtsev <tetromino@gentoo.org>
  package.use.stable.mask:
  Allow gvfs-1.14.2 to be stabilized before libsecret

  02 Aug 2013; Samuli Suominen <ssuominen@gentoo.org> package.use.stable.mask:
  Mask sys-fs/lvm2[clvm,cman] until they are actively maintained and in stable.
  This used to be in base/package.use.mask before.

  06 Jul 2013; Agostino Sarubbo <ago@gentoo.org> use.stable.mask:
  Systemd is now stable, removing the mask

  02 Jul 2013; Agostino Sarubbo <ago@gentoo.org> package.use.stable.mask:
  Add ocaml to app-emulation/xen-tools

  09 Jun 2013; Mike Gilbert <floppym@gentoo.org> package.use.stable.mask:
  Stable mask python 3.2 and 3.3 for virtual/python-imaging.

  30 May 2013; Justin Lecher <jlec@gentoo.org> package.use.stable.mask:
  Additionally mask USE=hvm for app-emulation/xen-tools as it depends on masked
  USE=qemu, #471122

  24 May 2013; Agostino Sarubbo <ago@gentoo.org> package.use.stable.mask:
  Mask >=app-emulation/xen-tools-4.2.1-r3[qemu] because of texinfo-5

  10 May 2013; Johannes Huber <johu@gentoo.org> package.use.stable.mask:
  Move use mask on net-libs/libkolabxml[php], net-libs/libkolab[php] to stable
  for easier testing bug #430858.

  30 Apr 2013; Alexandre Rostovtsev <tetromino@gentoo.org> use.stable.mask:
  Temporarily stable.mask PYTHON_TARGETS=python3_3 and
  PYTHON_SINGLE_TARGET=python3_3 for convenience of python:3.3 testers since
  python:3.3 is masked and certainly not stable (bug #467894).

  12 Apr 2013; Samuli Suominen <ssuominen@gentoo.org> package.use.stable.mask:
  Move app-pda/gtkpod[cdr] mask from base/package.use.mask to here.

  01 Apr 2013; Agostino Sarubbo <ago@gentoo.org> package.use.stable.mask:
  Revert www-client/chromium[gps] stable mask since now
  =sci-geosciences/gpsd-3.7 is stable

  28 Mar 2013; Andreas K. Huettel <dilfridge@gentoo.org>
  package.use.stable.mask:
  Mask editor flag of kde-base/kalzium

  27 Mar 2013; Mike Gilbert <floppym@gentoo.org> package.use.stable.mask:
  Stable-mask www-client/chromium[gps]

  02 Mar 2013; Michał Górny <mgorny@gentoo.org> -use.mask:
  Use stable-masking only for systemd. Masking it for old profiles is too
  troublesome (overrides arch-specific masks).

  24 Feb 2013; Michał Górny <mgorny@gentoo.org> +use.mask, use.stable.mask:
  Unmask systemd flag for testing and mask for stable.

  16 Feb 2013; Maxim Koltsov <maksbotan@gentoo.org> package.use.stable.mask:
  Mask 'unstable' ﬂag for leechraft-full on stable keywords

  14 Jan 2013; Andreas K. Huettel <dilfridge@gentoo.org> +eapi,
  +package.use.stable.force, +package.use.stable.mask, +use.stable.force,
  +use.stable.mask:
  Add empty files

