# ChangeLog for www-apps/tt-rss
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*tt-rss-20150624 (09 Aug 2015)
*tt-rss-20150304 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/postinstall-en-with-daemon.txt, +files/postinstall-en.txt,
  +files/ttrssd.confd-r1, +files/ttrssd.initd-r1, +files/ttrssd.initd-r2,
  +files/ttrssd.logrotated, +metadata.xml, +tt-rss-20150304.ebuild,
  +tt-rss-20150624.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,
  tt-rss-20150304.ebuild, tt-rss-20150624.ebuild:
  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

*tt-rss-20150924 (24 Sep 2015)

  24 Sep 2015; Thomas Kahle <tomka@gentoo.org> +tt-rss-20150924.ebuild:
  Bump to new rolling release.

  Package-Manager: portage-2.2.20.1

  24 Sep 2015; Thomas Kahle <tomka@gentoo.org> -tt-rss-20150304.ebuild:
  Remove old.

  Package-Manager: portage-2.2.20.1

*tt-rss-20160124 (24 Jan 2016)

  24 Jan 2016; Thomas Kahle <tomka@gentoo.org> +tt-rss-20160124.ebuild:
  Bump to roling release 20160124

  Package-Manager: portage-2.2.26

  24 Jan 2016; Thomas Kahle <tomka@gentoo.org> -tt-rss-20150624.ebuild:
  Remove old

  Package-Manager: portage-2.2.26

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Set appropriate maintainer types in metadata.xml (GLEP 67)

  18 May 2016; Austin English <wizardedit@gentoo.org> files/ttrssd.initd-r1,
  files/ttrssd.initd-r2:
  use #!/sbin/openrc-run instead of #!/sbin/runscript

*tt-rss-20160527 (27 May 2016)

  27 May 2016; Thomas Kahle <tomka@gentoo.org> +tt-rss-20160527.ebuild:
  bump

  Package-Manager: portage-2.3.0_rc1

  27 May 2016; Thomas Kahle <tomka@gentoo.org> -tt-rss-20150924.ebuild:
  remove old

  Package-Manager: portage-2.3.0_rc1

*tt-rss-20160930 (30 Sep 2016)

  30 Sep 2016; Thomas Kahle <tomka@gentoo.org> +tt-rss-20160930.ebuild:
  Bump to current git (rolling release)

  Package-Manager: portage-2.3.0

  30 Sep 2016; Thomas Kahle <tomka@gentoo.org> -tt-rss-20160124.ebuild:
  remove old

  Package-Manager: portage-2.3.0

  12 Oct 2016; Thomas Kahle <tomka@gentoo.org> tt-rss-20160527.ebuild,
  tt-rss-20160930.ebuild:
  Switch to mysqli interface

  Fixes bug 595760.

  Package-Manager: portage-2.3.0

