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

*ptlib-2.12.9 (09 Aug 2015)
*ptlib-2.10.11 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/ptlib-2.10.10-mga-bison-parameter.patch,
  +files/ptlib-2.10.10-respect_cflags_cxxflags.patch,
  +files/ptlib-2.10.9-disable-telnet-symbols.patch,
  +files/ptlib-2.10.9-pkgconfig_ldflags.patch,
  +files/ptlib-2.10.9-respect_cxxflags.patch,
  +files/ptlib-2.10.9-svn_revision_override.patch,
  +files/ptlib-2.12.4-respect_cxxflags.patch,
  +files/ptlib-2.12.4-sdl-linking.patch, +metadata.xml, +ptlib-2.10.11.ebuild,
  +ptlib-2.12.9.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

*ptlib-2.12.9-r1 (05 Oct 2015)

  05 Oct 2015; Julian Ospald <hasufell@gentoo.org> +ptlib-2.12.9-r1.ebuild:
  add libressl support

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Remove explicit notion of maintainer-needed, for GLEP 67

  GLEP 67 removes the explicit notion of maintainer-needed@g.o being used
  for packages lacking maintainers, in favor of assuming maintainer-needed
  whenever the package has no maintainers.

  28 Feb 2016; Ulrich Müller <ulm@gentoo.org> metadata.xml:
  metadata.xml: Add maintainer-needed comment to packages without maintainer.

  Bug: 575810

  02 Oct 2016; Pacho Ramos <pacho@gentoo.org> ptlib-2.10.11.ebuild:
  Default enable USE flags needed by ekiga (the only consumer of this lib)

  Package-Manager: portage-2.3.1

  08 Oct 2016; Pacho Ramos <pacho@gentoo.org> ptlib-2.10.11.ebuild:
  Remove obsolete warnings

  Package-Manager: portage-2.3.1

