Bug 303274 - amarok fails to mount ipod touch on kubuntu
Summary: amarok fails to mount ipod touch on kubuntu
Status: RESOLVED WORKSFORME
Alias: None
Product: amarok
Classification: Applications
Component: Collections/iPod iPhone (show other bugs)
Version: 2.5.0
Platform: Ubuntu Linux
: NOR normal
Target Milestone: 2.6
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-10 01:45 UTC by David Jobet
Modified: 2012-08-12 16:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.6
Sentry Crash Report:


Attachments
PlayCounts.list parse error (7.30 KB, text/plain)
2012-07-11 01:14 UTC, David Jobet
Details
PlayCounts.plist moved away : no error (11.83 KB, application/octet-stream)
2012-07-11 01:15 UTC, David Jobet
Details
capture dialog box when ifuse not installed (29.62 KB, image/png)
2012-07-12 01:25 UTC, David Jobet
Details
ifuse installed, but fails to parse PlayCounts.plist file (98.22 KB, image/png)
2012-07-12 01:26 UTC, David Jobet
Details
details of dialog box error when ifuse is not present (89.38 KB, image/png)
2012-07-12 23:23 UTC, David Jobet
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Jobet 2012-07-10 01:45:37 UTC
When plugging the ipod touch, amarok does not show it up.
Actually, when running with "amarok -d" I was able to see amarok was seeing the plug event, but was not able to mount it using "ifuse".

[IpodHandler] ifuse exited with non-zero exit code 1
amarok:         [IpodHandler] Mounting imobiledevice using ifuse on "/tmp/kde-david/amarok/imobiledevice" failed

I was able to fix it by manually changing the group ownership of /tmp/kde-david/amarok/imobiledevice to "plugdev" (being a member of the group does not seem to be enough).

Second problem was that amarok was not able to parse the file iTunes_Control/iTunes/PlayCounts.plist
It seems to think it should be an xml file while clearly in my case it looked like a binary file (unless it is compressed maybe ?).

Just renaming the file fixed it for me.

Reproducible: Always

Steps to Reproduce:
1. launch amarok with -d option 
2. plug ipod
Actual Results:  
nothing happened in amarok

Expected Results:  
icon appears in amarok.

I know it's going to sound like a broken idea, but not showing anything happening in amarok was really frustrating. It's only when I discovered the -d option that I saw that something was actually happening, it was just not showing up in the GUI. So maybe at least an error message saying "Hey, we detected an ipod, but we were not able to mount it" would have been nice for me who is discovering the feature. Until then I thought it was a system issue (missing lib, wrong version, ...)

For the other problem (parsing error), I was presented with a dialog box to "initialize my device" and a big list of ipod to chose from. Weirdly enough, removing the offending file made everything works as normal, so it really seems like this file should just be ignored in case of parsing error, don't you think ?

I'm running kubuntu x86_64 12.04 with amarok 2.5.0 in kde 4.8.4.
Yesterday I did not have ifuse installed, I don't know if amarok would have mounted the ipod anyway without it, but I started to have sign of life only today.

Love amarok, have been using it for years, but first time ever with an ipod ;-) And not too much information on the web to troubleshoot things

Keep up the good work, I'm available for more information/testing if you need to.

David
Comment 1 David Jobet 2012-07-10 01:55:37 UTC
Aargh, actually that's not the end of it : adding tracks did not work. It seems like the transfert was done, but the db could not be written.

Should I open a separate bug ?

