# ChangeLog for net-irc/konversation
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*konversation-1.6 (09 Aug 2015)
*konversation-1.5.1 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +konversation-1.5.1.ebuild, +konversation-1.6.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; Justin Lecher <jlec@gentoo.org> konversation-1.5.1.ebuild,
  konversation-1.6.ebuild:
  Convert URIs for gnome.org and kde.org 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

  29 Dec 2015; Michael Palimaka <kensington@gentoo.org>
  konversation-1.5.1.ebuild:
  kde-base: pkgmove KDE PIM to kde-apps/

  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)

  08 Apr 2016; Johannes Huber <johu@gentoo.org> konversation-1.6.ebuild:
  EAPI 6

  Package-Manager: portage-2.2.28

  09 Apr 2016; Agostino Sarubbo <ago@gentoo.org> konversation-1.6.ebuild:
  amd64 stable wrt bug #579354

  Package-Manager: portage-2.2.26
  RepoMan-Options: --include-arches="amd64"
  Signed-off-by: Agostino Sarubbo <ago@gentoo.org>

  09 Apr 2016; Johannes Huber <johu@gentoo.org> -konversation-1.5.1.ebuild:
  Remove 1.5.1

  Package-Manager: portage-2.2.28

  02 Jun 2016; Michael Palimaka <kensington@gentoo.org>
  konversation-1.6.ebuild:
  x86 stable

  Gentoo-bug: 579354

  Package-Manager: portage-2.3.0_rc1

*konversation-1.6.1 (22 Jul 2016)

  22 Jul 2016; Michael Palimaka <kensington@gentoo.org>
  +konversation-1.6.1.ebuild:
  version bump

  Package-Manager: portage-2.3.0

*konversation-1.6.2 (03 Aug 2016)

  03 Aug 2016; Michael Palimaka <kensington@gentoo.org>
  +konversation-1.6.2.ebuild:
  version bump

  Package-Manager: portage-2.3.0

  15 Sep 2016; Michael Palimaka <kensington@gentoo.org> metadata.xml:
  metadata whitespace

  Package-Manager: portage-2.3.0

  15 Sep 2016; Michael Palimaka <kensington@gentoo.org>
  konversation-1.6.2.ebuild:
  amd64/x86 stable

  Package-Manager: portage-2.3.0

  15 Sep 2016; Michael Palimaka <kensington@gentoo.org>
  -konversation-1.6.ebuild, -konversation-1.6.1.ebuild:
  remove old

  Package-Manager: portage-2.3.0

