# ChangeLog for dev-qt/qtconcurrent
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*qtconcurrent-5.4.2 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +metadata.xml,
  +qtconcurrent-5.4.2.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

  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; Mikle Kolyada <zlogene@gentoo.org> qtconcurrent-5.4.2.ebuild:
  gentoo/dev-qt: amd64 stable wrt bug #543326

  Package-Manager: portage-2.2.20.1

  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

  25 Aug 2015; Jeroen Roovers <jer@gentoo.org> qtconcurrent-5.4.2.ebuild:
  Stable for HPPA (bug #543326).

  Package-Manager: portage-2.2.20.1

  26 Aug 2015; Mikle Kolyada <zlogene@gentoo.org> qtconcurrent-5.4.2.ebuild:
  arm stable wrt bug #543326

  Package-Manager: portage-2.2.20.1

*qtconcurrent-5.5.1 (17 Oct 2015)

  17 Oct 2015; Michael Palimaka <kensington@gentoo.org>
  +qtconcurrent-5.5.1.ebuild:
  dev-qt: version bump 5.5.1

  Package-Manager: portage-2.2.20.1

  25 Oct 2015; Jeroen Roovers <jer@gentoo.org> qtconcurrent-5.4.2.ebuild:
  Stable for PPC64 (bug #562966).

  Package-Manager: portage-2.2.23
  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)

  05 Mar 2016; Mikle Kolyada <zlogene@gentoo.org> qtconcurrent-5.5.1.ebuild:
  amd64 stable wrt bug #569924

  Package-Manager: portage-2.2.26

  09 Mar 2016; Jeroen Roovers <jer@gentoo.org> qtconcurrent-5.5.1.ebuild:
  Stable for HPPA PPC64 (bug #569924).

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

  24 Mar 2016; Markus Meier <maekke@gentoo.org> qtconcurrent-5.5.1.ebuild:
  arm stable, bug #569924

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

  27 Mar 2016; Agostino Sarubbo <ago@gentoo.org> qtconcurrent-5.5.1.ebuild:
  ppc stable wrt bug #569924

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

  07 Apr 2016; Davide Pesavento <pesa@gentoo.org> -qtconcurrent-5.4.2.ebuild:
  dev-qt: remove Qt 5.4.2

*qtconcurrent-5.6.0 (23 Apr 2016)

  23 Apr 2016; Michael Palimaka <kensington@gentoo.org> metadata.xml,
  +qtconcurrent-5.6.0.ebuild:
  dev-qt: version bump 5.6.0

  Package-Manager: portage-2.2.28

  01 Jun 2016; Michael Palimaka <kensington@gentoo.org>
  qtconcurrent-5.5.1.ebuild:
  dev-qt: stabilise 5.5.1 on x86

  Gentoo-bug: 569924

  Package-Manager: portage-2.3.0_rc1

*qtconcurrent-5.6.1 (14 Jun 2016)

  14 Jun 2016; Davide Pesavento <pesa@gentoo.org> +qtconcurrent-5.6.1.ebuild:
  dev-qt: Qt 5.6.1 version bump

  Package-Manager: portage-2.3.0_rc1

  22 Jul 2016; Michael Palimaka <kensington@gentoo.org>
  qtconcurrent-5.6.1.ebuild:
  dev-qt: stabilise 5.6.1 on amd64/x86

  Gentoo-bug: 586180

  Package-Manager: portage-2.3.0

*qtconcurrent-5.7.0 (12 Aug 2016)

  12 Aug 2016; Michael Palimaka <kensington@gentoo.org>
  +qtconcurrent-5.7.0.ebuild:
  dev-qt: version bump 5.7.0

  Package-Manager: portage-2.3.0

  15 Aug 2016; Jeroen Roovers <jer@gentoo.org> qtconcurrent-5.6.1.ebuild:
  Stable for HPPA PPC64 (bug #586180).

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

  18 Aug 2016; Michael Palimaka <kensington@gentoo.org>
  -qtconcurrent-5.6.0.ebuild:
  dev-qt: remove 5.6.0

  Package-Manager: portage-2.3.0

  23 Aug 2016; Markus Meier <maekke@gentoo.org> qtconcurrent-5.6.1.ebuild:
  arm stable, bug #586180

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

*qtconcurrent-5.6.2 (12 Oct 2016)

  12 Oct 2016; Davide Pesavento <pesa@gentoo.org> +qtconcurrent-5.6.2.ebuild:
  dev-qt: Qt 5.6.2 version bump

  Package-Manager: portage-2.3.1

