Bug 141614

Summary: Detection of msdosfs/vfat still wrong on FreeBSD
Product: [Applications] amarok Reporter: Bartosz Fabianowski <freebsd>
Component: generalAssignee: Amarok Bugs <amarok-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version First Reported In: 1.4.5   
Target Milestone: ---   
Platform: FreeBSD Ports   
OS: FreeBSD   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Fix for msdosfs/vfat detection on FreeBSD

Description Bartosz Fabianowski 2007-02-13 00:21:19 UTC
Version:           1.4.5 (using KDE KDE 3.5.5)
Installed from:    FreeBSD Ports
OS:                FreeBSD

The patch by Daniel O'Connor included in Amarok's 1.4.5 release that was supposed to fix FAT file system detection on FreeBSD actually breaks it in some cases. When a FAT partition is mounted via fstab entry or mount_msdosfs, KMountPoint may report its type as "msdosfs". However, when mounting through HAL and media:/ (the officially supported method of mounting removable drives under KDE), the file system type KMountPoint is "vfat", even under FreeBSD. Thus, Daniel's patch fixes the detection of manually mounted FAT partitions but breaks the probably more common case of mounting through HAL. The attached patch fixes this behavior by flagging both "msdosfs" and "vfat" as FAT. I will submit it to the Amarok bug tracker as well.
Comment 1 Bartosz Fabianowski 2007-02-13 00:22:19 UTC
Created attachment 19653 [details]
Fix for msdosfs/vfat detection on FreeBSD
Comment 2 Bartosz Fabianowski 2007-02-13 00:22:56 UTC
The last sentence of my bug report (I will submit it to the Amarok bug tracker as well.) made no sense of course. Copy & past... sorry about that :)
Comment 3 Dan Meltzer 2007-03-02 02:55:56 UTC
Thank you! this has been applied in svn revision 638461 and should be availible in Amaork 1.4.6 (whenever that comes).
Comment 4 Jeff Mitchell 2007-03-02 03:14:06 UTC
SVN commit 638463 by mitchell:

Complete FreeBSD FAT filesystem detection
BUG: 141614


 M  +1 -1      mediadevicemanager.cpp  


--- branches/stable/extragear/multimedia/amarok/src/mediadevicemanager.cpp #638462:638463
@@ -114,7 +114,7 @@
     {
         if ( m->fsType() == "manual" ||
                 ( !m->deviceNode().startsWith( "/dev/hd" ) &&
-                  (m->fsType() == "vfat" || m->fsType() == "hfsplus") ) )
+                  (m->fsType() == "vfat" || m->fsType() == "hfsplus" || m->fsType() == "msdosfs" ) ) )
             // add other fsTypes that should be auto-detected here later
         {
             if ( m_mediumMap.contains( m->name() ) )