# ChangeLog for mail-client/thunderbird
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*thunderbird-38.1.0 (09 Aug 2015)
*thunderbird-31.8.0 (09 Aug 2015)
*thunderbird-24.8.0 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/enigmail-1.6.0-parallel-fix.patch,
  +files/icon/thunderbird-unbranded.desktop, +files/icon/thunderbird.desktop,
  +files/thunderbird-31.7.0-gcc5-1.patch,
  +files/thunderbird-gentoo-default-prefs-1.js-1, +metadata.xml,
  +thunderbird-24.8.0.ebuild, +thunderbird-31.8.0.ebuild,
  +thunderbird-38.1.0.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

  11 Aug 2015; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.1.0.ebuild:
  mozilla packages: Fix and normalize SRC_URI

  As per gentoo bug 557040, upstream dropped their FTP archive.  This
  commit cleans up all MOZ_*_URI specifications in mozilla ebuilds
  to match one-another.  Ebuilds now use MOZ_HTTP_URI and
  http://archive.mozilla.org/ ; adjusted ebuilds include:

  www-client/firefox-38.1.1
  www-client/firefox-39.0.3
  www-client/firefox-bin-38.1.1
  www-client/firefox-bin-39.0.3
  mail-client/thunderbird-38.1.0
  mail-client/thunderbird-bin-38.1.0
  www-client/seamonkey-2.33.1-r1
  www-client/seamonkey-bin-2.33.1
  www-client/seamonkey-bin-2.33.1-r1

  Package-Manager: portage-2.2.20

