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

*tracker-1.4.0 (09 Aug 2015)
*tracker-1.2.6 (09 Aug 2015)
*tracker-1.2.5 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/tracker-1.4.0-have-gstreamer-fix.patch, +metadata.xml,
  +tracker-1.2.5.ebuild, +tracker-1.2.6.ebuild, +tracker-1.4.0.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

  23 Aug 2015; Gilles Dartiguelongue <eva@gentoo.org> -tracker-1.2.5.ebuild:
  drop old revision

  Package-Manager: portage-2.2.20.1

*tracker-1.4.1 (23 Aug 2015)

  23 Aug 2015; Gilles Dartiguelongue <eva@gentoo.org> +tracker-1.4.1.ebuild:
  version bump

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

  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> tracker-1.4.1.ebuild:
  amd64 stable wrt bug #551826

  Package-Manager: portage-2.2.20.1

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

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

  11 Oct 2015; Sven Wegener <swegener@gentoo.org> tracker-1.2.6.ebuild,
  tracker-1.4.0.ebuild, tracker-1.4.1.ebuild:
  DEPEND on gdbus-codegen

*tracker-1.6.0 (14 Nov 2015)

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

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

  14 Nov 2015; Pacho Ramos <pacho@gentoo.org> -tracker-1.2.6.ebuild,
  -tracker-1.4.0.ebuild:
  Drop old

  Package-Manager: portage-2.2.24

  15 Nov 2015; Pacho Ramos <pacho@gentoo.org> tracker-1.6.0.ebuild:
  Don't force jpeg=, bug #565800 by Jan Vesely

  Package-Manager: portage-2.2.24

  26 Nov 2015; Gilles Dartiguelongue <eva@gentoo.org> tracker-1.6.0.ebuild:
  specify version for libgrss because 0.5 used to be slot 0

  It got moved 2013 Q2, but it does not hurt to make it explicit.

  Package-Manager: portage-2.2.25

*tracker-1.6.1 (12 Dec 2015)

  12 Dec 2015; Pacho Ramos <pacho@gentoo.org> +tracker-1.6.1.ebuild:
  Version bump

  Package-Manager: portage-2.2.24

  12 Jan 2016; Justin Lecher <jlec@gentoo.org> metadata.xml,
  tracker-1.6.1.ebuild:
  Set slot operators for giflib

  Package-Manager: portage-2.2.26
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

  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> tracker-1.6.1.ebuild:
  amd64 stable, bug 566378

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

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

  Package-Manager: portage-2.2.26

  03 Apr 2016; Pacho Ramos <pacho@gentoo.org>
  -files/tracker-1.4.0-have-gstreamer-fix.patch, -tracker-1.4.1.ebuild,
  -tracker-1.6.0.ebuild:
  Drop old

  Package-Manager: portage-2.2.28

*tracker-1.6.2 (03 Apr 2016)

  03 Apr 2016; Pacho Ramos <pacho@gentoo.org>
  +files/tracker-1.6.2-include-path.patch, +tracker-1.6.2.ebuild:
  Version bump

  Package-Manager: portage-2.2.28

  15 May 2016; Alexandre Rostovtsev <tetromino@gentoo.org>
  +files/tracker-1.6.2-sqlite-underlinking.patch, tracker-1.6.2.ebuild:
  fix underlinking build failure (bug #581288)

  Thanks to Maxim Sheviakov for reporting.
  Upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=766487

  Package-Manager: portage-2.2.28

  11 Jun 2016; Pacho Ramos <pacho@gentoo.org> tracker-1.6.2.ebuild:
  amd64 stable, bug 584468

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

  11 Jun 2016; Pacho Ramos <pacho@gentoo.org> tracker-1.6.2.ebuild:
  x86 stable, bug 584468

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

  21 Jun 2016; Michał Górny <mgorny@gentoo.org> tracker-1.6.1.ebuild,
  tracker-1.6.2.ebuild:
  Remove := slot op inside ||, #586302

  24 Jun 2016; Pacho Ramos <pacho@gentoo.org> -tracker-1.6.1.ebuild:
  Drop old

  Package-Manager: portage-2.3.0_rc1

*tracker-1.8.0 (24 Jun 2016)

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

  Package-Manager: portage-2.3.0_rc1

  09 Jul 2016; Pacho Ramos <pacho@gentoo.org> tracker-1.8.0.ebuild:
  Rebuilding with NM subslot bump will be needed when it's bumped (likely when
  we are ready to kill the obsolete dbus-glib support from NM)

  Package-Manager: portage-2.3.0

