# ChangeLog for app-misc/gcal
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/app-misc/gcal/ChangeLog,v 1.55 2015/01/26 10:59:00 jlec Exp $

  26 Jan 2015; Justin Lecher <jlec@gentoo.org> -gcal-3.6.2.ebuild:
  Drop old

  26 Jan 2015; Agostino Sarubbo <ago@gentoo.org> gcal-3.6.3.ebuild:
  Stable for x86, wrt bug #534872

  17 Jan 2015; Agostino Sarubbo <ago@gentoo.org> gcal-3.6.3.ebuild:
  Stable for ppc, wrt bug #534872

  09 Jan 2015; Agostino Sarubbo <ago@gentoo.org> gcal-3.6.3.ebuild:
  Stable for amd64, wrt bug #534872

  25 Oct 2014; Jeroen Roovers <jer@gentoo.org> -gcal-3.6.1.ebuild:
  Old.

*gcal-3.6.3 (25 Oct 2014)

  25 Oct 2014; Jeroen Roovers <jer@gentoo.org> +gcal-3.6.3.ebuild,
  -files/gcal-3.01-gettext-charset.patch, -files/gcal-3.01-mandir.diff:
  Version bump.

  27 Aug 2014; Agostino Sarubbo <ago@gentoo.org> gcal-3.6.2.ebuild:
  Stable for ppc, wrt bug #497136

  24 Feb 2014; Pawel Hajdan jr <phajdan.jr@gentoo.org> gcal-3.6.2.ebuild:
  x86 stable wrt bug #497136

  12 Jan 2014; Pacho Ramos <pacho@gentoo.org> gcal-3.6.2.ebuild:
  amd64 stable, bug #497136

*gcal-3.6.2 (14 Jan 2013)

  14 Jan 2013; Justin Lecher <jlec@gentoo.org> +gcal-3.6.2.ebuild,
  metadata.xml:
  Version Bump, moved to EAPI=5, #451710; fixes also build with glibc-2.16,
  #429938

  01 Aug 2012; Justin Lecher <jlec@gentoo.org> -gcal-3.6.ebuild, metadata.xml:
  Drop old

  29 Jul 2012; Raúl Porcel <armin76@gentoo.org> gcal-3.6.ebuild,
  gcal-3.6.1.ebuild:
  Drop alpha/sparc keywords

  08 Jun 2012; Pawel Hajdan jr <phajdan.jr@gentoo.org> gcal-3.6.1.ebuild:
  x86 stable wrt bug #418603

  07 Jun 2012; Brent Baude <ranger@gentoo.org> gcal-3.6.1.ebuild:
  Marking gcal-3.6.1 ppc for bug 418603

  02 Jun 2012; Agostino Sarubbo <ago@gentoo.org> gcal-3.6.1.ebuild:
  Stable for amd64, wrt bug #418603

  01 Jun 2012; Ulrich Müller <ulm@gentoo.org> metadata.xml:
  Remove myself as maintainer.

*gcal-3.6.1 (15 Feb 2012)

  15 Feb 2012; Tim Harder <radhermit@gentoo.org> +gcal-3.6.1.ebuild:
  Version bump.

  12 Apr 2011; Jonathan Callen <abcd@gentoo.org> gcal-3.6.ebuild:
  Add prefix keywords, fix D/ED usage

  27 Mar 2011; Jeremy Olexa <darkside@gentoo.org> -gcal-3.01-r3.ebuild:
  remove old ebuilds

  30 Jan 2011; Raúl Porcel <armin76@gentoo.org> gcal-3.6.ebuild:
  alpha/sparc stable wrt #350683

  11 Jan 2011; Pawel Hajdan jr <phajdan.jr@gentoo.org> gcal-3.6.ebuild:
  x86 stable wrt bug #350683

  07 Jan 2011; Brent Baude <ranger@gentoo.org> gcal-3.6.ebuild:
  Marking gcal-3.6 ppc for bug 350683

  05 Jan 2011; Markos Chandras <hwoarang@gentoo.org> gcal-3.6.ebuild:
  Stable on amd64 wrt bug #350683

*gcal-3.6 (07 Jun 2010)

  07 Jun 2010; Justin Lecher <jlec@gentoo.org> +gcal-3.6.ebuild:
  Version Bump #322607, mv to GPL-3, cleaned up src_install

  14 Apr 2009; Ulrich Mueller <ulm@gentoo.org> -gcal-3.01-r2.ebuild:
  Remove old.

  14 Apr 2009; Raúl Porcel <armin76@gentoo.org> gcal-3.01-r3.ebuild:
  x86 stable wrt #264516

  07 Apr 2009; Tobias Klausmann <klausman@gentoo.org> gcal-3.01-r3.ebuild:
  Stable on alpha, bug #264516

  03 Apr 2009; Tiago Cunha <tcunha@gentoo.org> gcal-3.01-r3.ebuild:
  stable amd64/sparc, bug 264516

  02 Apr 2009; Joseph Jezak <josejx@gentoo.org> gcal-3.01-r3.ebuild:
  Marked ppc stable for bug #264516.

  01 Apr 2009; Ulrich Mueller <ulm@gentoo.org> metadata.xml,
  gcal-3.01-r3.ebuild:
  Add myself as maintainer. Add longdescription. Fix CC handling, bug 243642.

