# ChangeLog for sci-biology/seaview
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*seaview-4.3.5 (09 Aug 2015)

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

*seaview-4.5.4 (20 Nov 2015)

  20 Nov 2015; Justin Lecher <jlec@gentoo.org> +seaview-4.5.4.ebuild:
  Version Bump

  fixes compilation problems with newer fltk

  Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=556750

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

  06 Mar 2016; Agostino Sarubbo <ago@gentoo.org> seaview-4.5.4.ebuild:
  amd64 stable wrt bug #575914

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

  15 Mar 2016; Agostino Sarubbo <ago@gentoo.org> seaview-4.5.4.ebuild:
  x86 stable wrt bug #575914

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

  16 Mar 2016; Agostino Sarubbo <ago@gentoo.org> seaview-4.5.4.ebuild:
  ppc stable wrt bug #575914

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

*seaview-4.6 (31 Jul 2016)

  31 Jul 2016; David Seifert <soap@gentoo.org> +seaview-4.6.ebuild:
  version bump

  * EAPI=6

  Package-Manager: portage-2.3.0

