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

  09 Feb 2013; Andreas K. Huettel <dilfridge@gentoo.org> +10.0/deprecated,
  +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/package.mask, +13.0/parent:
  Copy profile tree 10.0 to 13.0 and adapt inheritance

