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

*autofs-5.1.1 (09 Aug 2015)
*autofs-5.1.0-r1 (09 Aug 2015)
*autofs-5.1.0 (09 Aug 2015)
*autofs-5.0.10 (09 Aug 2015)
*autofs-5.0.9-r1 (09 Aug 2015)
*autofs-5.0.9 (09 Aug 2015)
*autofs-5.0.8-r2 (09 Aug 2015)
*autofs-5.0.8-r1 (09 Aug 2015)
*autofs-5.0.7-r5 (09 Aug 2015)
*autofs-5.0.7-r4 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org> +autofs-5.0.7-r4.ebuild,
  +autofs-5.0.7-r5.ebuild, +autofs-5.0.8-r1.ebuild, +autofs-5.0.8-r2.ebuild,
  +autofs-5.0.9.ebuild, +autofs-5.0.9-r1.ebuild, +autofs-5.0.10.ebuild,
  +autofs-5.1.0.ebuild, +autofs-5.1.0-r1.ebuild, +autofs-5.1.1.ebuild,
  +files/autofs-5.0.3-heimdal.patch,
  +files/autofs-5.0.5-fix-install-deadlink.patch,
  +files/autofs-5.0.6-revert-ldap.patch, +files/autofs-5.0.7-add-missing-endif
  -HAVE_SASL-in-modules-lookup_ldap.c.patch,
  +files/autofs-5.0.7-libtirpc-link.patch,
  +files/autofs-5.0.7-parallel-make.patch,
  +files/autofs-5.0.7-respect-user-flags-and-fix-asneeded-r3.patch,
  +files/autofs-5.0.7-sasl-def.patch, +files/autofs-5.0.7-sloppy-mount.patch,
  +files/autofs-5.0.8-ldap-wo-sasl.patch,
  +files/autofs-5.1.0-fix-missing-stdarg.patch, +files/autofs5-auto.master,
  +files/autofs5.initd, +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> autofs-5.0.7-r4.ebuild,
  autofs-5.0.7-r5.ebuild, autofs-5.0.8-r1.ebuild, autofs-5.0.8-r2.ebuild,
  autofs-5.0.9.ebuild, autofs-5.0.9-r1.ebuild, autofs-5.0.10.ebuild,
  autofs-5.1.0.ebuild, autofs-5.1.0-r1.ebuild, autofs-5.1.1.ebuild,
  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)

*autofs-5.1.1-r1 (15 Feb 2016)

  15 Feb 2016; Yixun Lan <dlan@gentoo.org> +autofs-5.1.1-r1.ebuild:
  bump upstream patches, fix libtirpc bug

  Gentoo-bug: 570884

  Package-Manager: portage-2.2.27

  15 Feb 2016; Yixun Lan <dlan@gentoo.org> -autofs-5.0.8-r1.ebuild,
  -autofs-5.0.8-r2.ebuild, -autofs-5.0.9.ebuild, -autofs-5.0.9-r1.ebuild,
  -autofs-5.1.0.ebuild:
  drop old versions

  Package-Manager: portage-2.2.27

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

*autofs-5.1.2 (15 Jun 2016)

  15 Jun 2016; Yixun Lan <dlan@gentoo.org> +autofs-5.1.2.ebuild:
  version bump 5.1.2

  Package-Manager: portage-2.3.0_rc1

  15 Jun 2016; Yixun Lan <dlan@gentoo.org> -autofs-5.1.0-r1.ebuild,
  -autofs-5.1.1.ebuild, -files/autofs-5.0.8-ldap-wo-sasl.patch,
  -files/autofs-5.1.0-fix-missing-stdarg.patch:
  drop old

  Package-Manager: portage-2.3.0_rc1

  15 Jun 2016; Tobias Klausmann <klausman@gentoo.org> autofs-5.1.1-r1.ebuild:
  5.1.1-r1: add alpha keyword

  Gentoo-Bug: 585992

  Package-Manager: portage-2.3.0_rc1

  16 Jun 2016; Yixun Lan <dlan@gentoo.org> autofs-5.1.1-r1.ebuild:
  5.1.1-r1: amd64 stable

  Gentoo-Bug: 585992

  Package-Manager: portage-2.3.0_rc1

  17 Jun 2016; Yixun Lan <dlan@gentoo.org> autofs-5.1.1-r1.ebuild:
  5.1.1-r1: x86 stable

  Gentoo-Bug: 585992

  Package-Manager: portage-2.3.0_rc1

  21 Jun 2016; Markus Meier <maekke@gentoo.org> autofs-5.1.1-r1.ebuild:
  arm stable, bug #585992

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

  05 Jul 2016; Yixun Lan <dlan@gentoo.org> autofs-5.1.2.ebuild,
  +files/autofs-5.1.2-libtirpc-as-need.patch:
  fix --as-need issue USE=libtirpc

  thanks Martin von Gagern for reporting & the patch

  http://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed

  Gentoo-Bug: 588106

  Package-Manager: portage-2.3.0_rc1

  03 Aug 2016; Yixun Lan <dlan@gentoo.org> autofs-5.1.2.ebuild:
  amd64,x86 stable

  Gentoo-Bug: 590304

  Package-Manager: portage-2.3.0

  13 Aug 2016; Jeroen Roovers <jer@gentoo.org> autofs-5.1.2.ebuild:
  Stable for HPPA (bug #590304).

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

  18 Aug 2016; Markus Meier <maekke@gentoo.org> autofs-5.1.2.ebuild:
  arm stable, bug #590304

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

  04 Sep 2016; Tobias Klausmann <klausman@gentoo.org> autofs-5.1.2.ebuild:
  5.1.2-r0: add alpha keyword

  Gentoo-Bug: 590304

  12 Oct 2016; Jeroen Roovers <jer@gentoo.org> autofs-5.1.2.ebuild:
  Stable for PPC64 (bug #590304).

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

