libsdl2 (2.0.12) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.13 for development builds

 -- Sam Lantinga <slouken@libsdl.org>  Tue, 10 Mar 2020 18:24:22 -0800

libsdl2 (2.0.12) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.12

 -- Sam Lantinga <slouken@libsdl.org>  Sun, 1 Mar 2020 14:57:07 -0800

libsdl2 (2.0.11) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.11 for development builds

 -- Sam Lantinga <slouken@libsdl.org>  Sun, 22 Sep 2019 10:33:03 -0800

libsdl2 (2.0.10) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.10

 -- Sam Lantinga <slouken@libsdl.org>  Mon, 17 Jun 2019 08:48:47 -0800

libsdl2 (2.0.9) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.9

 -- Sam Lantinga <slouken@libsdl.org>  Wed, 26 Sep 2018 10:02:21 -0800

libsdl2 (2.0.8) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.8

 -- Sam Lantinga <slouken@libsdl.org>  Sat, 4 Nov 2017 21:21:53 -0800

libsdl2 (2.0.7) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.7

 -- Sam Lantinga <slouken@libsdl.org>  Thu, 12 Oct 2017 08:01:16 -0800

libsdl2 (2.0.6) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.6

 -- Sam Lantinga <slouken@libsdl.org>  Sat, 9 Sep 2017 07:29:36 -0800

libsdl2 (2.0.5) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.5

 -- Sam Lantinga <slouken@libsdl.org>  Mon, 28 Nov 2016 07:32:52 -0800

libsdl2 (2.0.4) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.4

 -- Sam Lantinga <slouken@libsdl.org>  Thu, 07 Jan 2016 11:02:39 -0800

libsdl2 (2.0.3) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.3

 -- Sam Lantinga <slouken@libsdl.org>  Sun, 9 Mar 2014 10:35:54 -0800

libsdl2 (2.0.2) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.2

 -- Sam Lantinga <slouken@libsdl.org>  Sun, 9 Feb 2014 2:55:59 -0800

libsdl2 (2.0.1) UNRELEASED; urgency=low

  * Updated SDL to version 2.0.1

 -- Sam Lantinga <slouken@libsdl.org>  Wed, 23 Oct 2013 16:31:38 -0800

libsdl2 (2.0.0) UNRELEASED; urgency=low

  * SDL is now a native debian package.
  * Removed udeb package
  * Disabled DirectFB support by default, to avoid runtime dependencies

 -- Sam Lantinga <slouken@libsdl.org>  Fri, 15 Feb 2013 08:55:04 -0800

libsdl2 (2.0.0~20130127-1) UNRELEASED; urgency=low

  * New upstream snapshot.

 -- Sam Hocevar <sho@debian.org>  Wed, 30 Jan 2013 23:01:12 +0100

libsdl2 (2.0.0~20130103-1) unstable; urgency=low

  [ Manuel A. Fernandez Montecelo ]
  * debian/control:
    - Updating maintainers/permissions:
      - Add myself and Felix Geyer
    - Update Build-Depends:
      - Remove a few obsolete items
      - Add items added lately to libsdl1.2, such as libts (touch screen)
        support
    - Add "libsdl2-dbg", analog to libsdl1.2-dbg
    - Change "XC-Package-Type: udeb" to "Package-Type"
  * debian/compat: set level 9
  * debian/source/format: Set to "3.0 (quilt)"
    - Remove README.source, not needed with new format
  * debian/sdl2-config.1: Fix typo, "progams"->"programs"
  * debian/libsdl2-dev.install:
    - Remove "usr/lib/*/*.la", discouraged
    - Add man pages: "usr/share/man/man3/*"
  * debian/libsdl2-dev.manpages: add file to install local "sdl2-config.1"
  * debian/sources: Removed, possible obsolete file from long ago?
  * debian/copyright:
    - Upstream updated to zlib/libpng
    - Copyright-file format conversion to 1.0
    - Complete revamp and detailed research about copyright and licenses used,
      it's very messy but hopefully complete

  [ Felix Geyer ]
  * Simplify debian/rules by using dh(1).

 -- Manuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>  Sun, 27 Jan 2013 16:40:49 +0100

libsdl2 (2.0~20120220c-1) experimental; urgency=low

  * Upstream version was renamed to 2.0 (Closes: #669367).
  * New upstream snapshot (Closes: #671506).
  * This package no longer conflicts with libsdl-1.2.
  * debian/rules: add multiarch support (Closes: #669364).

  * debian/patches/fix_joystick_misc_axes.diff: fix a joystick remapping
    bug causing some axes to malfunction.
  * debian/patches/external_header_paths.diff: provide additional CFLAGS
    so that headers such as SDL_syswm.h can be included (Closes: #669363).

 -- Sam Hocevar <sho@debian.org>  Thu, 17 May 2012 19:03:59 +0200

libsdl-1.3 (1.3.0~20111204-1) experimental; urgency=low

  * Initial upload from upstream snapshot.

 -- Sam Hocevar <sho@debian.org>  Sun, 04 Dec 2011 14:35:05 +0100