amarok: BEGIN: void Collections::CollectionLocation::queryDone() 
amarok:   [CollectionLocation] we were about to copy something, lets proceed 
amarok:   BEGIN: void Collections::CollectionLocation::startWorkflow(const TrackList&, bool) 
amarok:     BEGIN: virtual void Collections::CollectionLocation::getKIOCopyableUrls(const TrackList&) 
amarok:       [CollectionLocation] adding url  KUrl("file:///home/david/Musique/shaka ponk/06 - My Name Is Stain.mp3") 
amarok:       [CollectionLocation] adding url  KUrl("file:///home/david/Musique/shaka ponk/05 - Sex Ball.mp3") 
amarok:       [CollectionLocation] Format is  0 
amarok:       BEGIN: void Collections::CollectionLocation::slotStartCopy(const QMap<KSharedPtr<Meta::Track>, KUrl>&, const Transcoding::Configuration&) 
amarok:         BEGIN: virtual void Collections::MediaDeviceCollectionLocation::copyUrlsToCollection(const QMap<KSharedPtr<Meta::Track>, KUrl>&, const Transcoding::Configuration&) 
amarok:           BEGIN: void Meta::MediaDeviceHandler::copyTrackListToDevice(Meta::TrackList) 
amarok:             BEGIN: void Meta::MediaDeviceHandler::setupWriteCapability() 
amarok:               WCB does not exist 
amarok:               Making write capability 
amarok:             END__: void Meta::MediaDeviceHandler::setupWriteCapability() [Took: 0s] 
amarok:             BEGIN: void Meta::MediaDeviceHandler::setupReadCapability() 
amarok:             END__: void Meta::MediaDeviceHandler::setupReadCapability() [Took: 0s] 
amarok:             No tracks with same title, track not a dupe 
amarok:             No tracks with same title, track not a dupe 
amarok:             BEGIN: float Meta::MediaDeviceHandler::freeSpace() const 
amarok:               totalCapacity: 6.23616e+10 
amarok:               usedCapacity(): 1.26545e+10 
amarok:             END__: float Meta::MediaDeviceHandler::freeSpace() const [Took: 0.008s] 
amarok:             Copying  2  tracks 
amarok:             BEGIN: void Meta::MediaDeviceHandler::copyNextTrackToDevice() 
amarok:               Tracks left to copy after this one is now done:  2 
amarok:               BEGIN: bool Meta::MediaDeviceHandler::privateCopyTrackToDevice(const TrackPtr&) 
amarok:                 [IpodHandler] Mountpoint is:  "/tmp/kde-david/amarok/imobiledevice" 
amarok:                 BEGIN: KUrl Meta::IpodHandler::determineURLOnDevice(const TrackPtr&) 
amarok:                   [IpodHandler] itunesDir():  ":iTunes_Control:" 
amarok:                   [IpodHandler] Copying to dirname:  ":iTunes_Control:Music:F33" 
amarok:                 END__: KUrl Meta::IpodHandler::determineURLOnDevice(const TrackPtr&) [Took: 0.24s] 
amarok:                 [IpodHandler] Url's path is:  "/tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F33/kpod0750933.mp3" 
amarok:                 [IpodHandler] About to copy from:  "/home/david/Musique/shaka ponk/06 - My Name Is Stain.mp3" 
amarok:                 [IpodHandler] to:  KUrl("file:///tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F33/kpod0750933.mp3") 
amarok:                 BEGIN: void Meta::MediaDeviceHandler::setBasicMediaDeviceTrackInfo(const TrackPtr&, Meta::MediaDeviceTrackPtr) 
amarok:                   BEGIN: void Meta::MediaDeviceHandler::setupWriteCapability() 
amarok:                   END__: void Meta::MediaDeviceHandler::setupWriteCapability() [Took: 0s] 
amarok:                   | Stamp:  33 

amarok:                   | Stamp:  34 

amarok:                   | Stamp:  35 

amarok:                   | Stamp:  36 

amarok:                   | Stamp:  37 

amarok:                   | Stamp:  38 

amarok:                   | Stamp:  39 

amarok:                   | Stamp:  40 

amarok:                   | Stamp:  41 

amarok:                   | Stamp:  42 

amarok:                   | Stamp:  43 

amarok:                   | Stamp:  44 

amarok:                   | Stamp:  45 

amarok:                   | Stamp:  46 

amarok:                   | Stamp:  47 

amarok:                   | Stamp:  48 

