# ChangeLog for app-leechcraft/lc-monocle
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-leechcraft/lc-monocle/ChangeLog,v 1.15 2014/08/03 18:57:35 maksbotan Exp $

*lc-monocle-0.6.70 (03 Aug 2014)

  03 Aug 2014; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.6.70.ebuild:
  Bump LeechCraft to 0.6.70, thanks to 0xd34df00d.

  05 Jul 2014; Maxim Koltsov <maksbotan@gentoo.org> lc-monocle-9999.ebuild,
  metadata.xml:
  Fix dependencies, rename spectre use flag. Thanks to 0xd34df00d.

*lc-monocle-0.6.65 (10 Apr 2014)

  10 Apr 2014; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.6.65.ebuild:
  Bump LeechCraft to 0.5.65, thanks to 0xd34df00d.

  03 Apr 2014; Mikle Kolyada <zlogene@gentoo.org> lc-monocle-0.6.60.ebuild:
  x86 stable wrt bug #500914

  02 Apr 2014; Mikle Kolyada <zlogene@gentoo.org> lc-monocle-0.6.60.ebuild:
  amd64 stable wrt bug #500914

*lc-monocle-0.6.60 (08 Jan 2014)

  08 Jan 2014; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.6.60.ebuild:
  Bump to LeecChraft-0.6.60 release, thanks to 0xd34df00d.

*lc-monocle-0.6.0-r1 (02 Oct 2013)
*lc-monocle-0.5.99-r1 (02 Oct 2013)
*lc-monocle-0.5.90-r2 (02 Oct 2013)

  02 Oct 2013; Maxim Koltsov <maksbotan@gentoo.org>
  +lc-monocle-0.5.90-r2.ebuild, +lc-monocle-0.5.99-r1.ebuild,
  +lc-monocle-0.6.0-r1.ebuild, lc-monocle-9999.ebuild:
  Fix poppler/ghostscript issues in dependencies, thanks to 0xd34df00d

*lc-monocle-0.6.0 (24 Sep 2013)

  24 Sep 2013; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.6.0.ebuild:
  Bump LeechCraft to 0.6.0

*lc-monocle-0.5.99 (18 Jul 2013)

  18 Jul 2013; <maks@gentoo.org> +lc-monocle-0.5.99.ebuild:
  Bump app-leechcraft/lc-monocle to 0.5.99, thanks to 0xd34df00d

*lc-monocle-0.5.98 (03 Jul 2013)

  03 Jul 2013; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.5.98.ebuild:
  Bump LeechCraft to 0.5.98, thanks to 0xd34df00d.

*lc-monocle-0.5.97 (11 Jun 2013)

  11 Jun 2013; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.5.97.ebuild:
  Bump LeechCraft suite to 0.5.97, thanks to 0xd34df00d.

*lc-monocle-0.5.96 (26 May 2013)

  26 May 2013; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.5.96.ebuild:
  Bump LeechCraft suite to 0.5.96, thanks to 0xd34df00d

*lc-monocle-0.5.95 (02 May 2013)

  02 May 2013; Sergey Popov <pinkbyte@gentoo.org> +lc-monocle-0.5.95.ebuild:
  Bump app-leechcraft/lc-monocle to 0.5.95, thanks to 0xd34df00d

  14 Apr 2013; Sergey Popov <pinkbyte@gentoo.org> lc-monocle-9999.ebuild:
  Bump EAPI to 5, add documentation building and installing, thanks to
  0xd34df00d

*lc-monocle-9999 (08 Mar 2013)
*lc-monocle-0.5.90-r1 (08 Mar 2013)
*lc-monocle-0.5.85 (08 Mar 2013)

  08 Mar 2013; Maxim Koltsov <maksbotan@gentoo.org> +lc-monocle-0.5.85.ebuild,
  +lc-monocle-0.5.90-r1.ebuild, +lc-monocle-9999.ebuild,
  +files/monocle-poppler.patch, +metadata.xml:
  Move to app-leechcraft/category

  16 Feb 2013; Agostino Sarubbo <ago@gentoo.org>
  leechcraft-monocle-0.5.90-r1.ebuild:
  Stable for x86, wrt bug #457824

  16 Feb 2013; Agostino Sarubbo <ago@gentoo.org>
  leechcraft-monocle-0.5.90-r1.ebuild:
  Stable for amd64, wrt bug #457824

*leechcraft-monocle-0.5.90-r1 (16 Feb 2013)

  16 Feb 2013; Maxim Koltsov <maksbotan@gentoo.org>
  +leechcraft-monocle-0.5.90-r1.ebuild, -leechcraft-monocle-0.5.90.ebuild,
  leechcraft-monocle-9999.ebuild:
  Add missing libspectre dependency

  10 Jan 2013; Sergey Popov <pinkbyte@gentoo.org>
  leechcraft-monocle-0.5.90.ebuild, leechcraft-monocle-9999.ebuild,
  metadata.xml:
  Enable optional support for libspectre via USE-flag, fix bug #451088. Thanks
  to Karl Ernst Brunk for discovering this issue

*leechcraft-monocle-0.5.90 (25 Dec 2012)

  25 Dec 2012; Maxim Koltsov <maksbotan@gentoo.org>
  +leechcraft-monocle-0.5.90.ebuild:
  Bump LeechCraft to 0.5.90, thanks to 0xd34df00d

  21 Dec 2012; Sergey Popov <pinkbyte@gentoo.org>
  leechcraft-monocle-0.5.85.ebuild, leechcraft-monocle-9999.ebuild:
  Remove obsolete pkg_pretend function - overrided by eclass one

  19 Dec 2012; Maxim Koltsov <maksbotan@gentoo.org>
  -leechcraft-monocle-0.5.75.ebuild, -leechcraft-monocle-0.5.80.ebuild:
  Remove old LeechCraft versions

*leechcraft-monocle-0.5.85 (08 Oct 2012)

  08 Oct 2012; Sergey Popov <pinkbyte@gentoo.org>
  +leechcraft-monocle-0.5.85.ebuild:
  Bump LeechCraft to 0.5.85, thanks to 0xd34df00d

  20 Sep 2012; Sergey Popov <pinkbyte@gentoo.org>
  leechcraft-monocle-9999.ebuild:
  Live ebuild can be compiled only with gcc 4.6 or higher

  20 Sep 2012; Sergey Popov <pinkbyte@gentoo.org>
  leechcraft-monocle-9999.ebuild:
  Add support for djvu into live ebuild (through USE flag)

*leechcraft-monocle-0.5.80 (13 Aug 2012)

  13 Aug 2012; Maxim Koltsov <maksbotan@gentoo.org>
  +leechcraft-monocle-0.5.80.ebuild:
  Bump LeechCraft to 0.5.80, thanks to 0xd34df00d

  10 Aug 2012; Maxim Koltsov <maksbotan@gentoo.org>
  +files/monocle-poppler.patch, leechcraft-monocle-0.5.75.ebuild:
  Fix compilation with new poppler, bug 430108

*leechcraft-monocle-0.5.75 (19 Jul 2012)

  19 Jul 2012; Maxim Koltsov <maksbotan@gentoo.org>
  +leechcraft-monocle-0.5.75.ebuild:
  Removed old versions, bumped to 0.5.75

*leechcraft-monocle-9999 (26 Jun 2012)

  26 Jun 2012; Maxim Koltsov <maksbotan@gentoo.org>
  +leechcraft-monocle-9999.ebuild, +metadata.xml:
  Add app-text/leechcraft-monocle, thanks to 0xd34df00d
