# ChangeLog for net-proxy/tsocks
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-proxy/tsocks/ChangeLog,v 1.34 2009/07/19 18:46:15 nixnut Exp $

  19 Jul 2009; nixnut <nixnut@gentoo.org> tsocks-1.8_beta5-r5.ebuild:
  ppc stable #274790

  06 Jul 2009; Raúl Porcel <armin76@gentoo.org> tsocks-1.8_beta5-r5.ebuild:
  sparc stable wrt #274790

  04 Jul 2009; Brent Baude <ranger@gentoo.org> tsocks-1.8_beta5-r5.ebuild:
  stable ppc64, bug 274790

  28 Jun 2009; Tobias Klausmann <klausman@gentoo.org>
  tsocks-1.8_beta5-r5.ebuild:
  Stable on alpha, bug #274790

  28 Jun 2009; Markus Meier <maekke@gentoo.org> tsocks-1.8_beta5-r5.ebuild:
  amd64/x86 stable, bug #274790

*tsocks-1.8_beta5-r5 (20 Jun 2009)

  20 Jun 2009; Alin Năstac <mrness@gentoo.org>
  +files/tsocks-1.8_beta5-gentoo-r3.patch, +tsocks-1.8_beta5-r5.ebuild:
  Link tsocks-saveme dinamically (#273339). Migrate to EAPI 2.

*tsocks-1.8_beta5-r4 (18 Feb 2009)

  18 Feb 2009; Alin Năstac <mrness@gentoo.org>
  -files/tsocks-1.8_beta5-gentoo.patch,
  +files/tsocks-1.8_beta5-gentoo-r2.patch, -tsocks-1.8_beta5-r2.ebuild,
  +tsocks-1.8_beta5-r4.ebuild:
  Fix LD_PRELOAD setup, thanks to Yuval Hager <yuval at avramzon dot net>
  (#255960).

  22 Aug 2008; Markus Meier <maekke@gentoo.org> metadata.xml,
  tsocks-1.8_beta5-r3.ebuild:
  amd64 stable, bug #231690; add GLEP 56 USE flag desc from use.local.desc

  21 Jul 2008; nixnut <nixnut@gentoo.org> tsocks-1.8_beta5-r3.ebuild:
  Stable on ppc wrt bug 231690

  17 Jul 2008; Markus Rothe <corsair@gentoo.org> tsocks-1.8_beta5-r3.ebuild:
  Stable on ppc64; bug #231690

  17 Jul 2008; Raúl Porcel <armin76@gentoo.org> tsocks-1.8_beta5-r3.ebuild:
  alpha/x86 stable wrt #231690

  16 Jul 2008; Friedrich Oslage <bluebird@gentoo.org>
  tsocks-1.8_beta5-r3.ebuild:
  Stable on sparc, bug #231690

*tsocks-1.8_beta5-r3 (13 Feb 2008)

  13 Feb 2008; Alin Năstac <mrness@gentoo.org>
  +files/tsocks-1.8_beta5-gentoo-r1.patch, +tsocks-1.8_beta5-r3.ebuild:
  Link programs using user selected LDFLAGS (#209703). Fix library path in
  tsocks script.

  17 Jun 2007; Alin Năstac <mrness@gentoo.org> -tsocks-1.8_beta5.ebuild,
  -tsocks-1.8_beta5-r1.ebuild:
  Remove old revisions.

  22 Apr 2007; Bryan Østergaard <kloeri@gentoo.org>
  tsocks-1.8_beta5-r2.ebuild:
  Stable on Alpha, bug 174160.

  11 Apr 2007; Alin Năstac <mrness@gentoo.org> tsocks-1.8_beta5-r2.ebuild:
  Stable on amd64.

  01 Apr 2007; Michael Hanselmann <hansmi@gentoo.org>
  tsocks-1.8_beta5-r2.ebuild:
  Stable on ppc.

  03 Dec 2006; Markus Rothe <corsair@gentoo.org> tsocks-1.8_beta5-r2.ebuild:
  Stable on ppc64

  07 Nov 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  tsocks-1.8_beta5-r2.ebuild:
  Stable on sparc

  01 Nov 2006; Alin Nastac <mrness@gentoo.org> tsocks-1.8_beta5-r2.ebuild:
  Add SONAME to libtsocks. Stable on x86.

  20 Oct 2006; Gustavo Zacarias <gustavoz@gentoo.org>
  tsocks-1.8_beta5-r1.ebuild:
  Stable on sparc

  29 Sep 2006; Markus Rothe <corsair@gentoo.org> tsocks-1.8_beta5-r1.ebuild:
  Stable on ppc64

  24 Sep 2006; Michael Hanselmann <hansmi@gentoo.org>
  tsocks-1.8_beta5-r1.ebuild:
  Stable on ppc.

*tsocks-1.8_beta5-r2 (22 Sep 2006)

  22 Sep 2006; Alin Nastac <mrness@gentoo.org>
  +files/tsocks-1.8_beta5-gentoo.patch, +tsocks-1.8_beta5-r2.ebuild:
  Rename saveme and validateconf executables. Add tordns patch & local USE
  flag (#148550).

  20 Sep 2006; Alin Nastac <mrness@gentoo.org> tsocks-1.8_beta5-r1.ebuild:
  Stable on x86.

*tsocks-1.8_beta5-r1 (16 Jul 2006)

  16 Jul 2006; Diego Pettenò <flameeyes@gentoo.org>
  +files/tsocks-1.8_beta5-bsd.patch, +tsocks-1.8_beta5-r1.ebuild:
  Add tsocks with a little cleanup and patch for BSD compatibility (bug #140612).

  04 Oct 2005; Alin Nastac <mrness@gentoo.org> -tsocks-1.8_beta4.ebuild,
  tsocks-1.8_beta5.ebuild:
  Remove obsolete version. Remove INSTALL from docs.

  13 Aug 2005; Michael Hanselmann <hansmi@gentoo.org>
  tsocks-1.8_beta5.ebuild:
  Stable on ppc.

  02 Aug 2005; Gustavo Zacarias <gustavoz@gentoo.org>
  tsocks-1.8_beta5.ebuild:
  Stable on sparc

  30 Jul 2005; Alin Nastac <mrness@gentoo.org> tsocks-1.8_beta5.ebuild:
  Stable on x86.

  20 Jul 2005; Herbie Hopkins <herbs@gentoo.org> tsocks-1.8_beta5.ebuild:
  Stable on amd64.

  18 May 2005; Markus Rothe <corsair@gentoo.org> tsocks-1.8_beta5.ebuild:
  Stable on ppc64

  22 Apr 2005; Alin Nastac <mrness@gentoo.org> +metadata.xml:
  Move net-misc/tsocks to net-proxy/tsocks. Add metadata.

  29 Mar 2005; Markus Rothe <corsair@gentoo.org> tsocks-1.8_beta5.ebuild:
  Added ~ppc64 to KEYWORDS; bug #86993

  22 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
  tsocks-1.8_beta5.ebuild:
  Multilib cleanup.

  29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
  Change encoding to UTF-8 for GLEP 31 compliance

  08 Jun 2004; Bryan Østergaard <kloeri@gentoo.org> tsocks-1.8_beta5.ebuild:
  Stable on alpha.

*tsocks-1.8_beta5 (22 Feb 2004)

  22 Feb 2004; Mike Frysinger <vapier@gentoo.org> :
  Version bump #42394 by Scott Jones.

  07 Dec 2003; David Holm <dholm@gentoo.org> tsocks-1.8_beta4.ebuild:
  Added to ~ppc.

  21 Aug 2003; Will Woods <wwoods@gentoo.org> tsocks-1.8_beta4.ebuild:
  Added ~alpha to KEYWORDS

  12 Jun 2003; <msterret@gentoo.org> tsocks-1.8_beta4.ebuild:
  add Header

  06 Dec 2002; Rodney Rees <manson@gentoo.org> : changed sparc ~sparc keywords

*tsocks-1.8_beta4 (10 Jun 2002)

  11 Jul 2002; lamer <lamer@gentoo.org> tsocks-1.8beta4.ebuild : 
  Added "dobin validateconf saveme inspectsocks" to src_install

  09 Jul 2002; phoen][x <phoenix@gentoo.org> tsocks-1.8beta4.ebuild :
  Added KEYWORDS, SLOT.

  10 Jun 2002; Ben Lutgens <lamer@gentoo.org> tsocks-1.8_beta4: Ebuild for
  tsocks submitted to bugs.gentoo.org by a gentoo user *THANKS*
  bardur-gta@odense.kollegienet.dk. It should be noted that as per the
  install docs, this stuff gets installed to /lib. Mainly due to the fact
  that it's often needed before /usr gets mounted. So the old
  /etc/ld.so.preload trick won't work!
