# ChangeLog for mate-extra/mate-user-share
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*mate-user-share-1.8.0 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +mate-user-share-1.8.0.ebuild, +metadata.xml:
  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

  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)

*mate-user-share-1.10.1 (09 Feb 2016)

  09 Feb 2016; NP-Hardass <NP-Hardass@gentoo.org>
  +mate-user-share-1.10.1.ebuild:
  Import 1.10.x from Project:MATE repo

  Package-Manager: portage-2.2.26

*mate-user-share-1.10.1-r1 (21 Feb 2016)
*mate-user-share-1.8.0-r1 (21 Feb 2016)

  21 Feb 2016; NP-Hardass <NP-Hardass@gentoo.org>
  +mate-user-share-1.8.0-r1.ebuild, -mate-user-share-1.10.1.ebuild,
  +mate-user-share-1.10.1-r1.ebuild:
  Drop obsolete support for bluez4, per #564262.

  Requires stabilization of 1.8-r1 to complete the drop.

  Package-Manager: portage-2.2.26

  06 Mar 2016; Mikle Kolyada <zlogene@gentoo.org>
  mate-user-share-1.8.0-r1.ebuild:
  amd64 stable wrt bug #575262

  Package-Manager: portage-2.2.26

  15 Mar 2016; Agostino Sarubbo <ago@gentoo.org>
  mate-user-share-1.8.0-r1.ebuild:
  x86 stable wrt bug #575262

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

  15 Mar 2016; NP-Hardass <NP-Hardass@gentoo.org>
  -mate-user-share-1.8.0.ebuild:
  Drop old, per bug #564262

  Package-Manager: portage-2.2.26

  30 May 2016; Mikle Kolyada <zlogene@gentoo.org>
  mate-user-share-1.10.1-r1.ebuild:
  Add ~arm keyword wrt bug #508072

  Package-Manager: portage-2.2.28

  25 Jul 2016; NP-Hardass <NP-Hardass@gentoo.org>
  mate-user-share-1.10.1-r1.ebuild:
  amd64 x86 stable wrt bug #579644

  Package-Manager: portage-2.2.28

  06 Aug 2016; NP-Hardass <NP-Hardass@gentoo.org>
  -mate-user-share-1.8.0-r1.ebuild:
  Drop 1.8.x

  Package-Manager: portage-2.2.26

*mate-user-share-1.12.0 (12 Aug 2016)

  12 Aug 2016; NP-Hardass <NP-Hardass@gentoo.org>
  +mate-user-share-1.12.0.ebuild, metadata.xml:
  1.12.x vbump, add gtk3, import from project repo

  Package-Manager: portage-2.3.0

