Home | Back
Overview of changes in libgpod 0.7.92
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below.

* make the temporary mountpoint used by the HAL/udev callouts configurable
  at compile time (Bastien Nocera). This is helpful for distros who use
  SELinux to restrict what the callouts can do.
* tag .mov files as video files (Erik Staats)
* add itdb_start_sync and itdb_stop_sync functions to show/hide the "Sync
  in progress" screen on iPhones and iPod Touch (this is a no-op on other
  devices)
* set udisks-compliant names for icons in the udev callout instead of using
  the old devicekit-disks names
* prefix libgpod udev rule with a number (80-) since it's the usual way
  of naming rules

Overview of changes in libgpod 0.7.91
=====================================

For information about iPhone/iPod Touch/iPod Nano 5g support, please read
carefully the overview of libgpod 0.7.90 below.

* add udev callout

HAL is actively being deprecated, this udev callout is meant to be functionally
equivalent to the HAL callout except that it doesn't export the podsleuth-like
information to the udev database. This would be easy to do, but udev
maintainers didn't recommend doing that. Installing both the udev and HAL
callout at the same time is disrecommended since they'd both be run upon
device insertion. As for the HAL callout, the udev callout needs to be compiled
against libusb for plug-n-play nano5g support.

* fix playback order when sorting by composer (bug reported and fixed by
Alex T.)

* fix handling of nano5g with the latest firmware

* various bug fixes

Overview of changes in libgpod 0.7.90
=====================================

This release is API and ABI compatible with libgpod 0.7.2. It's a development
release toward libgpod 0.8.0. Please report any bug or misbehaviour you may
find with this release, especially with the iPhoneOS/iPod Nano 5g support.

* iPhoneOS 3.x support (iPhone and iPod Touch)

This requires a working libimobiledevice stack and a device initialized
once by iTunes. This support is optional so make sure you have libimobiledevice
development headers installed when compiling libgpod if you want to get it.
libgpod HAL callout needs to be installed and working for this support to work,
see README.overview for more details.

* iPod Nano 5G support

The device database needs to be initialized by iTunes once.
libgpod HAL callout needs to be installed and working for this support to work,
see README.overview for more details. Please note that for proper nano5g
support, the HAL callout must be compiled with libusb support (which is
optional). This requires libusb >= 1.0 to be installed.

* iPod Classic 3G support

* fix iPod Nano 4G 4GB serial number (bgo #599772)

* properly read timezone information from iPod Classic and Nano 4G

* artwork writing bug fixes

* iTunesDB reading bug fixes

* add code sample showing how to copy a file to the iPod

* export podsleuth-like information to HAL


Overview of changes in libgpod 0.7.2
====================================

* Performance work (thanks a lot to Javier Kohen for his patches)

* Add itdb_device_supports_podcast and itdb_device_supports_chapter_image
  methods

* Fix static iPod Classic/Nano 3G artwork formats

* Change installation directory for the HAL callout in the hope that it
  will work out of the box on more systems

* BSD portability fixes (courtesy of Andrew Nosenko)

* Write MHLA (list of albums) headers to iTunesDB

* Small improvements for iPhone support though iPhone 3G are still
  unsupported because we can't checksum the iPhone iTunesDB.


Overview of changes in libgpod 0.7.0
====================================

* support for iPod Nano 4th generation

This includes support for cover art.
Please note that this release DOES NOT support iPhones and iPod Touch
with firmware 2.x

* support for "sparse artwork" writing

This lets us write more compact artwork files to the iPod, which in turn makes
the UI more responsive (and saves disk space on the iPod).

* jump table support

These are the big letters that show up in the album/artist list when someone
quickly scrolls through them. Thanks a lot to Ian Stewart for implementing it.

* chapter data support

Chapter data allows large files (movies, audio books, podcasts) to be divided
into smaller sections.  Thanks to Michael Tiffany for this feature.

* improved timezone handling

This should now work up to 5G iPods, for newer iPods, libgpod will assume
timestamps are in UTC.

* translation updates

Thanks to all of our translators :)

* much more complete API doc

All of the public API is now documented with gtk-doc.

* simplification of the cover art handling API

The API for artwork for developers using libgpod should be more
straightforward, if things are missing, don't hesitate to get in touch
with us ;)

* extensive plist parser

In libgpod 0.6.0, libgpod got a very basic parser for the SysInfoExtended file
(which is a XML plist description). This parser was rewritten for this release
to parse the whole file. This parser depends on libxml2 but its compilation
will be disabled if libxml2 and its development headers can't be found.

* add mapping from iPod serial numbers to iPod models

The iPod serial number can be obtained programmatically, and its last 3 digits
are characteristic of an iPod (type, generation, color, capacity). libgpod
can now find out an iPod model using this serial number.

* portability improvements to windows and macosx

This is probably not perfect yet, but the goal is to improve it as much as
possible so don't hesitate to send bug reports if some things are still not
working. Thanks to the songbird project and Éric Lassauge.

* reworked handling of artwork formats

libgpod can now automatically use the artwork formats described in
SysInfoExtended even if the iPod model is unknown, this should make it possible
for libgpod to support artwork on newly released iPod models without the need
to upgrade.

* python bindings are more consistent with other python container objects

This enables testing whether a key exists in an object (e.g. "'title' in track")
as well as iterating over a Track or Photo object's keys, values, or items.

* bug fixes and code cleanup all over the place


Overview of changes in libgpod 0.6.0
====================================

* support for iPod Classics and Video Nanos

The database from these models is protected by a checksum. When this checksum
doesn't match the content of the iPod database, the iPod won't show any
track (ie it will look empty). Support for writing this checksum has been
implemented in this release thanks to the awesome work of a few people in
#gtkpod. However, to calculate this checksum, a so called "firewire ID" is
needed which is different from iPod to iPod. Since reading it from the iPod
requires special permissions, the firewire ID must be written in a regular
file on the iPod so that libgpod can find it and use it to generate the
checksum.

libgpod installs a HAL callout to do that automatically when
everything is installed in an appropriate place. It can also be done manually,
see README.SysInfo for more information.

Cover art should be working except for non square covers, preliminary photo
support but this hasn't been widely tested yet.


* support for iPhone and iPod Touch

This requires manual user intervention: the devices must be jailbroken and
mounted through sshfs. The iPod Touch also needs a firewire ID which must be
manually set, see README.SysInfo

Cover art is implemented but not tested at all, ditto for photo support on
the iPod Touch


* additional tools to get the firewire id from new iPods including a HAL
  callout which will make the process totally automatic when it's properly
  installed. These tools need libsgutils to be installed.

* endianness fixes in the artwork writing code
* now depends on glib 2.8 or newer

Huge thanks to wtbw and Simon Schulz without whom that release wouldn't have
been possible. Thanks as well to the people on #gtkpod for the testing they
provided.

Other contributors to the release:
- Jesse Bouwman
- Alex Eftimie
- Christophe Fergeau
- Filippo Giunchedi
- Javier Kohen
- Tobias Kreisel
- Eric Lassauge
- Nicholas Piper
- Jorg Schuler
- Simon Schulz
- Todd Zullinger