# ChangeLog for dev-util/setconf
# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/setconf/ChangeLog,v 1.10 2015/07/11 00:47:28 idella4 Exp $

*setconf-0.6.7 (11 Jul 2015)

  11 Jul 2015; Ian Delaney <idella4@gentoo.org> +setconf-0.6.7.ebuild,
  -setconf-0.6.4.ebuild:
  bump one rm one

*setconf-0.6.6 (17 Mar 2015)

  17 Mar 2015; Patrick Lauer <patrick@gentoo.org> +setconf-0.6.6.ebuild:
  Bump

*setconf-0.6.4 (08 Dec 2014)

  08 Dec 2014; Ian Delaney <idella4@gentoo.org> +setconf-0.6.4.ebuild,
  -setconf-0.6.2.ebuild, -setconf-0.6.3.ebuild:
  bump; rm old

*setconf-0.6.3 (02 Nov 2014)

  02 Nov 2014; Ian Delaney <idella4@gentoo.org> +setconf-0.6.3.ebuild:
  bump; drop py3.2

  29 Mar 2014; Mike Gilbert <floppym@gentoo.org> setconf-0.6.2.ebuild:
  Add python2.7.

  29 Mar 2014; Samuli Suominen <ssuominen@gentoo.org> setconf-0.6.2.ebuild:
  Set RDEPEND and REQUIRED_USE for technical limitations of the python-
  single-r1.eclass

  29 Mar 2014; Samuli Suominen <ssuominen@gentoo.org> setconf-0.6.2.ebuild:
  Make use of python-single-r1.eclass and python_fix_shebang. Allow all of
  python3_2, python3_3 and python3_4 that are in tree.

  29 Mar 2014; Samuli Suominen <ssuominen@gentoo.org> -setconf-0.5.3.ebuild:
  old

*setconf-0.6.2 (29 Mar 2014)

  29 Mar 2014; Samuli Suominen <ssuominen@gentoo.org> +setconf-0.6.2.ebuild:
  Version bump. Use python 3.x exclusively wrt #462326 by James Rowe

*setconf-0.5.3 (16 Mar 2013)

  16 Mar 2013; Samuli Suominen <ssuominen@gentoo.org> +setconf-0.5.3.ebuild:
  Initial commit.
