Binary incompatibility issue in JuK saved data

Michael Pyne mpyne at purinchu.net
Wed Jan 9 03:30:52 GMT 2008


On Tuesday 08 January 2008, Michael Pyne wrote:
> On Monday 07 January 2008, Michael Pyne wrote:
> > I can have the patch developed tomorrow (it's basically just adding
> > QDataStream::setVersion() calls and bumping the version JuK saves the
> > file under) but I just want to get the problem out there so people know.
>
> With no objections then, I will commit the patch I developed and then work
> on adding sanity-checking to give 4.0.0 playlists a shot at loading
> properly.

Some rudimentary sanity-checking has been added.  Worked on my KDE 3.5 data 
but then I had approximately 1083 files or so, so there was abundant 
opportunity to coerce failure.

I tested it on a JuK 3.0 (the affected version) data set and it was also able 
to load that (although without always failing when in KDE 3.5 mode.  Perhaps 
QDataStream changed less than I thought?)

As it turns out however, JuK 3.0 would also only save the playlists file once 
due to a change in behavior in QDir.  QDir::rename() does not overwrite 
existing files anymore.  A similar bug has already been fixed saving the 
cache.

The covers database also uses QDataStream incorrectly.  I will fix that as 
well but will not try to import 4.0.0 covers if they fail.

The patch used for sanity checking is attached for review.  It uses exceptions 
(the way they were meant to be used even).  I wanted to not change the 
indenting at first to make the diff easier to read but the diff was too 
intrusive anyways...

Regards,
 - Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: juk-fix-kde-4.0.0-loading.patch
Type: text/x-diff
Size: 13430 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080108/b7240e00/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080108/b7240e00/attachment.sig>


More information about the kde-core-devel mailing list