*thunderbird-38.2.0 (15 Aug 2015)

  15 Aug 2015; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.2.0.ebuild:
  version bump to 38.2 for security bug 557590

  15 Aug 2015; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.2.0.ebuild:
  38.2.0: switched lightning locale distfile to upstream

  Package-Manager: portage-2.2.20

  24 Aug 2015; Jeroen Roovers <jer@gentoo.org> thunderbird-38.2.0.ebuild:
  Stable for PPC64 (bug #557590).

  Package-Manager: portage-2.2.20.1

  24 Aug 2015; Justin Lecher <jlec@gentoo.org> metadata.xml,
  thunderbird-24.8.0.ebuild, thunderbird-31.8.0.ebuild,
  thunderbird-38.1.0.ebuild, thunderbird-38.2.0.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

  25 Aug 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.2.0.ebuild:
  amd64 stable wrt bug #557590

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

  25 Aug 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.2.0.ebuild:
  x86 stable wrt bug #557590

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

  26 Aug 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.2.0.ebuild:
  ppc stable wrt bug #557590

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

  07 Sep 2015; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.2.0.ebuild:
  firefox,thunderbird: Ensure $SHELL gets set to something

  Zero_Chaos noticed when building firefox within catalyst that failures would
  occur due to the build system not finding the correct shell.  It was
  determined
  this was due to catalyst not setting SHELL in the environment, which
  resulted in
  the firefox build system being passed SHELL="" and causing the failure.

  This commit ensures SHELL will never be empty by hard-coding /bin/bash
  (EPREFIX'd
  when appropriate) if there is no SHELL specified in the environment.

  Changed ebuilds:
  www-client/firefox-38.2.1
  www-client/firefox-40.0.3
  mail-client/thunderbird-38.2.0

  Package-Manager: portage-2.2.20.1

*thunderbird-38.3.0 (30 Sep 2015)

  30 Sep 2015; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.3.0.ebuild:
  bin}: version bump to 38.3.0

  Package-Manager: portage-2.2.20.1

  01 Oct 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.3.0.ebuild:
  amd64 stable wrt bug #561246

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

  01 Oct 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.3.0.ebuild:
  x86 stable wrt bug #561246

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

  04 Oct 2015; Jeroen Roovers <jer@gentoo.org> thunderbird-38.3.0.ebuild:
  Stable for PPC64 (bug #561246).

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

  06 Oct 2015; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.2.0.ebuild,
  thunderbird-38.3.0.ebuild:
  mozilla packages: update patchsets, fixes compilation w/freetype-2.6.1

  Rolled new patches to include a fix for compilation failures against
  freetype-2.6.1,
  and to include some patches that have been applied externally in ebuilds.

  Updates include:
  =mail-client/thunderbird-38.2.0
  =mail-client/thunderbird-38.3.0
  =www-client/firefox-38.3.0
  =www-client/firefox-41.0-r1
  =www-client/seamonkey-2.35
  =www-client/seamonkey-2.38

  Package-Manager: portage-2.2.20.1

  06 Oct 2015; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.1.0.ebuild:
  cleanup old ebuilds

  Package-Manager: portage-2.2.20.1

  04 Nov 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.3.0.ebuild:
  ppc stable wrt bug #561246

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

*thunderbird-38.4.0 (26 Nov 2015)

  26 Nov 2015; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.4.0.ebuild:
  version bump; disabled skia in mozconfig-v6.38.eclass

  38.4 verison finally released

  As skia is not available or supported in gentoo, explicitly disabling it in
  the
  configuration allows for some streamlining.

  Patches from the musl overlay have also been integrated.

  11 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.4.0.ebuild:
  amd64 stable wrt bug #567298

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

  11 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.4.0.ebuild:
  x86 stable wrt bug #567298

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

  19 Dec 2015; Jeroen Roovers <jer@gentoo.org> thunderbird-38.4.0.ebuild:
  Stable for PPC64 (bug #567298).

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

  21 Dec 2015; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.4.0.ebuild:
  increase minver on nspr dep to fix bug 568910

  Package-Manager: portage-2.2.24

  23 Dec 2015; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.2.0.ebuild,
  -thunderbird-38.3.0.ebuild:
  clean up old/vulnerable versions

  Package-Manager: portage-2.2.24

*thunderbird-38.5.0 (23 Dec 2015)

  23 Dec 2015; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.5.0.ebuild:
  version bump

  Package-Manager: portage-2.2.24

  24 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.5.0.ebuild:
  amd64 stable wrt bug #568376

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

  25 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.5.0.ebuild:
  x86 stable wrt bug #568376

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

  25 Dec 2015; Jeroen Roovers <jer@gentoo.org> thunderbird-38.5.0.ebuild:
  Stable for PPC64 (bug #568376).

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

  26 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.4.0.ebuild:
  ppc stable wrt bug #567298

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

  26 Dec 2015; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.5.0.ebuild:
  ppc stable wrt bug #568376

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

  30 Dec 2015; Jory A. Pratt <anarchy@gentoo.org> thunderbird-38.5.0.ebuild:
  Fix the paxmarking of the xpcshell binary as it is no longer in the mozilla
  directory.

  This makes the install phase work again on hardened systems.

  Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>

  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)

*thunderbird-38.6.0 (16 Feb 2016)

  16 Feb 2016; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.6.0.ebuild:
  version bump for security

  Package-Manager: portage-2.2.26

  17 Feb 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.4.0.ebuild:
  bin}: remove old/vulnerable 38.4.0

  Package-Manager: portage-2.2.26

  24 Feb 2016; Jeroen Roovers <jer@gentoo.org> thunderbird-38.6.0.ebuild:
  Stable for PPC64 (bug #573074).

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

  02 Mar 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.6.0.ebuild:
  amd64 stable wrt bug #573074

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

*thunderbird-38.7.0 (14 Mar 2016)

  14 Mar 2016; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.7.0.ebuild:
  version bump for security bug 576862

  Package-Manager: portage-2.2.26

  14 Mar 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.7.0.ebuild:
  amd64 stable wrt bug #576862

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

  14 Mar 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.7.0.ebuild:
  x86 stable wrt bug #576862

  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> thunderbird-38.7.0.ebuild:
  ppc stable wrt bug #576862

  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> thunderbird-38.7.0.ebuild:
  ppc64 stable wrt bug #576862

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

*thunderbird-38.7.1 (25 Mar 2016)

  25 Mar 2016; Ian Stakenvicius <axs@gentoo.org> +thunderbird-38.7.1.ebuild:
  version bump for security bug 576864

  thunderbird-38.7.1 addresses the graphite2 vulnerabilities
  by disabling the bundled graphite2 library.  Functionality
  will return in future versions, hopefully using the system copy
  of grpahite2.

  Bug: http://bugs.gentoo.org/576864

  Package-Manager: portage-2.2.26

*thunderbird-45.0 (20 Apr 2016)

  20 Apr 2016; Ian Stakenvicius <axs@gentoo.org> metadata.xml,
  +thunderbird-45.0.ebuild:
  version bump to 45.0

  Package-Manager: portage-2.2.26

  20 Apr 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.5.0.ebuild,
  -thunderbird-38.6.0.ebuild:
  drop old

  Package-Manager: portage-2.2.26

  21 Apr 2016; Ian Stakenvicius <axs@gentoo.org> thunderbird-45.0.ebuild:
  re-pack lightning and gdata-provider langpacks

  Package-Manager: portage-2.2.26

  28 Apr 2016; Ian Stakenvicius <axs@gentoo.org> metadata.xml,
  thunderbird-45.0.ebuild:
  firefox-45, thunderbird-45: support system harfbuzz and graphite2

  This commit introduces changes to mozconfig-v6.45.eclass and related changes
  to the existing mail-client/thunderbird-45.0 and the new version bump
  www-client/firefox-45.1.0 to support using system copies of media-
  libs/harfbuzz
  and media-gfx/graphite2 instead of the copies bundled inside of the mozilla
  codebase.

  www-client/firefox-45.1.0 was additionally bumped to support security bug
  581326

  Package-Manager: portage-2.2.26

*thunderbird-38.8.0 (05 May 2016)

  05 May 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.7.1.ebuild,
  +thunderbird-38.8.0.ebuild:
  38.8.0: version bump for security bug 581326

  Package-Manager: portage-2.2.26

  11 May 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.8.0.ebuild:
  amd64 stable wrt bug #581326

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

  11 May 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-38.8.0.ebuild:
  x86 stable wrt bug #581326

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

*thunderbird-45.1.0 (11 May 2016)

  11 May 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-45.0.ebuild,
  +thunderbird-45.1.0.ebuild:
  45.1.0 version bump

  Gloda ("Global search") cannot work properly with system-sqlite, due to
  FTS3_TOKENIZER being
  disabled.  Starting with 45.0, this causes havoc with context menus and lots
  of other things.
  Starting with 45.1, the global search indexer is disabled by default when
  built with system-sqlite.

  Package-Manager: portage-2.2.26

  16 May 2016; Ian Stakenvicius <axs@gentoo.org> thunderbird-38.8.0.ebuild,
  thunderbird-45.1.0.ebuild:
  allow pinentry[qt5]

  Bug: https://bugs.gentoo.org/583134

  Package-Manager: portage-2.2.28

*thunderbird-45.1.1 (08 Jun 2016)

  08 Jun 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-45.1.0.ebuild,
  +thunderbird-45.1.1.ebuild:
  mis-release version bump

  Migrated ebuild to mozcoreconf-v4 compatibility to align with
  mozconfig-v6.45

  Package-Manager: portage-2.2.28

*thunderbird-45.2.0 (06 Jul 2016)

  06 Jul 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-45.1.1.ebuild,
  +thunderbird-45.2.0.ebuild:
  version bump, migrate LINGUAS to L10N

  This will be the new stable candidate

  Bug: http://bugs.gentoo.org/588072
  Bug: http://bugs.gentoo.org/587334

  Package-Manager: portage-2.2.28

  09 Jul 2016; Ian Stakenvicius <axs@gentoo.org> thunderbird-24.8.0.ebuild:
  24.8.0: swallowed mozconfig-3.eclass

  This ebuild is and has for quite some time been the last of the
  consumers of mozconfig-3.eclass.  Although the package is masked
  there may still be a need for it to allow migration of user
  data.  This commit moves all relevant portions of the eclass
  into the ebuild and expunges the eclass from the repo.

  Package-Manager: portage-2.2.28

  13 Jul 2016; Jeroen Roovers <jer@gentoo.org> thunderbird-45.2.0.ebuild:
  Stable for PPC64 (bug #585308).

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

  14 Jul 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-45.2.0.ebuild:
  amd64 stable wrt bug #585308

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

  14 Jul 2016; Agostino Sarubbo <ago@gentoo.org> thunderbird-45.2.0.ebuild:
  x86 stable wrt bug #585308

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

*thunderbird-45.3.0 (31 Aug 2016)

  31 Aug 2016; Ian Stakenvicius <axs@gentoo.org> +thunderbird-45.3.0.ebuild:
  bump to 45.3.0

  Package-Manager: portage-2.2.28

  31 Aug 2016; Ian Stakenvicius <axs@gentoo.org> -thunderbird-38.7.0.ebuild,
  thunderbird-38.8.0.ebuild:
  38: drop 38.7 and migrate stable keywords to 38.8, p.mask 38.x

  Package-Manager: portage-2.2.28

  31 Aug 2016; Ian Stakenvicius <axs@gentoo.org> thunderbird-45.3.0.ebuild:
  45.3.0: stabilize on amd64 for security bug 590330

  Package-Manager: portage-2.2.28

*thunderbird-45.3.0-r1 (05 Sep 2016)

  05 Sep 2016; Jory A. Pratt <anarchy@gentoo.org>
  +thunderbird-45.3.0-r1.ebuild:
  Install icons into hicolor theme

  Based on www-client/firefox ebuild.

  Gentoo-Bug: https://bugs.gentoo.org/464010
  Closes: https://github.com/gentoo/gentoo/pull/1928

  Signed-off-by: Jory A. Pratt <anarchy@gentoo.org>

  05 Sep 2016; Jory A. Pratt <anarchy@gentoo.org>
  thunderbird-45.3.0-r1.ebuild:
  Fix whitespace issues

*thunderbird-45.3.0-r2 (21 Sep 2016)

  21 Sep 2016; Ian Stakenvicius <axs@gentoo.org>
  -thunderbird-45.3.0-r1.ebuild, +thunderbird-45.3.0-r2.ebuild:
  revbump, fix binutils-2.26.1 ld.bfd linking, localizations

  Package-Manager: portage-2.2.28

  26 Sep 2016; Ian Stakenvicius <axs@gentoo.org> metadata.xml:
  mozilla packages: clarified description of USE=custom-optimization