amarok:                 END__: void Meta::MediaDeviceHandler::setBasicMediaDeviceTrackInfo(const TrackPtr&, Meta::MediaDeviceTrackPtr) [Took: 0.11s] 
amarok:                 [IpodHandler] Path before put in ipod_path:  "/tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F33/kpod0750933.mp3" 
amarok:                 [IpodHandler] on iPod:  :iTunes_Control:Music:F33:kpod0750933.mp3 
amarok:                 BEGIN: virtual bool Meta::IpodHandler::libCopyTrack(const TrackPtr&, Meta::MediaDeviceTrackPtr&) 
amarok:                   BEGIN: bool Meta::IpodHandler::kioCopyTrack(const KUrl&, const KUrl&) 
amarok:                     [IpodHandler] Copying from * KUrl("file:///home/david/Musique/shaka ponk/06 - My Name Is Stain.mp3") * to * KUrl("file:///tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F33/kpod0750933.mp3") * 
amarok:                   END__: bool Meta::IpodHandler::kioCopyTrack(const KUrl&, const KUrl&) [Took: 0s] 
amarok:                 END__: virtual bool Meta::IpodHandler::libCopyTrack(const TrackPtr&, Meta::MediaDeviceTrackPtr&) [Took: 0s] 
amarok:               END__: bool Meta::MediaDeviceHandler::privateCopyTrackToDevice(const TrackPtr&) [Took: 0.36s] 
amarok:             END__: void Meta::MediaDeviceHandler::copyNextTrackToDevice() [Took: 0.36s] 
amarok:           END__: void Meta::MediaDeviceHandler::copyTrackListToDevice(Meta::TrackList) [Took: 0.37s] 
amarok:         END__: virtual void Collections::MediaDeviceCollectionLocation::copyUrlsToCollection(const QMap<KSharedPtr<Meta::Track>, KUrl>&, const Transcoding::Configuration&) [Took: 0.37s] 
amarok:       END__: void Collections::CollectionLocation::slotStartCopy(const QMap<KSharedPtr<Meta::Track>, KUrl>&, const Transcoding::Configuration&) [Took: 0.37s] 
amarok:     END__: virtual void Collections::CollectionLocation::getKIOCopyableUrls(const TrackList&) [Took: 0.37s] 
amarok:   END__: void Collections::CollectionLocation::startWorkflow(const TrackList&, bool) [Took: 0.37s] 
amarok: END__: void Collections::CollectionLocation::queryDone() [Took: 0.37s] 
Object::connect: No such signal Meta::IpodHandler::totalSteps( int )
amarok: BEGIN: void Meta::IpodHandler::slotCopyingDone(KIO::Job*, KUrl, KUrl, time_t, bool, bool) 
amarok:   BEGIN: void Meta::MediaDeviceHandler::slotFinalizeTrackCopy(const TrackPtr&) 
amarok:     BEGIN: virtual void Meta::IpodHandler::addTrackInDB(const MediaDeviceTrackPtr&) 
amarok:       [IpodHandler] Adding  "Shaka Ponk"  -  "My Name Is Stain" 
amarok:     END__: virtual void Meta::IpodHandler::addTrackInDB(const MediaDeviceTrackPtr&) [Took: 0s] 
amarok:     BEGIN: void Meta::MediaDeviceHandler::addMediaDeviceTrackToCollection(Meta::MediaDeviceTrackPtr&) 
amarok:       BEGIN: void Meta::MediaDeviceHandler::setupReadCapability() 
amarok:       END__: void Meta::MediaDeviceHandler::setupReadCapability() [Took: 0s] 
amarok:     END__: void Meta::MediaDeviceHandler::addMediaDeviceTrackToCollection(Meta::MediaDeviceTrackPtr&) [Took: 0s] 
amarok:   END__: void Meta::MediaDeviceHandler::slotFinalizeTrackCopy(const TrackPtr&) [Took: 0s] 
amarok: END__: void Meta::IpodHandler::slotCopyingDone(KIO::Job*, KUrl, KUrl, time_t, bool, bool) [Took: 0.001s] 
amarok: BEGIN: void Meta::IpodHandler::fileTransferred(KJob*) 
amarok:   [IpodHandler] Tracks to copy still remain 
amarok:   [IpodHandler] Jobs:  0 
amarok:   BEGIN: void Meta::MediaDeviceHandler::copyNextTrackToDevice() 
amarok:     Tracks left to copy after this one is now done:  1 
amarok:     BEGIN: bool Meta::MediaDeviceHandler::privateCopyTrackToDevice(const TrackPtr&) 
amarok:       [IpodHandler] Mountpoint is:  "/tmp/kde-david/amarok/imobiledevice" 
amarok:       BEGIN: KUrl Meta::IpodHandler::determineURLOnDevice(const TrackPtr&) 
amarok:         [IpodHandler] itunesDir():  ":iTunes_Control:" 
amarok:         [IpodHandler] Copying to dirname:  ":iTunes_Control:Music:F32" 
amarok:       END__: KUrl Meta::IpodHandler::determineURLOnDevice(const TrackPtr&) [Took: 0.23s] 
amarok:       [IpodHandler] Url's path is:  "/tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F32/kpod0035732.mp3" 
amarok:       [IpodHandler] About to copy from:  "/home/david/Musique/shaka ponk/05 - Sex Ball.mp3" 
amarok:       [IpodHandler] to:  KUrl("file:///tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F32/kpod0035732.mp3") 
amarok:       BEGIN: void Meta::MediaDeviceHandler::setBasicMediaDeviceTrackInfo(const TrackPtr&, Meta::MediaDeviceTrackPtr) 
amarok:         BEGIN: void Meta::MediaDeviceHandler::setupWriteCapability() 
amarok:         END__: void Meta::MediaDeviceHandler::setupWriteCapability() [Took: 0s] 
amarok:         | Stamp:  49 