*gcal-3.01-r3 (26 Feb 2009)

  26 Feb 2009; Ulrich Mueller <ulm@gentoo.org>
  +files/gcal-3.01-gettext-charset.patch, +gcal-3.01-r3.ebuild:
  Change region codes for Germany and Switzerland according to ISO 3166-2,
  bug 144813. Specify input file encoding for xgettext. Assign RDEPEND.

  17 Sep 2008; Peter Volkov <pva@gentoo.org> gcal-3.01-r2.ebuild:
  Fixed glibc-2.8 build issue, bug #227121, thank Evil Compile Person for
  report.

  03 Feb 2008; Fabian Groffen <grobian@gentoo.org> gcal-3.01-r2.ebuild:
  Dropped ppc-macos keyword, see you in prefix

  19 Mar 2007; Bryan Østergaard <kloeri@gentoo.org> metadata.xml:
  Remove ka0ttic from metadata.xml due to retirement.

  22 Jan 2007; Diego Pettenò <flameeyes@gentoo.org> gcal-3.01.ebuild,
  gcal-3.01-r1.ebuild, gcal-3.01-r2.ebuild:
  Use mirror://gnu/ rather than ftp.gnu.org.

  17 May 2005; Aaron Walker <ka0ttic@gentoo.org> gcal-3.01-r2.ebuild:
  Don't install locale.alias as it conflicts with glibc.

  21 Apr 2005; Simon Stelling <blubb@gentoo.org> gcal-3.01-r2.ebuild:
  stable on amd64

  05 Feb 2005; Michael Hanselmann <hansmi@gentoo.org> gcal-3.01-r2.ebuild:
  Stable on ppc.

  27 Dec 2004; <gongloo@gentoo.org> gcal-3.01-r2.ebuild:
  Added ~ppc-macos.

  12 Dec 2004; Jason Wever <weeve@gentoo.org> gcal-3.01-r2.ebuild:
  Stable on sparc.

  11 Dec 2004; Bryan Østergaard <kloeri@gentoo.org> gcal-3.01-r2.ebuild:
  Stable on alpha.

  04 Nov 2004; Aaron Walker <ka0ttic@gentoo.org> gcal-3.01-r2.ebuild:
  Marked stable on x86.

  31 Oct 2004; Aaron Walker <ka0ttic@gentoo.org> metadata.xml:
  Added myself as maintainer.

*gcal-3.01-r2 (22 Oct 2004)

  22 Oct 2004; Aaron Walker <ka0ttic@gentoo.org>
  +files/gcal-3.01-mandir.diff, +gcal-3.01-r2.ebuild:
  New revision; install man pages in the correct directory (bug #32126) Thanks
  to Doug Weimer for the patch.

  21 Oct 2004; Aaron Walker <ka0ttic@gentoo.org> +metadata.xml:
  Add metadata (shell-tools)

  05 Oct 2004; Pieter Van den Abeele <pvdabeel@gentoo.org> gcal-3.01.ebuild:
  Masked gcal-3.01.ebuild stable for ppc

  06 Sep 2004; Lars Weiler <pylon@gentoo.org> gcal-3.01-r1.ebuild:
  Stable on ppc.

  05 Feb 2004; Aron Griffis <agriffis@gentoo.org> gcal-3.01-r1.ebuild:
  stable on alpha

  05 Jan 2004; Jon Portnoy <avenj@gentoo.org> gcal-3.01-r1.ebuild :
  AMD64 keywords.

*gcal-3.01-r1 (04 Aug 2003)

  04 Aug 2003; Martin Holzer <mholzer@gentoo.org> gcal-3.01-r1.ebuild:
  Fixing some problems. Submitted by Matsuu Takuto <matsuu@gentoo.org> in #25866.

*gcal-3.01 (24 Aug 2002)

  24 Aug 2002; Burton Samograd <kruhft@kruhft.dyndns.org> ChangeLog,
  gcal-3.01.ebuild, files/digest-gcal-3.01 :

  New ebuild. GNU cal (also called gcal) is a much more powerful
  replacement for the standard unix cal program. Initial import by
  seemant.
