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

*gobject-introspection-1.44.0 (09 Aug 2015)
*gobject-introspection-1.42.0-r1 (09 Aug 2015)
*gobject-introspection-1.40.0-r2 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/gobject-introspection-1.40.0-gjs-crash.patch,
  +files/gobject-introspection-1.42.0-cpp-flags.patch,
  +gobject-introspection-1.40.0-r2.ebuild,
  +gobject-introspection-1.42.0-r1.ebuild,
  +gobject-introspection-1.44.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>
  gobject-introspection-1.44.0.ebuild:
  amd64 stable wrt bug #551826

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

  12 Sep 2015; Agostino Sarubbo <ago@gentoo.org>
  gobject-introspection-1.44.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>
  gobject-introspection-1.44.0.ebuild:
  add alpha keyword

  Gentoo-Bug: 551826

  Package-Manager: portage-2.2.20.1

  20 Sep 2015; Jeroen Roovers <jer@gentoo.org>
  gobject-introspection-1.44.0.ebuild:
  Stable for HPPA (bug #551826).

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

  28 Sep 2015; Jeroen Roovers <jer@gentoo.org>
  gobject-introspection-1.44.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>
  gobject-introspection-1.44.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>
  gobject-introspection-1.44.0.ebuild:
  sparc stable wrt bug #551826

  Package-Manager: portage-2.2.20.1

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

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

*gobject-introspection-1.46.0 (14 Nov 2015)

  14 Nov 2015; Pacho Ramos <pacho@gentoo.org>
  +gobject-introspection-1.46.0.ebuild:
  Version bump

  Package-Manager: portage-2.2.24
  RepoMan-Options: --force

  14 Nov 2015; Pacho Ramos <pacho@gentoo.org>
  -files/gobject-introspection-1.40.0-gjs-crash.patch,
  -gobject-introspection-1.40.0-r2.ebuild:
  Drop old

  Package-Manager: portage-2.2.24

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

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

  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>
  gobject-introspection-1.46.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>
  gobject-introspection-1.46.0.ebuild:
  x86 stable wrt bug #427546

  Package-Manager: portage-2.2.26

  07 Apr 2016; Jeroen Roovers <jer@gentoo.org>
  gobject-introspection-1.46.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>
  gobject-introspection-1.46.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>
  gobject-introspection-1.46.0.ebuild:
  1.46.0-r0: add alpha keyword

  Gentoo-Bug: 584468

  Package-Manager: portage-2.3.0_rc1

  25 Jun 2016; Pacho Ramos <pacho@gentoo.org>
  -gobject-introspection-1.42.0-r1.ebuild:
  Drop old

  Package-Manager: portage-2.3.0_rc1

*gobject-introspection-1.48.0 (25 Jun 2016)

  25 Jun 2016; Pacho Ramos <pacho@gentoo.org>
  +gobject-introspection-1.48.0.ebuild:
  Version bump

  Package-Manager: portage-2.3.0_rc1

  25 Jun 2016; Pacho Ramos <pacho@gentoo.org>
  gobject-introspection-1.48.0.ebuild:
  Use a shorter description as repoman suggests

  Package-Manager: portage-2.3.0_rc1

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

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

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

  Gentoo-Bug: 587010

  01 Oct 2016; Pacho Ramos <pacho@gentoo.org>
  gobject-introspection-1.48.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>
  gobject-introspection-1.48.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>
  gobject-introspection-1.48.0.ebuild:
  Stable for HPPA (bug #587010).

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