amarok:         | Stamp:  50 

amarok:         | Stamp:  51 

amarok:         | Stamp:  52 

amarok:         | Stamp:  53 

amarok:         | Stamp:  54 

amarok:         | Stamp:  55 

amarok:         | Stamp:  56 

amarok:         | Stamp:  57 

amarok:         | Stamp:  58 

amarok:         | Stamp:  59 

amarok:         | Stamp:  60 

amarok:         | Stamp:  61 

amarok:         | Stamp:  62 

amarok:         | Stamp:  63 

amarok:         | Stamp:  64 

amarok:       END__: void Meta::MediaDeviceHandler::setBasicMediaDeviceTrackInfo(const TrackPtr&, Meta::MediaDeviceTrackPtr) [Took: 0.011s] 
amarok:       [IpodHandler] Path before put in ipod_path:  "/tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F32/kpod0035732.mp3" 
amarok:       [IpodHandler] on iPod:  :iTunes_Control:Music:F32:kpod0035732.mp3 
amarok:       BEGIN: virtual bool Meta::IpodHandler::libCopyTrack(const TrackPtr&, Meta::MediaDeviceTrackPtr&) 
amarok:         BEGIN: bool Meta::IpodHandler::kioCopyTrack(const KUrl&, const KUrl&) 
amarok:           [IpodHandler] Copying from * KUrl("file:///home/david/Musique/shaka ponk/05 - Sex Ball.mp3") * to * KUrl("file:///tmp/kde-david/amarok/imobiledevice/iTunes_Control/Music/F32/kpod0035732.mp3") * 
amarok:         END__: bool Meta::IpodHandler::kioCopyTrack(const KUrl&, const KUrl&) [Took: 0s] 
amarok:       END__: virtual bool Meta::IpodHandler::libCopyTrack(const TrackPtr&, Meta::MediaDeviceTrackPtr&) [Took: 0s] 
amarok:     END__: bool Meta::MediaDeviceHandler::privateCopyTrackToDevice(const TrackPtr&) [Took: 0.25s] 
amarok:   END__: void Meta::MediaDeviceHandler::copyNextTrackToDevice() [Took: 0.25s] 
amarok: END__: void Meta::IpodHandler::fileTransferred(KJob*) [Took: 0.25s] 
amarok: BEGIN: void Meta::IpodHandler::slotCopyingDone(KIO::Job*, KUrl, KUrl, time_t, bool, bool) 
amarok:   BEGIN: void Meta::MediaDeviceHandler::slotFinalizeTrackCopy(const TrackPtr&) 
amarok:     BEGIN: virtual void Meta::IpodHandler::addTrackInDB(const MediaDeviceTrackPtr&) 
amarok:       [IpodHandler] Adding  "Shaka Ponk"  -  "Sex Ball" 
amarok:     END__: virtual void Meta::IpodHandler::addTrackInDB(const MediaDeviceTrackPtr&) [Took: 0s] 
amarok:     BEGIN: void Meta::MediaDeviceHandler::addMediaDeviceTrackToCollection(Meta::MediaDeviceTrackPtr&) 
amarok:       BEGIN: void Meta::MediaDeviceHandler::setupReadCapability() 
amarok:       END__: void Meta::MediaDeviceHandler::setupReadCapability() [Took: 0s] 
amarok:     END__: void Meta::MediaDeviceHandler::addMediaDeviceTrackToCollection(Meta::MediaDeviceTrackPtr&) [Took: 0s] 
amarok:   END__: void Meta::MediaDeviceHandler::slotFinalizeTrackCopy(const TrackPtr&) [Took: 0.001s] 
amarok: END__: void Meta::IpodHandler::slotCopyingDone(KIO::Job*, KUrl, KUrl, time_t, bool, bool) [Took: 0.002s] 
amarok: BEGIN: void Meta::IpodHandler::fileTransferred(KJob*) 
amarok:   [IpodHandler] Tracks to copy still remain 
amarok:   [IpodHandler] Jobs:  0 
amarok:   BEGIN: void Meta::MediaDeviceHandler::copyNextTrackToDevice() 
amarok:     Tracks left to copy after this one is now done:  0 
amarok:   END__: void Meta::MediaDeviceHandler::copyNextTrackToDevice() [Took: 0s] 
amarok: END__: void Meta::IpodHandler::fileTransferred(KJob*) [Took: 0s] 
amarok: BEGIN: void Collections::CollectionLocation::slotFinishCopy() 
amarok: BEGIN: bool Meta::IpodHandler::writeITunesDB(bool) 
amarok:   END__: void Collections::CollectionLocation::slotFinishCopy() [Took: 0s] 
libitdbprep: itdb_iphone_start_sync called with uuid=1abfa309c0453621d30f5d2cb8ad00a2b10941a8
itdb_iphone_start_sync: posted syncWillStart
itdb_iphone_start_sync: posted syncLockRequest
Locking for sync, attempt 0...
itdb_iphone_start_sync: posted syncDidStart

