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

*http-replicator-4.0_alpha2-r4 (09 Aug 2015)
*http-replicator-3.0-r4 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/http-replicator-3.0-callrepcacheman-0.1,
  +files/http-replicator-3.0-repcacheman-0.44,
  +files/http-replicator-3.0-repcacheman-0.44-r1,
  +files/http-replicator-3.0-repcacheman-0.44-r2,
  +files/http-replicator-3.0-sighup.patch, +files/http-replicator-3.0.conf,
  +files/http-replicator-3.0.init, +files/http-replicator-4.0_alpha2-r2.conf,
  +files/http-replicator-4.0_alpha2-r3-pid.patch,
  +files/http-replicator-4.0_alpha2-r3.init, +files/http-replicator.service,
  +files/http-replicator.service.conf, +http-replicator-3.0-r4.ebuild,
  +http-replicator-4.0_alpha2-r4.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

  09 Aug 2015; Ulrich Müller <ulm@gentoo.org>
  files/http-replicator-3.0-callrepcacheman-0.1,
  files/http-replicator-3.0-repcacheman-0.44,
  files/http-replicator-3.0-repcacheman-0.44-r1,
  files/http-replicator-3.0-repcacheman-0.44-r2,
  files/http-replicator-3.0.init:
  [QA] Remove executable bit from files, bug 550434.

  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; Justin Lecher <jlec@gentoo.org> http-replicator-3.0-r4.ebuild,
  http-replicator-4.0_alpha2-r4.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

  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

*http-replicator-3.0-r5 (23 Mar 2016)

  23 Mar 2016; Sam Jorna <wraeth@gentoo.org>
  +files/http-replicator-3-missing-directory.patch,
  +files/http-replicator-3-unique-cache-name.patch,
  +http-replicator-3.0-r5.ebuild:
  revbump, bug 442874

  Adds X-Unique-Cache-Name header to try and catch files based on their
  saved name in DISTFILES. Additionally bumps ebuild to EAPI6 and elogs
  information for required setup. Ebuild supplied by Matthew Ogilvie.

  Gentoo-bug: 442874
  Package-Manager: portage-2.2.28
  Signed-off-by: Sam Jorna <wraeth@gentoo.org>

  23 Mar 2016; Sam Jorna <wraeth@gentoo.org>
  -files/http-replicator-3.0-repcacheman-0.44,
  -files/http-replicator-3.0-repcacheman-0.44-r1:
  clean unneeded files

  Package-Manager: portage-2.2.28
  Signed-off-by: Sam Jorna <wraeth@gentoo.org>

*http-replicator-4.0_alpha2-r5 (03 May 2016)
*http-replicator-3.0-r6 (03 May 2016)

  03 May 2016; Austin English <wizardedit@gentoo.org>
  files/http-replicator-3.0.init, files/http-replicator-4.0_alpha2-r3.init,
  +http-replicator-3.0-r6.ebuild, +http-replicator-4.0_alpha2-r5.ebuild:
  use #!/sbin/openrc-run instead of #!/sbin/runscript

  Gentoo-Bug: https://bugs.gentoo.org/573846

  Package-Manager: portage-2.2.26

  03 May 2016; Austin English <wizardedit@gentoo.org>
  -http-replicator-3.0-r5.ebuild, -http-replicator-4.0_alpha2-r4.ebuild:
  remove old versions

  Package-Manager: portage-2.2.26

  27 Jul 2016; Mike Frysinger <vapier@gentoo.org>
  http-replicator-3.0-r4.ebuild, http-replicator-3.0-r6.ebuild,
  http-replicator-4.0_alpha2-r5.ebuild:
  sourceforge: switch to https:// URIs

  26 Sep 2016; Agostino Sarubbo <ago@gentoo.org>
  http-replicator-3.0-r6.ebuild:
  amd64 stable wrt bug #591116

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

  01 Oct 2016; Jeroen Roovers <jer@gentoo.org> http-replicator-3.0-r6.ebuild:
  Stable for HPPA (bug #591116).

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

