# ChangeLog for net-misc/ocsync
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/ocsync/ChangeLog,v 1.4 2014/02/24 13:55:54 voyageur Exp $

*ocsync-0.90.4 (24 Feb 2014)

  24 Feb 2014; Bernard Cafarelli <voyageur@gentoo.org> +ocsync-0.90.4.ebuild,
  ocsync-0.91.4.ebuild:
  Put back older version for pyowncloud (#501228) update blockers on
  owncloud-client

  10 Feb 2014; Bernard Cafarelli <voyageur@gentoo.org> ocsync-0.91.4.ebuild:
  Fix compilation with USE=-iconv (and enable USE=iconv by default), restrict
  tests to USE=iconv, bug #500860

  07 Feb 2014; Bernard Cafarelli <voyageur@gentoo.org> ocsync-0.91.4.ebuild:
  Only needs asciidoc with USE=doc

*ocsync-0.91.4 (06 Feb 2014)

  06 Feb 2014; Bernard Cafarelli <voyageur@gentoo.org> +ocsync-0.91.4.ebuild,
  +metadata.xml:
  Initial commit for csync fork, bugs #479806 and #494314. Also fixes tests,
  bug #477020

