# ChangeLog for dev-lang/php
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*php-7.0.0_beta1 (09 Aug 2015)
*php-5.6.12 (09 Aug 2015)
*php-5.6.11 (09 Aug 2015)
*php-5.6.10 (09 Aug 2015)
*php-5.6.9 (09 Aug 2015)
*php-5.5.28 (09 Aug 2015)
*php-5.5.27 (09 Aug 2015)
*php-5.5.26 (09 Aug 2015)
*php-5.5.25-r1 (09 Aug 2015)
*php-5.4.44 (09 Aug 2015)
*php-5.4.43 (09 Aug 2015)
*php-5.4.42 (09 Aug 2015)
*php-5.4.41 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +files/20php5-envd,
  +files/all_mysql_socket_location-gentoo.patch,
  +files/all_strict_aliasing.patch, +files/bison_any_version.patch,
  +files/bison_build_2.patch, +files/bison_build_2a.patch,
  +files/fix-libstdc++-underlinking.patch,
  +files/freetype-2.5.1-linking-fix.patch, +files/iodbc-pkgconfig-r1.patch,
  +files/iodbc-pkgconfig.patch, +files/missing-openssl-include.patch,
  +files/php-fpm-r1.conf, +files/php-fpm-r4.init,
  +files/php-fpm_at-simple.service, +files/php-fpm_at.service,
  +files/php-libvpx.patch, +files/php5-ldvs,
  +files/stricter-libc-client-symlink-check.patch, +metadata.xml,
  +php-5.4.41.ebuild, +php-5.4.42.ebuild, +php-5.4.43.ebuild,
  +php-5.4.44.ebuild, +php-5.5.25-r1.ebuild, +php-5.5.26.ebuild,
  +php-5.5.27.ebuild, +php-5.5.28.ebuild, +php-5.6.9.ebuild,
  +php-5.6.10.ebuild, +php-5.6.11.ebuild, +php-5.6.12.ebuild,
  +php-7.0.0_beta1.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

  09 Aug 2015; Ulrich Müller <ulm@gentoo.org> files/php-fpm-r4.init:
  [QA] Remove executable bit from files, bug 550434.

  09 Aug 2015; Mikle Kolyada <zlogene@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  amd64 stable wrt bug 556952

  Package-Manager: portage-2.2.20

  10 Aug 2015; Tobias Klausmann <klausman@gentoo.org> php-5.4.44.ebuild:
  add alpha keyword

  Gentoo-Bug: 556952

  Package-Manager: portage-2.2.20

  10 Aug 2015; Tobias Klausmann <klausman@gentoo.org> php-5.5.28.ebuild:
  add alpha keyword

  Gentoo-Bug: 556952

  Package-Manager: portage-2.2.20

  10 Aug 2015; Tobias Klausmann <klausman@gentoo.org> php-5.6.12.ebuild:
  add alpha keyword

  Gentoo-Bug: 556952

  Package-Manager: portage-2.2.20

  10 Aug 2015; Mikle Kolyada <zlogene@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  x86 stable wrt bug #556952

  Package-Manager: portage-2.2.20

  15 Aug 2015; Jeroen Roovers <jer@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  Stable for PPC64 (bug #556952).

  Package-Manager: portage-2.2.20.1

  16 Aug 2015; Jeroen Roovers <jer@gentoo.org> php-5.4.44.ebuild,
  php-5.6.12.ebuild:
  Stable for HPPA (bug #556952).

  Package-Manager: portage-2.2.20.1

  16 Aug 2015; Jeroen Roovers <jer@gentoo.org> php-5.5.28.ebuild:
  Stable for HPPA (bug #556952).

  Package-Manager: portage-2.2.20.1

  16 Aug 2015; Mikle Kolyada <zlogene@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  ia64 stable wrt bug #543834

  Package-Manager: portage-2.2.20.1

  19 Aug 2015; Markus Meier <maekke@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  arm stable, bug #556952

  Package-Manager: portage-2.2.20.1

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml,
  php-5.4.41.ebuild, php-5.4.42.ebuild, php-5.4.43.ebuild, php-5.4.44.ebuild,
  php-5.5.25-r1.ebuild, php-5.5.26.ebuild, php-5.5.27.ebuild,
  php-5.5.28.ebuild, php-5.6.9.ebuild, php-5.6.10.ebuild, php-5.6.11.ebuild,
  php-5.6.12.ebuild, php-7.0.0_beta1.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>

*php-7.0.0_rc1 (24 Aug 2015)

  24 Aug 2015; Ole Markus With <olemarkus@gentoo.org> +php-7.0.0_rc1.ebuild:
  Added first PHP 7.0.0 RC

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> php-7.0.0_rc1.ebuild:
  Enable https for all google URIs

  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

  26 Aug 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  ppc stable wrt bug #556952

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

*php-7.0.0_rc2 (05 Sep 2015)
*php-5.6.13 (05 Sep 2015)
*php-5.5.29 (05 Sep 2015)
*php-5.4.45 (05 Sep 2015)

  05 Sep 2015; Ole Markus With <olemarkus@gentoo.org> +php-5.4.45.ebuild,
  +php-5.5.29.ebuild, +php-5.6.13.ebuild, +php-7.0.0_rc2.ebuild:
  Version bumps

  Package-Manager: portage-2.2.18

  06 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.44.ebuild,
  php-5.5.28.ebuild, php-5.6.12.ebuild:
  sparc stable wrt bug #556952

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

  07 Sep 2015; Ole Markus With <olemarkus@gentoo.org> -php-5.4.41.ebuild,
  -php-5.4.42.ebuild, -php-5.4.43.ebuild, -php-5.5.25-r1.ebuild,
  -php-5.5.26.ebuild, -php-5.5.27.ebuild, -php-5.6.9.ebuild,
  -php-5.6.10.ebuild, -php-5.6.11.ebuild:
  Cleanup of old ebuilds

  Package-Manager: portage-2.2.18

  07 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  amd64 stable wrt bug #559612

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

  07 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  x86 stable wrt bug #559612

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

  08 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  ppc stable wrt bug #559612

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

  08 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  ppc64 stable wrt bug #559612

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

  09 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  ia64 stable wrt bug #559612

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

  09 Sep 2015; Agostino Sarubbo <ago@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  sparc stable wrt bug #559612

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

  11 Sep 2015; Jeroen Roovers <jer@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  Stable for HPPA (bug #559612).

  Package-Manager: portage-2.2.20.1

  11 Sep 2015; Tobias Klausmann <klausman@gentoo.org> php-5.4.45.ebuild:
  add alpha keyword

  Gentoo-Bug: 559612

  Package-Manager: portage-2.2.20.1

  11 Sep 2015; Tobias Klausmann <klausman@gentoo.org> php-5.5.29.ebuild:
  add alpha keyword

  Gentoo-Bug: 559612

  Package-Manager: portage-2.2.20.1

  11 Sep 2015; Tobias Klausmann <klausman@gentoo.org> php-5.6.13.ebuild:
  add alpha keyword

  Gentoo-Bug: 559612

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc3 (18 Sep 2015)

  18 Sep 2015; Ole Markus With <olemarkus@gentoo.org> +php-7.0.0_rc3.ebuild:
  bump PHP 7 RC

  Package-Manager: portage-2.2.18

  27 Sep 2015; Markus Meier <maekke@gentoo.org> php-5.4.45.ebuild,
  php-5.5.29.ebuild, php-5.6.13.ebuild:
  arm stable, bug #559612

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc4 (02 Oct 2015)
*php-5.6.14 (02 Oct 2015)
*php-5.5.30 (02 Oct 2015)

  02 Oct 2015; Ole Markus With <olemarkus@gentoo.org> +php-5.5.30.ebuild,
  +php-5.6.14.ebuild, +php-7.0.0_rc4.ebuild:
  Version bumps

  Package-Manager: portage-2.2.18

  02 Oct 2015; Ole Markus With <olemarkus@gentoo.org> -php-5.4.44.ebuild,
  -php-5.5.28.ebuild, -php-5.6.12.ebuild, -php-7.0.0_beta1.ebuild,
  -php-7.0.0_rc1.ebuild, -php-7.0.0_rc2.ebuild, -php-7.0.0_rc3.ebuild:
  Cleanup of old ebuilds

  Package-Manager: portage-2.2.18

*php-7.0.0_rc5 (15 Oct 2015)

  15 Oct 2015; Ole Markus With <olemarkus@gentoo.org> +php-7.0.0_rc5.ebuild:
  Bump php RC

  Package-Manager: portage-2.2.18

  28 Oct 2015; Agostino Sarubbo <ago@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  amd64 stable wrt bug #562882

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

  28 Oct 2015; Agostino Sarubbo <ago@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  x86 stable wrt bug #562882

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

  29 Oct 2015; Jeroen Roovers <jer@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  Stable for PPC64 (bug #562882).

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

  29 Oct 2015; Jeroen Roovers <jer@gentoo.org> php-5.6.14.ebuild:
  Stable for HPPA (bug #562882).

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

  29 Oct 2015; Jeroen Roovers <jer@gentoo.org> php-5.5.30.ebuild:
  Stable for HPPA (bug #562882).

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

*php-5.6.15 (31 Oct 2015)

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> +php-5.6.15.ebuild:
  version bump adding php-5.6.15.ebuild.

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  fix typo "chose" -> "choose", bug #537904 by David Flogeras.

  Gentoo-Bug: 537904

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  replace dead URL in postinst, bug #564432 by Ortwin Glueck.

  The postinst message was pointing people to

    https://www.gentoo.org/proj/en/php/php-upgrading.xml

  which now simply 404s. Its spiritual successor is on the wiki, so the
  postinst message has been updated to send people there.

  Gentoo-Bug: 564432

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  slot openssl dependency.

  The dev-libs/openssl package now has two slots. The SLOT=0.9.8 is for
  binary compatibility, and SLOT=0 is what most packages should depend
  on. Adding ":0" to our openssl dependency ensures that we get the
  correct slot, and silences a repoman warning.

  The lower bound on openssl was also removed since all versions in the
  tree satisfied it.

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  remove redundant "if use firebird" check.

  The use_with function doesn't do anything if its USE flag is disabled,
  so there's no reason to wrap use_with in "if use...".

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  remove redundant "if use odbc" check.

  The use_with function doesn't do anything if its USE flag is disabled,
  so there's no reason to wrap use_with in "if use...".

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  remove redundant "if use iodbc" check.

  The use_with function doesn't do anything if its USE flag is disabled,
  so there's no reason to wrap use_with in "if use...". This use_with
  block was also merged with the one for USE=odbc.

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  remove redundant "if use oci8-instant-client" check.

  The use_with function doesn't do anything if its USE flag is disabled,
  so there's no reason to wrap use_with in "if use...".

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  remove second redundant "if use oci8-instant-client" check.

  This fixes the same issue as 7c05e6f, but in another spot in the ebuild.

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  use "+=" consistently for appending to $my_conf.

  There were a few places still using my_conf="${my_conf} ..." to append
  to the my_conf variable. Update them all to use the "append" operator.

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  add "any slot" operator to our dev-db/postgresql dependency.

  This does not change the current behavior, and silences a repoman
  warning. I also believe it is correct: dev-db/postgresql is slotted
  along major (e.g. 9.3, 9.4) version lines. The libpq interface doesn't
  seem to break between those versions, and mailing list discussions by
  the Postgres devs indicate that they'd prefer to avoid that kind of
  breakage.

  Gentoo-Bug: 551526

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  depend on SLOT=0 of dev-libs/gmp.

  The dev-libs/gmp package has two slots, one of which is only kept
  around for the libgmp.so.3 ABI SONAME. We want to build against
  SLOT=0, so depend on that.

  Package-Manager: portage-2.2.20.1

  31 Oct 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15.ebuild,
  php-7.0.0_rc5.ebuild:
  depend on SLOT=0 of sys-libs/readline.

  The sys-libs/readline package has three slots, two of which are kept
  around for ABI compatibility. Packages generally build against SLOT=0,
  and that's the one we want, so this adds the slot operator to the
  dependency.

  Package-Manager: portage-2.2.20.1

  01 Nov 2015; Tobias Klausmann <klausman@gentoo.org> php-5.5.30.ebuild:
  add alpha keyword

  Gentoo-Bug: 562882

  Package-Manager: portage-2.2.23

  01 Nov 2015; Tobias Klausmann <klausman@gentoo.org> php-5.6.14.ebuild:
  add alpha keyword

  Gentoo-Bug: 562882

  Package-Manager: portage-2.2.23

*php-5.6.15-r1 (02 Nov 2015)

  02 Nov 2015; Michael Orlitzky <mjo@gentoo.org>
  +files/fix-5.6.15-fpm-const-crash.patch, -php-5.6.15.ebuild,
  +php-5.6.15-r1.ebuild:
  revbump php-5.6.15 to fix a segfault.

  The segfault issue was reported in bug #564690 by Zoltán
  Halassy. There is an upstream fix that we've added as a patch. The
  problem/fix have both been confirmed.

  Since this requires a revbump, the sys-libs/db dependency has been
  fixed along with it according to bug #521222. It still remains to
  address that issue for the php-7.x series.

  Gentoo-Bug: 521222
  Gentoo-Bug: 564690

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc6 (03 Nov 2015)

  03 Nov 2015; Michael Orlitzky <mjo@gentoo.org> +php-7.0.0_rc6.ebuild:
  version bump the 7.x series and fix bug #521222.

  This adds the sixth release candidate of php-7.0.0, leaving rc4 and
  rc5 behind. No changes were needed to the ebuild, but to avoid a later
  revbump, the sys-libs/db dependency was updated according to bug
  is gone.

  Gentoo-Bug: 521222

  Package-Manager: portage-2.2.20.1

  03 Nov 2015; Michael Orlitzky <mjo@gentoo.org> php-5.6.15-r1.ebuild,
  php-7.0.0_rc6.ebuild:
  remove two obsolete addpredict() calls.

  We had two calls to addpredict() at the top of src_prepare().
  Supposedly they were needed with USE="session sharedmem"; however,
  testing shows that they are no longer necessary. The build succeeds
  fine without the addpredict() calls, so we remove them.

  Package-Manager: portage-2.2.20.1

  04 Nov 2015; Agostino Sarubbo <ago@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  ppc stable wrt bug #562882

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

  05 Nov 2015; Agostino Sarubbo <ago@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  sparc stable wrt bug #562882

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

*php-7.0.0_rc6-r1 (05 Nov 2015)
*php-5.6.15-r2 (05 Nov 2015)

  05 Nov 2015; Michael Orlitzky <mjo@gentoo.org> -php-5.6.15-r1.ebuild,
  +php-5.6.15-r2.ebuild, -php-7.0.0_rc6.ebuild, +php-7.0.0_rc6-r1.ebuild:
  don't depend on versions of sys-libs/db that won't be detected.

  In bug #564824, Robert Förster noticed that there's an issue building
  PHP with both sys-libs/db-5.3 and sys-libs/db-6.0 installed. The root
  cause of the failure is that PHP attempts to autodetect sys-libs/db,
  but doesn't specifically look for db-5.3. When db-5.3 is not found,
  it falls back to /usr/include/db.h from version 6.0 and that version
  is incompatible.

  A similar issue exists with older 4.x versions, but not with db-4.5
  through db-5.1. A fix has been sent upstream for db-5.3. In the
  meantime, we remove that and the older 4.x versions from $DEPEND.

  Gentoo-Bug: 564824

  Package-Manager: portage-2.2.20.1

  05 Nov 2015; Markus Meier <maekke@gentoo.org> php-5.5.30.ebuild:
  arm stable, bug #562882

  Package-Manager: portage-2.2.23
  RepoMan-Options: --include-arches="arm"

  05 Nov 2015; Markus Meier <maekke@gentoo.org> php-5.6.14.ebuild:
  arm stable, bug #562882

  Package-Manager: portage-2.2.23
  RepoMan-Options: --include-arches="arm"

*php-5.6.15-r3 (06 Nov 2015)

  06 Nov 2015; Michael Orlitzky <mjo@gentoo.org> +php-5.6.15-r3.ebuild:
  revbump dev-lang/php-5.6.15 to fix QA issues.

  This commit fixes a number of issues in the php-5.6.15-r2 ebuild:

    * The ./configure handling is rewritten to use autotools-utils.
      This is the most invasive (and dangerous) change, but fixes
      all of the unquoted $EPREFIX appearing throughout src_configure.

    * Add die() statements to sed, cp, cd, etc. commands.

    * Remove die() statements on helper functions (we're using EAPI 5).

    * Line-wrap some long lines.

  Ideally this should behave the same as -r2, but since the change is so
  invasive, -r3 is being added masked.

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc6-r2 (06 Nov 2015)

  06 Nov 2015; Michael Orlitzky <mjo@gentoo.org> +php-7.0.0_rc6-r2.ebuild:
  revbump dev-lang/php-7.0.0_rc6 to fix QA issues.

  This commit makes the same changes as ec5104f, only for the latest 7.x
  series ebuild. The 7.x series is already package.masked.

  Package-Manager: portage-2.2.20.1

  07 Nov 2015; Mikle Kolyada <zlogene@gentoo.org> php-5.5.30.ebuild,
  php-5.6.14.ebuild:
  ia64 stable wrt bug #562882

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc7 (16 Nov 2015)

  16 Nov 2015; Michael Orlitzky <mjo@gentoo.org> +php-7.0.0_rc7.ebuild:
  version bump the 7.x series.

  Package-Manager: portage-2.2.20.1

  16 Nov 2015; Michael Orlitzky <mjo@gentoo.org> -php-7.0.0_rc4.ebuild,
  -php-7.0.0_rc5.ebuild, -php-7.0.0_rc6-r1.ebuild, -php-7.0.0_rc6-r2.ebuild:
  remove old PHP 7 release candidates.

  Package-Manager: portage-2.2.20.1

  19 Nov 2015; Michael Orlitzky <mjo@gentoo.org> -php-5.6.15-r2.ebuild:
  remove old revision of php-5.6.15.

  Package-Manager: portage-2.2.20.1

  19 Nov 2015; Michael Orlitzky <mjo@gentoo.org> -php-5.5.29.ebuild,
  -php-5.6.13.ebuild:
  remove two superceded versions with security vulnerabilities.

  Gentoo-Bug: 562882

  Package-Manager: portage-2.2.20.1

  19 Nov 2015; Michael Orlitzky <mjo@gentoo.org>
  -files/all_mysql_socket_location-gentoo.patch,
  -files/all_strict_aliasing.patch, -files/bison_any_version.patch,
  -files/bison_build_2.patch, -files/bison_build_2a.patch,
  -files/fix-libstdc++-underlinking.patch,
  -files/freetype-2.5.1-linking-fix.patch, -files/iodbc-pkgconfig-r1.patch,
  -files/iodbc-pkgconfig.patch, -files/missing-openssl-include.patch,
  -files/php-fpm-r4.init, -files/php-libvpx.patch,
  -files/stricter-libc-client-symlink-check.patch:
  remove old patch and init files.

  Most of the patches in $FILESDIR are no longer being used. There's
  also an old php-fpm-r4.init script that has been moved to
  app-eselect/eselect-php. Get rid of them.

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc7-r1 (23 Nov 2015)
*php-5.6.15-r4 (23 Nov 2015)

  23 Nov 2015; Michael Orlitzky <mjo@gentoo.org> -php-5.6.15-r3.ebuild,
  +php-5.6.15-r4.ebuild, -php-7.0.0_rc7.ebuild, +php-7.0.0_rc7-r1.ebuild:
  revision the 5.6.x and 7.x series to use upstream php-fpm.conf.

  There are a few changes batched together here.

  The main purpose of the new revisions is to stop using our bundled
  php-fpm.conf (from php-5.3) and switch to the one provided by
  upstream. This is bug 559116. In the 5.6.x series, this is trivial: we
  just install the php-fpm.conf from the tarball. But in 7.x, upstream
  has split the FPM config into pieces. Their default "include" path
  needed to be changed for our slotting, so that has been done with a
  `sed` in src_prepare().  We then install the split "www.conf" config
  file in the location that was enshrined with `sed`.

  Next, the autotools-utils eclass was dropped. The functionality from
  src_configure() was inlined. This is due to the deprecation of that
  eclass; see,

    https://blogs.gentoo.org/mgorny/2015/11/13/the-ultimate-guide-to-eapi-6/

  Finally, the db-use eclass was dropped. It was no longer used.

  Gentoo-Bug: 559116

  Package-Manager: portage-2.2.20.1

*php-7.0.0_rc8 (28 Nov 2015)

  28 Nov 2015; Ole Markus With <olemarkus@gentoo.org> +php-7.0.0_rc8.ebuild:
  bump php7 rc

  Package-Manager: portage-2.2.20.1

*php-5.6.16 (29 Nov 2015)

  29 Nov 2015; Michael Orlitzky <mjo@gentoo.org>
  -files/fix-5.6.15-fpm-const-crash.patch, -php-5.6.15-r4.ebuild,
  +php-5.6.16.ebuild:
  version bump the 5.6.x series.

  This is a straightforward version bump, and also removes a patch
  against 5.6.15 that was fixed in 5.6.16.

  Package-Manager: portage-2.2.20.1

*php-7.0.0 (02 Dec 2015)

  02 Dec 2015; Ole Markus With <olemarkus@gentoo.org> +php-7.0.0.ebuild:
  Version bump: php 7.0.0

  Package-Manager: portage-2.2.20.1

  02 Dec 2015; Ole Markus With <olemarkus@gentoo.org>
  -php-7.0.0_rc7-r1.ebuild, -php-7.0.0_rc8.ebuild:
  Remove php 7.0 rcs

  Package-Manager: portage-2.2.20.1

*php-7.0.1 (18 Dec 2015)

  18 Dec 2015; Brian Evans <grknight@gentoo.org> metadata.xml,
  +php-7.0.1.ebuild:
  Version bump including phpdbg support

  Package-Manager: portage-2.2.26

  07 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-7.0.0.ebuild:
  remove php-7.0.0; use php-7.0.1 instead.

  Package-Manager: portage-2.2.24

  07 Jan 2016; Michael Orlitzky <mjo@gentoo.org> php-7.0.1.ebuild:
  update the apache2 post-install notification about mod_php.

  Newer versions of app-eselect/eselect-php require some apache
  configuration changes. This configuration is mentioned in the
  dev-lang/php pkg_postinst() phase, which isn't ideal, but is what it
  is. Since php:7.0 requires the new eselect-php, the pkg_postinst() for
  php:7.0 has been updated to reflect the configuration changes.

  Thanks to Tomáš Mózes for pointing this out.

  Gentoo-Bug: 552156

  Package-Manager: portage-2.2.24

*php-7.0.2 (07 Jan 2016)

  07 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-7.0.1.ebuild,
  +php-7.0.2.ebuild:
  version bump 7.0.1 -> 7.0.2.

  Package-Manager: portage-2.2.24

*php-5.5.31 (09 Jan 2016)

  09 Jan 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.31.ebuild:
  add version 5.5.31 as part of bug #571254.

  Package-Manager: portage-2.2.24

*php-5.6.17 (09 Jan 2016)

  09 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.16.ebuild,
  +php-5.6.17.ebuild:
  replace v5.6.16 with v5.6.17 as part of bug #571254.

  Package-Manager: portage-2.2.24

  14 Jan 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  amd64 stable wrt bug #571254

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

  15 Jan 2016; Andreas Schuerch <nativemad@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  5.5.31 and 5.6.17 stable on x86, see bug 571254

  Package-Manager: portage-2.2.26

  17 Jan 2016; Markus Meier <maekke@gentoo.org> php-5.5.31.ebuild:
  arm stable, bug #571254

  Package-Manager: portage-2.2.26
  RepoMan-Options: --include-arches="arm"

  17 Jan 2016; Markus Meier <maekke@gentoo.org> php-5.6.17.ebuild:
  arm stable, bug #571254

  Package-Manager: portage-2.2.26
  RepoMan-Options: --include-arches="arm"

  17 Jan 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.31.ebuild:
  add alpha keyword

  Gentoo-Bug: 571254

  Package-Manager: portage-2.2.26

  17 Jan 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.17.ebuild:
  add alpha keyword

  Gentoo-Bug: 571254

  Package-Manager: portage-2.2.26

  17 Jan 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  ppc stable wrt bug #571254

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

  18 Jan 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  Stable for HPPA PPC64 (bug #571254).

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

*php-7.0.2-r1 (23 Jan 2016)
*php-5.6.17-r1 (23 Jan 2016)

  23 Jan 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.6.17-r1.ebuild,
  -php-7.0.2.ebuild, +php-7.0.2-r1.ebuild:
  revision the 5.6 and 7.0 series to set --localstatedir.

  The php-fpm.conf file uses the @localstatedir@ passed to ./configure
  as its default prefix for some settings. The econf default for
  localstatedir is ${EPREFIX}/var/lib, but php-fpm.conf is expecting
  ${EPREFIX}/var, so we pass that instead. This ensures that the default
  log location (e.g. /var/log) actually exists.

  Gentoo-Bug: 572002

  Package-Manager: portage-2.2.26

  24 Jan 2016; Michał Górny <mgorny@gentoo.org> metadata.xml:
  Unify quoting in metadata.xml files for machine processing

  Force unified quoting in all metadata.xml files since lxml does not
  preserve original use of single and double quotes. Ensuring unified
  quoting before the process allows distinguishing the GLEP 67-related
  metadata.xml changes from unrelated quoting changes.

  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)

*php-7.0.2-r2 (25 Jan 2016)
*php-5.6.17-r2 (25 Jan 2016)

  25 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.17-r1.ebuild,
  +php-5.6.17-r2.ebuild, -php-7.0.2-r1.ebuild, +php-7.0.2-r2.ebuild:
  revision the 5.6 and 7.0 series to add pdo-firebird support.

  PHP has two Firebird drivers -- the legacy "interbase" driver and the
  new pdo-firebird driver. We have always supported the legacy driver
  with USE=firebird, but were missing the pdo-firebird configure flag
  when USE="pdo firebird" was set. Similar tricks were in place for
  e.g. sqlite and oci8, but Firebird was forgotten.

  Dmitry A. Bakshaev was nice enough to point this out in bug 538226,
  and even supplied a patch. Testing shows that both drivers work in
  php:5.6, but that only the PDO driver works in php:7.0. That's not
  a regression; this commit adds the only driver that works in php:7.0.

  Gentoo-Bug: 538226
  Suggested-By: Dmitry A. Bakshaev

  Package-Manager: portage-2.2.26

*php-7.0.2-r3 (28 Jan 2016)
*php-5.6.17-r3 (28 Jan 2016)

  28 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.17-r2.ebuild,
  +php-5.6.17-r3.ebuild, -php-7.0.2-r2.ebuild, +php-7.0.2-r3.ebuild:
  revision the 5.6 and 7.0 series to add sys-libs/db:5.3 support.

  We had to leave db:5.3 out of our dependency string until now because
  the upstream build system couldn't detect it. The latest v5.6.17 and
  v7.0.2 will find it, though, so we add it as an option.

  Gentoo-Bug: 564824

  Package-Manager: portage-2.2.26

*php-7.0.2-r4 (28 Jan 2016)
*php-5.6.17-r4 (28 Jan 2016)

  28 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.17-r3.ebuild,
  +php-5.6.17-r4.ebuild, -php-7.0.2-r3.ebuild, +php-7.0.2-r4.ebuild:
  call `eselect php cleanup` in pkg_postinst and pkg_postrm.

  We have two bugs (432962 and 572436) regarding stale eselect symlinks.

  The first issue is that removal of an old slot does not update the
  eselect-php symlinks to point to a newer slot. Thus, if a user
  upgrades slots and depcleans the old one, his symlinks (and thus PHP)
  are left broken until eselect-php is run manually. This is fixed by
  running `eselect php cleanup` in pkg_postrm, since removal of the
  old slot will trigger a cleanup (which updates the symlink).

  The second issue is that disabling a SAPI would leave behind a broken
  symlink. For example, if the "cgi" SAPI was once used but the user has
  reinstalled PHP with USE="-cgi", then the old eselect-php symlink for
  php-cgi would be left behind. This is fixed by running `eselect php
  cleanup` in pkg_postinst, since that will be triggered after the
  reinstall finishes, at which point the php-cgi symlink will be dead
  and thus get removed.

  Gentoo-Bug: 432962
  Gentoo-Bug: 572436

  Package-Manager: portage-2.2.26

  28 Jan 2016; Michael Orlitzky <mjo@gentoo.org> php-5.6.17-r4.ebuild,
  php-7.0.2-r4.ebuild:
  remove "minor" from "minor version slotting" in elogs.

  Now that PHP upstream is playing fast and loose with their versioning,
  our slotting applies to major versions as well as minor ones. Remove
  the word "minor" since it's no longer correct.

  Package-Manager: portage-2.2.26

*php-7.0.2-r5 (28 Jan 2016)
*php-5.6.17-r5 (28 Jan 2016)

  28 Jan 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.17-r4.ebuild,
  +php-5.6.17-r5.ebuild, -php-7.0.2-r4.ebuild, +php-7.0.2-r5.ebuild:
  enforce what was an elog warning with REQUIRED_USE.

  The interactive "php -a" command-line interface will hang unless PHP
  is built with USE=readline. This used to be an elog warning, but was
  rather easy to overlook and mysterious to those who hit the bug. We
  already have REQUIRED_USE for our other flags, so it makes sense to
  enforce the cli dependency on readline there.

  Package-Manager: portage-2.2.26

  30 Jan 2016; Brian Evans <grknight@gentoo.org> php-7.0.2-r5.ebuild:
  Adjust the REQUIRED_USE to be readline or libedit for cli

  Package-Manager: portage-2.2.27

*php-7.0.3 (05 Feb 2016)
*php-5.6.18 (05 Feb 2016)
*php-5.5.32 (05 Feb 2016)

  05 Feb 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.32.ebuild,
  -php-5.6.17-r5.ebuild, +php-5.6.18.ebuild, -php-7.0.2-r5.ebuild,
  +php-7.0.3.ebuild:
  version bump all three slots for security fixes.

  Gentoo-Bug: 573892

  Package-Manager: portage-2.2.26

  09 Feb 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.18.ebuild:
  add alpha keyword

  Gentoo-Bug: 573892

  Package-Manager: portage-2.2.27

  09 Feb 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.32.ebuild:
  add alpha keyword

  Gentoo-Bug: 573892

  Package-Manager: portage-2.2.27

  11 Feb 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  amd64 stable wrt bug #573892

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

  12 Feb 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  Stable for HPPA PPC64 (bug #573892).

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

  14 Feb 2016; Brian Evans <grknight@gentoo.org> php-5.6.18.ebuild:
  Update cli REQUIRED_USE to be exactly-one-of readline or libedit

  Package-Manager: portage-2.2.27

*php-7.0.4 (04 Mar 2016)
*php-5.6.19 (04 Mar 2016)
*php-5.5.33 (04 Mar 2016)

  04 Mar 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.33.ebuild,
  +php-5.6.19.ebuild, -php-7.0.3.ebuild, +php-7.0.4.ebuild:
  add new versions of the three supported series.

  This adds php-5.5.33, php-5.6.19, and php-7.0.4 -- all bugfix/security
  releases. The DESCRIPTION of the new ebuilds was shortened to respect
  the 80-character limit. Support for LibreSSL was also added to the 5.6
  and 7.0 series in the process.

  Gentoo-Bug: 575922

  Package-Manager: portage-2.2.26

  15 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  amd64 stable wrt bug #577376

  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> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  x86 stable wrt bug #577376

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

  15 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  x86 stable wrt bug #573892

  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> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  ppc stable wrt bug #577376

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

  16 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  ppc stable wrt bug #573892

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

  17 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  ppc64 stable wrt bug #577376

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

  17 Mar 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.33.ebuild:
  5.5.33-r0: add alpha keyword

  Gentoo-Bug: 577376

  Package-Manager: portage-2.2.28

  17 Mar 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.19.ebuild:
  5.6.19-r0: add alpha keyword

  Gentoo-Bug: 577376

  Package-Manager: portage-2.2.28

  19 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  sparc stable wrt bug #577376

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

  19 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  sparc stable wrt bug #573892

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

  19 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  sparc stable wrt bug #571254

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

  19 Mar 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.19.ebuild:
  Stable for HPPA (bug #577376).

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

  20 Mar 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.33.ebuild:
  Stable for HPPA (bug #577376).

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

  20 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.33.ebuild,
  php-5.6.19.ebuild:
  ia64 stable wrt bug #577376

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

  20 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.32.ebuild,
  php-5.6.18.ebuild:
  ia64 stable wrt bug #573892

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

  20 Mar 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.31.ebuild,
  php-5.6.17.ebuild:
  ia64 stable wrt bug #571254

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

*php-7.0.4-r1 (21 Mar 2016)

  21 Mar 2016; Michael Orlitzky <mjo@gentoo.org> -php-7.0.4.ebuild,
  +php-7.0.4-r1.ebuild:
  revision the 7.0 series to add pdo-dblib support.

  The PDO "dblib" driver was somehow lost during the transition from
  php:5.6 to php:7.0. I've added it back, and tested that it works with
  a simple query against a Microsoft SQL Server 2005 database.

  Gentoo-Bug: 576782

  Package-Manager: portage-2.2.26

  21 Mar 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.5.30.ebuild,
  -php-5.6.14.ebuild:
  remove vulnerable php-5.5.30 and php-5.6.14.

  Gentoo-Bug: 571254

  Package-Manager: portage-2.2.26

  24 Mar 2016; Markus Meier <maekke@gentoo.org> php-5.5.33.ebuild:
  arm stable, bug #577376

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="arm"

  24 Mar 2016; Markus Meier <maekke@gentoo.org> php-5.6.19.ebuild:
  arm stable, bug #577376

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="arm"

  24 Mar 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.5.31.ebuild,
  -php-5.5.32.ebuild, -php-5.6.17.ebuild, -php-5.6.18.ebuild:
  remove old vulnerable php:5.5 and php:5.6 ebuilds.

  Gentoo-Bug: 577376

  Package-Manager: portage-2.2.26

*php-7.0.5 (04 Apr 2016)
*php-5.6.20 (04 Apr 2016)
*php-5.5.34 (04 Apr 2016)

  04 Apr 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.34.ebuild,
  +php-5.6.20.ebuild, -php-7.0.4-r1.ebuild, +php-7.0.5.ebuild:
  new versions of all three series with security fixes.

  Gentoo-Bug: 578734

  Package-Manager: portage-2.2.26

  07 Apr 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.34.ebuild,
  php-5.6.20.ebuild:
  amd64 stable wrt bug #578734

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

  07 Apr 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.34.ebuild,
  php-5.6.20.ebuild:
  x86 stable wrt bug #578734

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

  08 Apr 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.34.ebuild,
  php-5.6.20.ebuild:
  Stable for PPC64 (bug #578734).

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

  10 Apr 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.34.ebuild,
  php-5.6.20.ebuild:
  Stable for HPPA PPC64 (bug #578734).

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

  19 Apr 2016; Markus Meier <maekke@gentoo.org> php-5.5.34.ebuild:
  arm stable, bug #578734

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="arm"

  19 Apr 2016; Markus Meier <maekke@gentoo.org> php-5.6.20.ebuild:
  arm stable, bug #578734

  Package-Manager: portage-2.2.28
  RepoMan-Options: --include-arches="arm"

*php-7.0.6 (04 May 2016)
*php-5.6.21 (04 May 2016)
*php-5.5.35 (04 May 2016)

  04 May 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.35.ebuild,
  +php-5.6.21.ebuild, -php-7.0.5.ebuild, +php-7.0.6.ebuild:
  version bump all three series with security fixes.

  Gentoo-Bug: 581834

  Package-Manager: portage-2.2.26

  05 May 2016; Brian Evans <grknight@gentoo.org> -php-5.4.45.ebuild:
  Drop PHP 5.4 slot which has been EOL for 6 months

  Package-Manager: portage-2.2.28

  05 May 2016; Brian Evans <grknight@gentoo.org> metadata.xml:
  Remove old metadata.xml description for mysqlnd

  Package-Manager: portage-2.2.28

  12 May 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  amd64 stable wrt bug #581834

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

  12 May 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  x86 stable wrt bug #581834

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

  13 May 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  Stable for PPC64 (bug #581834).

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

  14 May 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  Stable for HPPA (bug #581834).

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

  19 May 2016; Markus Meier <maekke@gentoo.org> php-5.5.35.ebuild:
  arm stable, bug #581834

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

  19 May 2016; Markus Meier <maekke@gentoo.org> php-5.6.21.ebuild:
  arm stable, bug #581834

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

  21 May 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.35.ebuild:
  5.5.35-r0: add alpha keyword

  Gentoo-Bug: 581834

  Package-Manager: portage-2.3.0_rc1

  21 May 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.21.ebuild:
  5.6.21-r0: add alpha keyword

  Gentoo-Bug: 581834

  Package-Manager: portage-2.3.0_rc1

*php-7.0.7 (04 Jun 2016)
*php-5.6.22 (04 Jun 2016)
*php-5.5.36 (04 Jun 2016)

  04 Jun 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.36.ebuild,
  +php-5.6.22.ebuild, -php-7.0.6.ebuild, +php-7.0.7.ebuild:
  new security releases for all three supported series.

  Gentoo-Bug: 584204

  Package-Manager: portage-2.2.28

*php-7.0.7-r1 (04 Jun 2016)

  04 Jun 2016; Michael Orlitzky <mjo@gentoo.org> metadata.xml,
  -php-7.0.7.ebuild, +php-7.0.7-r1.ebuild:
  new revision of the 7.x series to fix our webp support.

  In the 5.x series, libvpx was used to provide webp support to the gd
  library. It was pulled in with USE=vpx. In php-7.x, however, libvpx
  has been replaced with libwebp. The old USE=vpx flag no longer worked,
  so it has been replaced with USE=webp and eveything updated to use
  that for php-7.x.

  Package-Manager: portage-2.2.28

  22 Jun 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.36.ebuild,
  php-5.6.22.ebuild:
  amd64 stable wrt bug #584204

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

  22 Jun 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.36.ebuild,
  php-5.6.22.ebuild:
  x86 stable wrt bug #584204

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

*php-7.0.8 (28 Jun 2016)
*php-5.6.23 (28 Jun 2016)
*php-5.5.37 (28 Jun 2016)

  28 Jun 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.5.37.ebuild,
  +php-5.6.23.ebuild, -php-7.0.7-r1.ebuild, +php-7.0.8.ebuild:
  version bump all three series for security fixes.

  Gentoo-Bug: 587246

  Package-Manager: portage-2.2.28

  30 Jun 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.36.ebuild:
  5.5.36-r0: add alpha keyword

  Gentoo-Bug: 584204

  Package-Manager: portage-2.3.0

  30 Jun 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.22.ebuild:
  5.6.22-r0: add alpha keyword

  Gentoo-Bug: 584204

  Package-Manager: portage-2.3.0

  30 Jun 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  amd64 stable wrt bug #587246

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

  30 Jun 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  x86 stable wrt bug #587246

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

  30 Jun 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.37.ebuild:
  5.5.37-r0: add alpha keyword

  Gentoo-Bug: 584204

  Package-Manager: portage-2.3.0

  30 Jun 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.23.ebuild:
  5.6.23-r0: add alpha keyword

  Gentoo-Bug: 584204

  Package-Manager: portage-2.3.0

  02 Jul 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  Stable for HPPA (bug #584204).

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

  03 Jul 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  Stable for PPC64 (bug #587246).

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

  05 Jul 2016; Markus Meier <maekke@gentoo.org> php-5.5.36.ebuild:
  arm stable, bug #584204

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

  05 Jul 2016; Markus Meier <maekke@gentoo.org> php-5.6.22.ebuild:
  arm stable, bug #584204

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  ppc stable wrt bug #581834

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  ppc stable wrt bug #587246

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  sparc stable wrt bug #581834

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  sparc stable wrt bug #587246

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.35.ebuild,
  php-5.6.21.ebuild:
  ia64 stable wrt bug #581834

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

  08 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.37.ebuild,
  php-5.6.23.ebuild:
  ia64 stable wrt bug #587246

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

  08 Jul 2016; Markus Meier <maekke@gentoo.org> php-5.5.37.ebuild:
  arm stable, bug #587246

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

  08 Jul 2016; Markus Meier <maekke@gentoo.org> php-5.6.23.ebuild:
  arm stable, bug #587246

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

  09 Jul 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.5.33.ebuild,
  -php-5.5.34.ebuild, -php-5.5.35.ebuild, -php-5.5.36.ebuild,
  -php-5.6.19.ebuild, -php-5.6.20.ebuild, -php-5.6.21.ebuild,
  -php-5.6.22.ebuild:
  remove old versions with security issues.

  Gentoo-Bug: 578734
  Gentoo-Bug: 581834
  Gentoo-Bug: 584204
  Gentoo-Bug: 587246

  Package-Manager: portage-2.2.28

*php-5.6.23-r1 (11 Jul 2016)

  11 Jul 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.6.23-r1.ebuild,
  php-7.0.8.ebuild:
  new edit/revision to hide some elog messages when possible.

  Two of the elog messages that we show only need to be dealt with
  once. If the user has the recently-emerged slot of PHP in his
  PHP_TARGETS already, then we don't need to bug him about that. And if
  he has PHP_INI_VERSION set to a legal value, then we don't need to
  inform him about that either.

  A new revision is made for the php-5.6.x series. The 7.x series is not
  stable, so an in-place edit was made.

  Gentoo-Bug: 440574

  Package-Manager: portage-2.2.28

*php-7.0.8-r1 (11 Jul 2016)
*php-5.6.23-r2 (11 Jul 2016)

  11 Jul 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.23-r1.ebuild,
  +php-5.6.23-r2.ebuild, -php-7.0.8.ebuild, +php-7.0.8-r1.ebuild:
  new revisions fixing opcache installation location logic.

  We install the opcache extension with a call to dolib.so, which
  requires an earlier call to "into" to set its installation
  location. If the user enables any SAPIs other than apache2, that
  happens incidentally. However, if only the apache2 SAPI is enabled,
  the installation location is never set, ultimately causing the
  extension to fail to load. This is fixed by adding a call to "into"
  directly before the dolib.so call.

  Two calls to use_if_iuse were also replaced with the simpler "use".

  Gentoo-Bug: 550676

  Package-Manager: portage-2.2.28

*php-7.0.8-r2 (15 Jul 2016)
*php-5.6.23-r3 (15 Jul 2016)

  15 Jul 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.23-r2.ebuild,
  +php-5.6.23-r3.ebuild, -php-7.0.8-r1.ebuild, +php-7.0.8-r2.ebuild:
  new revisions dropping depend.apache/apache-module.eclass.

  Package-Manager: portage-2.2.28

*php-7.0.9 (26 Jul 2016)
*php-5.6.24 (26 Jul 2016)
*php-5.5.38 (26 Jul 2016)

  26 Jul 2016; Brian Evans <grknight@gentoo.org> +php-5.5.38.ebuild,
  +php-5.6.24.ebuild, -php-7.0.8-r2.ebuild, +php-7.0.9.ebuild:
  Security version bump wrt bug 587246

  Also use .xz from upstream wrt bug 589692

  Package-Manager: portage-2.3.0

*php-7.0.9-r1 (26 Jul 2016)
*php-5.6.24-r1 (26 Jul 2016)

  26 Jul 2016; Michael Orlitzky <mjo@gentoo.org> +php-5.6.24-r1.ebuild,
  +php-7.0.9-r1.ebuild:
  new 5.6 and 7.0 revisions to clean up metadata cruft.

  The SRC_URI handling in our current ebuilds was a bit
  over-complicated. I've reorganized all of the metadata (KEYWORDS,
  SRC_URI, etc.) so that it's easier to understand. There were also some
  superfluous environment variables that have been removed.

  Package-Manager: portage-2.2.28

  26 Jul 2016; Michael Orlitzky <mjo@gentoo.org> -files/php5-ldvs:
  remove unused file ${FILESDIR}/php5-ldvs.

  Package-Manager: portage-2.2.28

  27 Jul 2016; Patrick Lauer <patrick@gentoo.org> php-7.0.9-r1.ebuild:
  Whitespace

  Package-Manager: portage-2.3.0

  28 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.38.ebuild,
  php-5.6.24.ebuild:
  amd64 stable wrt bug #589232

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

  28 Jul 2016; Agostino Sarubbo <ago@gentoo.org> php-5.5.38.ebuild,
  php-5.6.24.ebuild:
  x86 stable wrt bug #589232

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

  28 Jul 2016; Jeroen Roovers <jer@gentoo.org> php-5.5.38.ebuild:
  Stable for HPPA PPC64 (bug #589232).

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

  28 Jul 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.24.ebuild:
  Stable for PPC64 (bug #589232).

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

  30 Jul 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.24.ebuild:
  Stable for HPPA (bug #589232).

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

*php-7.0.9-r2 (04 Aug 2016)

  04 Aug 2016; Michael Orlitzky <mjo@gentoo.org>
  +files/fix-x86-build-bug_571658.patch, -php-7.0.9.ebuild,
  -php-7.0.9-r1.ebuild, +php-7.0.9-r2.ebuild:
  new 7.x revision to fix the build on x86.

  There is an upstream bug that causes the build to fail on x86 with
  gcc-4.9. There was an earlier fix for gcc-4.8, and this new revision
  has a fix that also works for gcc-4.9.

  And, since we're no longer inheriting depend.apache.eclass, I was
  finally able to update the ebuild to EAPI=6.

  A redundant earlier ebuild for php-7.0.9 was also removed.

  Gentoo-Bug: 571658

  Package-Manager: portage-2.2.28

*php-5.6.24-r2 (04 Aug 2016)

  04 Aug 2016; Michael Orlitzky <mjo@gentoo.org> -php-5.6.23-r3.ebuild,
  -php-5.6.24-r1.ebuild, +php-5.6.24-r2.ebuild:
  new revision of the 5.6 series updated to EAPI=6.

  This new revision doesn't add any new features; it merely gets us on
  EAPI=6 moving forward. An "unused" 5.6 series ebuild was removed at
  the same time.

  Package-Manager: portage-2.2.28

  05 Aug 2016; Michael Orlitzky <mjo@gentoo.org> php-5.6.24-r2.ebuild,
  php-7.0.9-r2.ebuild:
  use apxs from /usr/bin instead of /usr/sbin.

  Gentoo-Bug: 502384

  Package-Manager: portage-2.2.28

  10 Aug 2016; Markus Meier <maekke@gentoo.org> php-5.5.38.ebuild:
  arm stable, bug #589232

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

  10 Aug 2016; Markus Meier <maekke@gentoo.org> php-5.6.24.ebuild:
  arm stable, bug #589232

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

*php-5.6.25 (22 Aug 2016)

  22 Aug 2016; Brian Evans <grknight@gentoo.org> +php-5.6.25.ebuild:
  Version bump to 5.6.25

  Package-Manager: portage-2.3.0

*php-7.0.10 (22 Aug 2016)

  22 Aug 2016; Brian Evans <grknight@gentoo.org> +php-7.0.10.ebuild:
  Version bump to 7.0.10

  Package-Manager: portage-2.3.0

  22 Aug 2016; Brian Evans <grknight@gentoo.org> -php-5.6.24-r2.ebuild,
  -php-7.0.9-r2.ebuild:
  Drop old versions

  Package-Manager: portage-2.3.0

  03 Sep 2016; Tobias Klausmann <klausman@gentoo.org> php-5.5.38.ebuild:
  5.5.38-r0: add alpha keyword

  Gentoo-Bug: 589232

  03 Sep 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.24.ebuild:
  5.6.24-r0: add alpha keyword

  Gentoo-Bug: 589232

  09 Sep 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.25.ebuild:
  Stable for HPPA (bug #591710).

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

  10 Sep 2016; Agostino Sarubbo <ago@gentoo.org> php-5.6.25.ebuild:
  amd64 stable wrt bug #591710

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

  14 Sep 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.25.ebuild:
  Stable for PPC64 (bug #591710).

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

  17 Sep 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.25.ebuild:
  5.6.25-r0: add alpha keyword

  Gentoo-Bug: 591710

*php-7.0.11 (19 Sep 2016)

  19 Sep 2016; Brian Evans <grknight@gentoo.org> +php-7.0.11.ebuild:
  Version bump for 7.0.11

  Package-Manager: portage-2.3.0

  19 Sep 2016; Brian Evans <grknight@gentoo.org> -php-7.0.10.ebuild:
  Drop old 7.0.10

  Package-Manager: portage-2.3.0

*php-5.6.26 (19 Sep 2016)

  19 Sep 2016; Brian Evans <grknight@gentoo.org> +php-5.6.26.ebuild:
  Version bump for 5.6.26

  Package-Manager: portage-2.3.0

  21 Sep 2016; Tobias Klausmann <klausman@gentoo.org> php-5.6.26.ebuild:
  5.6.26-r0: add alpha keyword

  Gentoo-Bug: 594498

  21 Sep 2016; Agostino Sarubbo <ago@gentoo.org> php-5.6.26.ebuild:
  amd64 stable wrt bug #594498

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

  23 Sep 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.26.ebuild:
  Stable for HPPA (bug #594498).

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

  24 Sep 2016; Jeroen Roovers <jer@gentoo.org> php-5.6.26.ebuild:
  Stable for PPC64 (bug #594498).

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

