# ChangeLog for the default/linux/ia64 profile directory
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/profiles/default/linux/ia64/ChangeLog,v 1.3 2013/02/09 22:09:04 dilfridge Exp $

  09 Feb 2013; Andreas K. Huettel <dilfridge@gentoo.org>
  +10.0/desktop/deprecated, +10.0/desktop/gnome/deprecated,
  +10.0/desktop/kde/deprecated, +10.0/developer/deprecated,
  +10.0/server/deprecated:
  Deprecate 10.0 profiles

  18 Jan 2013; Andreas K. Huettel <dilfridge@gentoo.org> ChangeLog:
  Fix ChangeLog header

  16 Jan 2013; Andreas K. Huettel <dilfridge@gentoo.org> +13.0/desktop/eapi,
  +13.0/desktop/gnome/eapi, +13.0/desktop/gnome/parent, +13.0/desktop/kde/eapi,
  +13.0/desktop/kde/parent, +13.0/desktop/parent, +13.0/developer/eapi,
  +13.0/developer/parent, +13.0/eapi, +13.0/parent, +13.0/use.mask:
  Copy profile tree 10.0 to 13.0 and adapt inheritance

