# ChangeLog for media-plugins/gst-plugins-dv
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*gst-plugins-dv-1.4.5 (09 Aug 2015)
*gst-plugins-dv-1.2.4-r1 (09 Aug 2015)
*gst-plugins-dv-0.10.31-r1 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +gst-plugins-dv-0.10.31-r1.ebuild, +gst-plugins-dv-1.2.4-r1.ebuild,
  +gst-plugins-dv-1.4.5.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

*gst-plugins-dv-1.6.0 (25 Oct 2015)

  25 Oct 2015; Gilles Dartiguelongue <eva@gentoo.org>
  +gst-plugins-dv-1.6.0.ebuild:
  version bump to 1.6.0

  Package-Manager: portage-2.2.23

*gst-plugins-dv-1.6.1 (08 Nov 2015)

  08 Nov 2015; Gilles Dartiguelongue <eva@gentoo.org>
  +gst-plugins-dv-1.6.1.ebuild:
  version bump to 1.6.1

  Package-Manager: portage-2.2.23

  26 Dec 2015; Gilles Dartiguelongue <eva@gentoo.org>
  -gst-plugins-dv-1.2.4-r1.ebuild, -gst-plugins-dv-1.6.0.ebuild:
  drop old revisions

  Package-Manager: portage-2.2.26

*gst-plugins-dv-1.6.2 (26 Dec 2015)

  26 Dec 2015; Gilles Dartiguelongue <eva@gentoo.org>
  +gst-plugins-dv-1.6.2.ebuild:
  version bump to 1.6.2

  Package-Manager: portage-2.2.26

  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)

*gst-plugins-dv-1.6.3 (31 Jan 2016)

  31 Jan 2016; Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr>
  +gst-plugins-dv-1.6.3.ebuild:
  version bump to 1.6.3

  Package-Manager: portage-2.2.27

  21 Feb 2016; Pacho Ramos <pacho@gentoo.org> gst-plugins-dv-1.6.3.ebuild:
  amd64 stable, bug 566378

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

  06 Mar 2016; Mikle Kolyada <zlogene@gentoo.org> gst-plugins-dv-1.6.3.ebuild:
  x86 stable wrt bug #566378

  Package-Manager: portage-2.2.26

  07 Apr 2016; Jeroen Roovers <jer@gentoo.org> gst-plugins-dv-1.6.3.ebuild:
  Stable for HPPA PPC64 (bug #566378).

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

  11 Jun 2016; Pacho Ramos <pacho@gentoo.org> gst-plugins-dv-1.6.3.ebuild:
  alpha stable, bug 584468

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

  04 Jul 2016; Mart Raudsepp <leio@gentoo.org> -gst-plugins-dv-1.6.1.ebuild,
  -gst-plugins-dv-1.6.2.ebuild:
  media-libs/gst-plugins-good and its splits: Drop old

*gst-plugins-dv-1.8.2 (09 Jul 2016)

  09 Jul 2016; Pacho Ramos <pacho@gentoo.org> +gst-plugins-dv-1.8.2.ebuild:
  Version bump

  Package-Manager: portage-2.3.0

  09 Jul 2016; Pacho Ramos <pacho@gentoo.org> gst-plugins-dv-1.6.3.ebuild:
  ppc stable, bug 584468

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

*gst-plugins-dv-1.8.3 (18 Sep 2016)

  18 Sep 2016; Gilles Dartiguelongue <eva@gentoo.org>
  +gst-plugins-dv-1.8.3.ebuild:
  version bump to 1.8.3

  Package-Manager: portage-2.3.0

  23 Sep 2016; Tobias Klausmann <klausman@gentoo.org>
  gst-plugins-dv-1.8.2.ebuild:
  1.8.2-r0: add alpha keyword

  Gentoo-Bug: 587010

  26 Sep 2016; Tobias Klausmann <klausman@gentoo.org>
  gst-plugins-dv-1.8.3.ebuild:
  1.8.3-r0: add alpha keyword

  Gentoo-Bug: 587010

  01 Oct 2016; Pacho Ramos <pacho@gentoo.org> gst-plugins-dv-1.8.3.ebuild:
  amd64 stable, bug 587010

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

  01 Oct 2016; Pacho Ramos <pacho@gentoo.org> gst-plugins-dv-1.8.3.ebuild:
  x86 stable, bug 587010

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

