# ChangeLog for sci-geosciences/readosm
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-geosciences/readosm/ChangeLog,v 1.1 2012/05/25 17:39:54 scarabeus Exp $

*readosm-1.0.0 (25 May 2012)

  25 May 2012; Tomáš Chvátal <scarabeus@gentoo.org> +metadata.xml,
  +readosm-1.0.0.ebuild:
  Add simple lib required for spatialite-tools.

