# ChangeLog for app-admin/gkrellm
# Copyright 1999-2016 Gentoo Foundation; Distributed under the GPL v2
# (auto-generated from git log)

*gkrellm-2.3.5-r3 (09 Aug 2015)

  09 Aug 2015; Robin H. Johnson <robbat2@gentoo.org>
  +files/gkrellm-2.3.5-autofs.patch, +files/gkrellm-2.3.5-binding.patch,
  +files/gkrellm-2.3.5-cifs.patch, +files/gkrellm-2.3.5-config.patch,
  +files/gkrellm-2.3.5-dso.patch, +files/gkrellm-2.3.5-format-security.patch,
  +files/gkrellm-2.3.5-sansfont.patch, +files/gkrellm-2.3.5-width.patch,
  +files/gkrellmd, +files/gkrellmd.conf, +files/gkrellmd.service,
  +gkrellm-2.3.5-r3.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

*gkrellm-2.3.6_rc1 (11 Sep 2015)

  11 Sep 2015; Lars Wendler <polynomial-c@gentoo.org>
  +files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch,
  +files/gkrellm-2.3.6_rc1-fix_copypaste_error.patch,
  +files/gkrellm-2.3.6_rc1-fix_gtk_deprecation_warning.patch,
  +files/gkrellm-2.3.6_rc1-update_german_translation.patch.xz,
  +files/gkrellmd.initd, +gkrellm-2.3.6_rc1.ebuild:
  Bump to version 2.3.6_rc1

  Package-Manager: portage-2.2.20.1
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

  11 Sep 2015; Lars Wendler <polynomial-c@gentoo.org>
  gkrellm-2.3.6_rc1.ebuild:
  Added some missing deps.

  Package-Manager: portage-2.2.20.1
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

*gkrellm-2.3.6_rc1-r1 (04 Oct 2015)

  04 Oct 2015; Julian Ospald <hasufell@gentoo.org>
  +gkrellm-2.3.6_rc1-r1.ebuild:
  add libressl support

  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.

  28 Feb 2016; Ulrich Müller <ulm@gentoo.org> metadata.xml:
  metadata.xml: Add maintainer-needed comment to packages without maintainer.

  Bug: 575810

  21 Mar 2016; Anthony G. Basile <blueness@gentoo.org>
  gkrellm-2.3.6_rc1-r1.ebuild:
  fix libressl slot

  Package-Manager: portage-2.2.26

  23 Mar 2016; Steev Klimaszewski <steev@gentoo.org>
  gkrellm-2.3.6_rc1-r1.ebuild:
  Keyword 2.3.6_rc1-r1 ~arm64

  Package-Manager: portage-2.2.28

  06 Apr 2016; Justin Lecher <jlec@gentoo.org>
  -files/gkrellm-2.3.6_rc1-update_german_translation.patch.xz,
  gkrellm-2.3.6_rc1.ebuild, gkrellm-2.3.6_rc1-r1.ebuild:
  Mirror binary files and remove from VCS

  Package-Manager: portage-2.2.28
  Signed-off-by: Justin Lecher <jlec@gentoo.org>

*gkrellm-2.3.5-r4 (25 Apr 2016)

  25 Apr 2016; Austin English <wizardedit@gentoo.org> files/gkrellmd,
  +gkrellm-2.3.5-r4.ebuild:
  use #!/sbin/openrc-run instead of #!/sbin/runscript

  Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=573846

  25 Apr 2016; Austin English <wizardedit@gentoo.org>
  -gkrellm-2.3.5-r3.ebuild:
  remove gkrellm-2.3.5-r3

  Package-Manager: portage-2.2.26

*gkrellm-2.3.7 (04 Jun 2016)

  04 Jun 2016; Lars Wendler <polynomial-c@gentoo.org>
  +files/gkrellm-2.3.7-pkgconfig_fix_newlines.patch, +gkrellm-2.3.7.ebuild:
  Bump to version 2.3.7

  Package-Manager: portage-2.2.28
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

  04 Jun 2016; Lars Wendler <polynomial-c@gentoo.org> metadata.xml:
  Took over maintenance.

  Package-Manager: portage-2.2.28
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

*gkrellm-2.3.8 (08 Sep 2016)

  08 Sep 2016; Lars Wendler <polynomial-c@gentoo.org> +gkrellm-2.3.8.ebuild:
  Bump to version 2.3.8

  Package-Manager: portage-2.3.0
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

  08 Sep 2016; Lars Wendler <polynomial-c@gentoo.org>
  -files/gkrellm-2.3.6_rc1-avoid_possible_busy_loop.patch,
  -files/gkrellm-2.3.6_rc1-fix_copypaste_error.patch,
  -files/gkrellm-2.3.6_rc1-fix_gtk_deprecation_warning.patch,
  -gkrellm-2.3.6_rc1.ebuild, -gkrellm-2.3.6_rc1-r1.ebuild:
  Removed old.

  Package-Manager: portage-2.3.0
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

*gkrellm-2.3.9 (12 Oct 2016)

  12 Oct 2016; Lars Wendler <polynomial-c@gentoo.org> +gkrellm-2.3.9.ebuild:
  Bump to version 2.3.9

  Package-Manager: portage-2.3.2
  Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>

