# ChangeLog for app-crypt/gcr
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*gcr-3.16.0 (09 Aug 2015)
*gcr-3.14.0 (09 Aug 2015)
*gcr-3.12.2 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/gcr-3.14.0-race-building.patch, +gcr-3.12.2.ebuild,
  +gcr-3.14.0.ebuild, +gcr-3.16.0.ebuild, +metadata.xml:
  proj/gentoo: Initial commit

  This commit represents a new era for Gentoo:
  Storing the gentoo-x86 tree in Git, as converted from CVS.

  This commit is the start of the NEW history.
  Any historical data is intended to be grafted onto this point.

  Creation process:
  1. Take final CVS checkout snapshot
  2. Remove ALL ChangeLog* files
  3. Transform all Manifests to thin
  4. Remove empty Manifests
  5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
  5.1. Do not touch files with -kb/-ko keyword flags.

  Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
  X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration
  tests
  X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this
  project
  X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo
  developer, wrote Git features for the migration
  X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve
  cvs2svn
  X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
  X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014
  work in migration
  X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
  X-Thanks: All of other Gentoo developers - many ideas and lots of paint on
  the bikeshed

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml:
  Use https by default

  Convert all URLs for sites supporting encrypted connections from http to
  https

  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  24 Aug 2015; Mike Gilbert <floppym@gentoo.org> metadata.xml:
  Revert DOCTYPE SYSTEM https changes in metadata.xml

  repoman does not yet accept the https version.
  This partially reverts eaaface92ee81f30a6ac66fe7acbcc42c00dc450.

  Bug: https://bugs.gentoo.org/552720

  07 Sep 2015; Mikle Kolyada <zlogene@gentoo.org> gcr-3.16.0.ebuild:
  amd64 stable wrt bug #551826

  Package-Manager: portage-2.2.20.1

  12 Sep 2015; Agostino Sarubbo <ago@gentoo.org> gcr-3.16.0.ebuild:
  x86 stable wrt bug #551826

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --include-arches="x86"

  16 Sep 2015; Tobias Klausmann <klausman@gentoo.org> gcr-3.16.0.ebuild:
  add alpha keyword

  Gentoo-Bug: 551826

  Package-Manager: portage-2.2.20.1

  28 Sep 2015; Jeroen Roovers <jer@gentoo.org> gcr-3.16.0.ebuild:
  Stable for PPC64 (bug #551826).

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --ignore-arches

  03 Oct 2015; Markus Meier <maekke@gentoo.org> gcr-3.16.0.ebuild:
  arm stable, bug #551826

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --include-arches="arm"

  18 Oct 2015; Mikle Kolyada <zlogene@gentoo.org> gcr-3.16.0.ebuild:
  sparc stable wrt bug #551826

  Package-Manager: portage-2.2.20.1

  12 Nov 2015; Agostino Sarubbo <ago@gentoo.org> gcr-3.16.0.ebuild:
  ppc stable wrt bug #565086

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --include-arches="ppc"

*gcr-3.18.0 (14 Nov 2015)

  14 Nov 2015; Pacho Ramos <pacho@gentoo.org> +gcr-3.18.0.ebuild:
  Version bump

  Package-Manager: portage-2.2.24

  14 Nov 2015; Pacho Ramos <pacho@gentoo.org> -gcr-3.12.2.ebuild:
  Drop old

  Package-Manager: portage-2.2.24

  16 Nov 2015; Agostino Sarubbo <ago@gentoo.org> gcr-3.16.0.ebuild:
  ia64 stable wrt bug #565086

  Package-Manager: portage-2.2.20.1
  RepoMan-Options: --include-arches="ia64"

  26 Nov 2015; Gilles Dartiguelongue <eva@gentoo.org>
  -files/gcr-3.14.0-race-building.patch, -gcr-3.14.0.ebuild:
  drop old revision

  Package-Manager: portage-2.2.25

  30 Dec 2015; Jeroen Roovers <jer@gentoo.org> gcr-3.16.0.ebuild,
  gcr-3.18.0.ebuild:
  Mark ~hppa (bug #570230).

  Package-Manager: portage-2.2.26
  RepoMan-Options: --ignore-arches

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Replace all herds with appropriate projects (GLEP 67)

  Replace all uses of herd with appropriate project maintainers, or no
  maintainers in case of herds requested to be disbanded.

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

  21 Feb 2016; Pacho Ramos <pacho@gentoo.org> gcr-3.18.0.ebuild:
  amd64 stable, bug 566378

  Package-Manager: portage-2.2.27
  RepoMan-Options: --include-arches="amd64"

  06 Mar 2016; Mikle Kolyada <zlogene@gentoo.org> gcr-3.18.0.ebuild:
  x86 stable wrt bug #427546

  Package-Manager: portage-2.2.26

  07 Apr 2016; Jeroen Roovers <jer@gentoo.org> gcr-3.18.0.ebuild:
  Stable for HPPA PPC64 (bug #566378).

  Package-Manager: portage-2.2.28
  RepoMan-Options: --ignore-arches

  03 May 2016; Markus Meier <maekke@gentoo.org> gcr-3.18.0.ebuild:
  arm stable, bug #566378

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="arm"

  07 Jun 2016; Tobias Klausmann <klausman@gentoo.org> gcr-3.18.0.ebuild:
  3.18.0-r0: add alpha keyword

  Gentoo-Bug: 584468

  Package-Manager: portage-2.3.0_rc1

  12 Jun 2016; Pacho Ramos <pacho@gentoo.org> gcr-3.18.0.ebuild:
  gnupg is not really needed by gcr, this also prevents a circular dep issue
  (#570512)

  Package-Manager: portage-2.3.0_rc1

*gcr-3.20.0 (24 Jun 2016)

  24 Jun 2016; Pacho Ramos <pacho@gentoo.org> +gcr-3.20.0.ebuild:
  Version bump

  Package-Manager: portage-2.3.0_rc1

  09 Jul 2016; Pacho Ramos <pacho@gentoo.org> gcr-3.18.0.ebuild:
  ppc stable, bug 584468

  Package-Manager: portage-2.3.0
  RepoMan-Options: --include-arches="ppc"

  04 Sep 2016; Gilles Dartiguelongue <eva@gentoo.org> gcr-3.20.0.ebuild:
  tap-driver is only py2 compatible, bug #570358

  Package-Manager: portage-2.3.0

  23 Sep 2016; Tobias Klausmann <klausman@gentoo.org> gcr-3.20.0.ebuild:
  3.20.0-r0: add alpha keyword

  Gentoo-Bug: 587010

  01 Oct 2016; Pacho Ramos <pacho@gentoo.org> gcr-3.20.0.ebuild:
  amd64 stable, bug 587010

  Package-Manager: portage-2.3.0
  RepoMan-Options: --include-arches="amd64"

  01 Oct 2016; Pacho Ramos <pacho@gentoo.org> gcr-3.20.0.ebuild:
  x86 stable, bug 587010

  Package-Manager: portage-2.3.0
  RepoMan-Options: --include-arches="x86"

  03 Oct 2016; Jeroen Roovers <jer@gentoo.org> gcr-3.20.0.ebuild:
  Stable for HPPA (bug #587010).

  Package-Manager: portage-2.3.1
  RepoMan-Options: --ignore-arches

