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

*suite3270-3.4_p5 (09 Aug 2015)
*suite3270-3.4_p4 (09 Aug 2015)
*suite3270-3.3.15_p9 (09 Aug 2015)
*suite3270-3.3.15_p7 (09 Aug 2015)
*suite3270-3.3.15_p4 (09 Aug 2015)
*suite3270-3.3.14_p11 (09 Aug 2015)
*suite3270-3.3.14_p9 (09 Aug 2015)
*suite3270-3.3.14_p7 (09 Aug 2015)
*suite3270-3.3.14_p6 (09 Aug 2015)
*suite3270-3.3.13_p7 (09 Aug 2015)
*suite3270-3.3.12_p12 (09 Aug 2015)
*suite3270-3.3.12_p10 (09 Aug 2015)
*suite3270-3.3.10_p3-r1 (09 Aug 2015)
*suite3270-3.3.10_p3 (09 Aug 2015)
*suite3270-3.3.9_p12 (09 Aug 2015)
*suite3270-3.3.8 (09 Aug 2015)
*suite3270-3.3.7_p8 (09 Aug 2015)
*suite3270-3.3.7_p5 (09 Aug 2015)
*suite3270-3.3.7 (09 Aug 2015)
*suite3270-3.3.6 (09 Aug 2015)
*suite3270-3.3.5_p8 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +files/Makefile.in,
  +files/configure-3.3.5.patch, +files/makeconv-3.3.5.patch,
  +files/suite3270-3.3.10_p3-fix-x3270-dbcs.patch, +metadata.xml,
  +suite3270-3.3.5_p8.ebuild, +suite3270-3.3.6.ebuild,
  +suite3270-3.3.7.ebuild, +suite3270-3.3.7_p5.ebuild,
  +suite3270-3.3.7_p8.ebuild, +suite3270-3.3.8.ebuild,
  +suite3270-3.3.9_p12.ebuild, +suite3270-3.3.10_p3.ebuild,
  +suite3270-3.3.10_p3-r1.ebuild, +suite3270-3.3.12_p10.ebuild,
  +suite3270-3.3.12_p12.ebuild, +suite3270-3.3.13_p7.ebuild,
  +suite3270-3.3.14_p6.ebuild, +suite3270-3.3.14_p7.ebuild,
  +suite3270-3.3.14_p9.ebuild, +suite3270-3.3.14_p11.ebuild,
  +suite3270-3.3.15_p4.ebuild, +suite3270-3.3.15_p7.ebuild,
  +suite3270-3.3.15_p9.ebuild, +suite3270-3.4_p4.ebuild,
  +suite3270-3.4_p5.ebuild:
  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

  11 Aug 2015; Mike Frysinger <vapier@gentoo.org>
  -files/configure-3.3.5.patch, -files/makeconv-3.3.5.patch,
  -files/suite3270-3.3.10_p3-fix-x3270-dbcs.patch, -suite3270-3.3.5_p8.ebuild,
  -suite3270-3.3.6.ebuild, -suite3270-3.3.7.ebuild,
  -suite3270-3.3.7_p5.ebuild, -suite3270-3.3.7_p8.ebuild,
  -suite3270-3.3.8.ebuild, -suite3270-3.3.9_p12.ebuild,
  -suite3270-3.3.10_p3.ebuild, -suite3270-3.3.10_p3-r1.ebuild,
  -suite3270-3.3.12_p10.ebuild, -suite3270-3.3.12_p12.ebuild,
  -suite3270-3.3.13_p7.ebuild, -suite3270-3.3.14_p6.ebuild,
  -suite3270-3.3.14_p7.ebuild, -suite3270-3.3.14_p9.ebuild:
  suite3270: drop old

*suite3270-3.4_p6 (11 Aug 2015)

  11 Aug 2015; Mike Frysinger <vapier@gentoo.org> +suite3270-3.4_p6.ebuild:
  suite3270: version bump

  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

*suite3270-3.4_p7 (28 Aug 2015)

  28 Aug 2015; Mike Frysinger <vapier@gentoo.org> +suite3270-3.4_p7.ebuild:
  version bump to 3.4_p7

*suite3270-3.4_p8 (18 Sep 2015)

  18 Sep 2015; Mike Frysinger <vapier@gentoo.org> +suite3270-3.4_p8.ebuild:
  version bump to 3.4_p8

  18 Sep 2015; Mike Frysinger <vapier@gentoo.org> suite3270-3.3.15_p9.ebuild:
  mark 3.3.15_p9 stable for all

*suite3270-3.4_p9 (24 Oct 2015)

  24 Oct 2015; Mike Frysinger <vapier@gentoo.org> +suite3270-3.4_p9.ebuild:
  version bump to 3.4_p9

  02 Jan 2016; Mike Frysinger <vapier@gentoo.org>
  -suite3270-3.3.14_p11.ebuild, -suite3270-3.3.15_p4.ebuild,
  -suite3270-3.3.15_p7.ebuild, -suite3270-3.4_p4.ebuild,
  -suite3270-3.4_p5.ebuild, -suite3270-3.4_p6.ebuild,
  -suite3270-3.4_p7.ebuild, -suite3270-3.4_p8.ebuild:
  drop old versions

  02 Jan 2016; Mike Frysinger <vapier@gentoo.org> suite3270-3.4_p9.ebuild:
  mark 3.4_p9 stable for all

*suite3270-3.4_p10 (02 Jan 2016)

  02 Jan 2016; Mike Frysinger <vapier@gentoo.org> +suite3270-3.4_p10.ebuild:
  version bump to 3.4_p10

  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)

*suite3270-3.5_p8 (10 May 2016)

  10 May 2016; Mike Frysinger <vapier@gentoo.org>
  +files/suite3270-3.5_p8-tinfo.patch, +suite3270-3.5_p8.ebuild:
  version bump to 3.5_p8

