libconfig (1.6-1) unstable; urgency=low

  * New upstream version

  * Resync with Debian packaging. Thanks many, Jonathan & Matthias!

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Thu, 31 Dec 2015 17:01:20 +0100

libconfig (1.5-0.2) unstable; urgency=medium

  * Non-maintainer upload.
  * Upload to unstable.

 -- Matthias Klose <doko@debian.org>  Tue, 04 Aug 2015 17:20:08 +0200

libconfig (1.5-0.1) experimental; urgency=medium

  * Non maintainer upload.
  * New upstream version.
  * Rename libconfig++9v5 to libconfig++9v5, libstdc++6 ABI symbol changes.
    Addresses: #791108.
  * Add Conflicts/Replaces to the old library.
  * Don't ship libconfig9.info in libconfig9, but only in libconfig-dev.
  * Drop versioned dependency on pkg-config. Closes: #734482.
  * Enable parallel builds. Closes: #759581.
  * Only build the libconfig documentation for binary indep builds.
    Closes: #759582.
  * Add build dependency on texlive-fonts-recommended.
  * Bump standards version to 3.9.6.

 -- Matthias Klose <doko@ubuntu.com>  Wed, 29 Jul 2015 12:46:50 +0200

libconfig (1.4.9-2) unstable; urgency=medium

  * Update short package description (Closes: #710783)
  * Build using dh-autoreconf rather than autotools-dev; thanks to Matthias
    Klose for this fix
  * Add tex-workaround.patch from Matthias Klose to fix texinfo/tex FTBFS
  * With sponsor's blessing, set myself as maintainer
  * Bump Standards-Version to 3.9.5
    - No changes required

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Sat, 28 Dec 2013 17:41:20 +0000

libconfig (1.4.9-1) unstable; urgency=low

  * New upstream release
  * Update S-V to 3.9.4
    - No changes necessary
  * Ensure that libconfig++-dbg depends on libconfig9 (= ${binary:Version})
    in addition to libconfig++9 (= ${binary:Version})
    - Fixes dbg-package-missing-depends lintian warning

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Sat, 12 Oct 2013 16:41:14 +0100

libconfig (1.4.8-5) unstable; urgency=low

  * Switch to dh_9 style rules file
    - Hardened buildflags now provided automatically
    - Fixes E-binary-arch-produces-all buildd warning

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Tue, 26 Jun 2012 21:41:22 +0100

libconfig (1.4.8-4) unstable; urgency=low

  * Add C++ hardened buildflags
    - Thanks to Simon Ruderich for the patch (closes: #662225)
  * Fix libconfig(++)8-dev transition packages
    - Set section as oldlibs
    - Set priority as extra
    - Remove package descriptions
  * Add Multiarch support

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Fri, 06 Apr 2012 14:28:39 +0100

libconfig (1.4.8-3) unstable; urgency=low

  * Add Replaces+Breaks: libconfig(++)8-dev to libconfig(++)-dev
     - Thanks to Andreas Beckmann for reporting (closes: #662643)
  * Enable hardened buildflags
     - Thanks to Simon Ruderich for the patch (closes: #662225)
  * Fix incorrect section and arch for transitional packages.

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Mon, 05 Mar 2012 22:01:29 +0000

libconfig (1.4.8-2) unstable; urgency=low

  * Upload to unstable
  * Update to S-V 3.9.3
  * debian/rules now uses dpkg-buildflags
  * Provide full transitional packages to help -dev package rename
  * Multiple lintian fixes
    - out-of-date-standards-version
    - copyright-with-old-dh-make-debian-copyright
    - extended-description-is-probably-too-short
    - unneeded-build-dep-on-quilt

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Thu, 01 Mar 2012 02:11:47 +0000

libconfig (1.4.8-1~exp1) experimental; urgency=low

  * New upstream release (closes: #583528)
    - soname bump to 9
  * Update to S-V 3.9.2
  * Update to Debhelper v7
  * Refresh Build-Depends packages
  * Add debug packages
  * Remove soname from -dev package names
    - Build as virtual packages for reverse dependency purposes.
  * Fix examples (closes: #632081)

 -- Jonathan McCrohan <jmccrohan@gmail.com>  Sat, 11 Feb 2012 18:13:26 +0000

libconfig (1.3.2-2) unstable; urgency=low

  * Removed "conflicts" with older sonames (Closes: #536635)
  * Added missing compile-time libconfig++8-dev dependencies
    (libconfig8-dev) (Closes: #537311)

  * Removed libtool's ".la" files (clients should use pkg-config)

  * Updated to S-V 3.8.3 with no changes

  * With many thanks to Christian Hammers, who kindly checked the package.

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Sun, 13 Sep 2009 04:25:14 +0200

libconfig (1.3.2-1) unstable; urgency=low

  * New upstream release (Closes: #521725)
    - soname bump to 8
    - Updated to S-V 3.8.1 with no changes

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Tue, 07 Apr 2009 21:13:16 +0200

libconfig (1.3.2-0) unstable; urgency=low

   * new upstream release
   * use official Debian files as basis
   * libconfig++8-dev depends on libconfig8-dev because libconfig.h++
     includes libconfig.h which is in libconfig8-dev

 -- Klaus Schneider <kschn@users.sourceforge.net>  Wed, 18 Feb 2009 15:26:32 +0100

libconfig (1.3.1-1) unstable; urgency=low

  * First upload to Debian (Closes: #438683)

  * New upstream release
    - soname bump to 6.1

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Fri, 31 Oct 2008 22:13:47 +0100

libconfig (1.3-1) unstable; urgency=low

  * New upstream release

  * Packaging
    - Updated to S-V 3.8.0 with no changes

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Mon, 20 Jul 2008 19:55:23 +0200

libconfig (1.1-1) unstable; urgency=low

  * New upstream release

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Mon,  2 Jul 2007 02:01:40 +0200

libconfig (0.9-1) unstable; urgency=low

  * Initial packaging

 -- Jose Luis Tallon <jltallon@adv-solutions.net>  Tue, 10 Oct 2006 01:42:09 +0200

libconfigduo (1.2.1-1) unstable; urgency=low

  * Release 1.2.1

 -- Klaus Schneider <kschn@users.sourceforge.net>  Thu, 31 Jan 2008 11:25:21 +0100

libconfigduo (1.1.1-1) unstable; urgency=low

  * Initial release

 -- Klaus Schneider <kschn@users.sourceforge.net>  Mon, 25 Jun 2007 16:21:56 +0200