** (amarok:15039): CRITICAL **: itdb_splr_validate: assertion `at != ITDB_SPLAT_UNKNOWN' failed

(amarok:15039): GLib-WARNING **: (/build/buildd/glib2.0-2.32.3/./glib/gerror.c:390):g_error_new_valist: runtime check failed: (domain != 0)
libitdbprep: itdb_iphone_stop_sync called
Could not delete '.status-com.apple.itdprep.command.runPostProcess'
Could not delete 'ddd.itdbm'
itdb_iphone_stop_sync: posted syncDidFinish
amarok:   [IpodHandler] itdb_write error:  Unsupported checksum type 
amarok:   [IpodHandler] Failed to write iPod database 
amarok: END__: bool Meta::IpodHandler::writeITunesDB(bool) [DELAY Took (quite long) 5.1s] 
amarok: [IpodHandler] Writing to DB did not happen or failed 
amarok: BEGIN: void Meta::MediaDeviceHandler::slotDatabaseWritten(bool) 
amarok: END__: void Meta::MediaDeviceHandler::slotDatabaseWritten(bool) [Took: 0.003s] 
amarok: BEGIN: void CollectionTreeItemModelBase::handleSpecialQueryResult(CollectionTreeItem::Type, Collections::QueryMaker*, const DataList&) 
amarok:   [CollectionTreeItemModelBase] Received special data:  0 
amarok: END__: void CollectionTreeItemModelBase::handleSpecialQueryResult(CollectionTreeItem::Type, Collections::QueryMaker*, const DataList&) [Took: 0s] 
amarok: BEGIN: void CollectionTreeItemModelBase::handleSpecialQueryResult(CollectionTreeItem::Type, Collections::QueryMaker*, const DataList&) 
amarok:   [CollectionTreeItemModelBase] Received special data:  0 
amarok: END__: void CollectionTreeItemModelBase::handleSpecialQueryResult(CollectionTreeItem::Type, Collections::QueryMaker*, const DataList&) [Took: 0s] 
amarok: BEGIN: void ScanManager::checkForDirectoryChanges() 
amarok:   BEGIN: void DirWatchJob::setPaused(bool) 
amarok:   END__: void DirWatchJob::setPaused(
Comment 2 Matěj Laitl 2012-07-10 10:33:23 UTC
Hi David,
all the iPod plugin code of Amarok 2.5 was thown away for Amarok 2.6 and rewritten. Please read comments below and then try with Amarok 2.6 beta (should be available in the backports PPA) or with current git (see http://blogs.fsfe.org/myriam/2009/09/compiling-amarok-from-git-locally-full-summary/ ) and then report back whether new behaviour is correct or not.

Also please check that media-player-info package is installed. If you need to install it manually it is a bug in kubuntu kdelibs 4.8.4 package that should have it marked as runtime dependency.

(In reply to comment #0)
> I was able to fix it by manually changing the group ownership of
> /tmp/kde-david/amarok/imobiledevice to "plugdev" (being a member of the
> group does not seem to be enough).

For testing A 2.6 please revert it to the original state, best idea is probably to delete the directory.

> I know it's going to sound like a broken idea, but not showing anything
> happening in amarok was really frustrating. It's only when I discovered the
> -d option that I saw that something was actually happening, it was just not
> showing up in the GUI. So maybe at least an error message saying "Hey, we
> detected an ipod, but we were not able to mount it" would have been nice for
> me who is discovering the feature. Until then I thought it was a system
> issue (missing lib, wrong version, ...)

Fixed in Amarok 2.6, please reinstate the broken PlayCounts.plist file to test it shows helpful message.

> For the other problem (parsing error), I was presented with a dialog box to
> "initialize my device" and a big list of ipod to chose from. Weirdly enough,
> removing the offending file made everything works as normal, so it really
> seems like this file should just be ignored in case of parsing error, don't
> you think ?

Amarok 2.6 has much better behaviour on failed db parsing, please test. On the other hand, we don't know from libgpod what is the cause, we have only textual error message, so we must leave the decision what to do to the user.

> I'm running kubuntu x86_64 12.04 with amarok 2.5.0 in kde 4.8.4.
> Yesterday I did not have ifuse installed, I don't know if amarok would have
> mounted the ipod anyway without it.

Certainly not, but please test whether it gives helpful error without it.

> Love amarok, have been using it for years, but first time ever with an ipod
> ;-) And not too much information on the web to troubleshoot things

Even without you succeeded, because we would tell you to run it with -d flag. ;)

> Keep up the good work, I'm available for more information/testing if you
> need to.

Good. Please test the 2.6 beta iPod plugin as throughoutly as you can. Speaking about the "failed to add tracks bug", what iPod touch and iOS version you have? iOS5 is supported only read-only, seee www.gtkpod.org
Comment 3 David Jobet 2012-07-11 01:12:36 UTC
Hi Matěj,

so I followed your advice and restored the Playcounts.plist, destroyed the original ifuse mount point and upgraded to amarok 2.5.90 (2.6 beta from PPA).
Thankfully you mentionned package "media-player-info package" : it was not automatically installed (I will report a bug downstream).
Without it, amarok did not show the ipod at all.

With media-player-info package, amarok showed the ipod but failed to parse the Playcounts.plist file. As a result, it was showing up as an unknown ipod with 0 tracks, and I got a dialog asking if I wanted to initialize my ipod. (replyed "no" ;-)

I moved away Playcounts.plist, and after that, amarok showed me the correct model and my tracks. So I think my previous comment stands : since it works without this file, while not just ignoring it completly when there is a parsing error ?

my ipod touch silver is an iOS 5.1.1, so no write mode huh ? :-(

Looking at imobiledevice, I see that the last developer version has better support for iOS 5. Do you know what it means ? (unfortunately the mail archive is not public).
Browsing their git repo, I found only a reference to an improved "lockdown". Don't know what a "lockdown" is.

Also, if I jailbreak my ipod, will I gain write mode ? (found that : http://gnuru.org/article/1557/ipod-touch-iphone-linux-making-it-all-work)
Any other advice ?

With regards

David
Comment 4 David Jobet 2012-07-11 01:14:27 UTC
Created attachment 72439 [details]
PlayCounts.list parse error
Comment 5 David Jobet 2012-07-11 01:15:05 UTC
Created attachment 72440 [details]
PlayCounts.plist moved away : no error
Comment 6 Matěj Laitl 2012-07-11 11:27:25 UTC
(In reply to comment #3)
> so I followed your advice and restored the Playcounts.plist, destroyed the
> original ifuse mount point and upgraded to amarok 2.5.90 (2.6 beta from PPA).
> Thankfully you mentionned package "media-player-info package" : it was not
> automatically installed (I will report a bug downstream).

Please do, link http://quickgit.kde.org/index.php?p=kdelibs.git&a=commit&h=3c1c788cc52e166278af2ed878e8a2f65874b1ac

> Without it, amarok did not show the ipod at all.

Expected behaviour, we can do nothing about it.

> With media-player-info package, amarok showed the ipod but failed to parse
> the Playcounts.plist file. As a result, it was showing up as an unknown ipod
> with 0 tracks, and I got a dialog asking if I wanted to initialize my ipod.
> (replyed "no" ;-)

Did it mention the error? Screenshot would be great. Also, please do what I said and test behaviour without ifuse installed, screenshot of the dialog showing error is best. (french in the GUI is okay)

> I moved away Playcounts.plist, and after that, amarok showed me the correct
> model and my tracks. So I think my previous comment stands : since it works
> without this file, while not just ignoring it completly when there is a
> parsing error ?

You didn't read my comment. I said:
> On the other hand, we don't know from libgpod what is the cause, we have only
> textual error message, so we must leave the decision what to do to the user.

Again: Amarok doesn't and cannot know the problem is just in Playcounts.plist. Perhaps libgpod can be made not to fail on such non-fatal errors.

> my ipod touch silver is an iOS 5.1.1, so no write mode huh ? :-(

No, sorry.

> Looking at imobiledevice, I see that the last developer version has better
> support for iOS 5. Do you know what it means ? (unfortunately the mail
> archive is not public).

libimobiledevice is fow low-level access, Amarok depends on libgpod of gtkpod to parse the iTunes database etc. That's why I pointed you to www.gtkpod.org.

> Also, if I jailbreak my ipod, will I gain write mode ? (found that :
> http://gnuru.org/article/1557/ipod-touch-iphone-linux-making-it-all-work)
> Any other advice ?

Seriously, I don't know. You may check #gtkpod on IRC.
Comment 7 David Jobet 2012-07-12 01:25:31 UTC
Created attachment 72466 [details]
capture dialog box when ifuse not installed
Comment 8 David Jobet 2012-07-12 01:26:39 UTC
Created attachment 72467 [details]
ifuse installed, but fails to parse PlayCounts.plist file
Comment 9 David Jobet 2012-07-12 01:29:33 UTC
> On the other hand, we don't know from libgpod what is the cause

Finally understood. From the logs, I thought amarok itself was parsing the file.
I will report this issue to gtkpod.

Tx for your help !

David
Comment 10 Matěj Laitl 2012-07-12 10:14:18 UTC
(In reply to comment #7)
> Created attachment 72466 [details]
> capture dialog box when ifuse not installed

Thanks for all your testing. Could you please recreate this dialog with "Détails" expanded. This will be the last thing, I promise. ;)
Comment 11 David Jobet 2012-07-12 23:23:14 UTC
Created attachment 72490 [details]
details of dialog box error when ifuse is not present

Here you go. IMHO, it's much better than with 2.5 !