<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>263010</bug_id>
          
          <creation_ts>2011-01-13 11:08:22 +0000</creation_ts>
          <short_desc>[Patch] Marble does not use the shared tile cache on N900</short_desc>
          <delta_ts>2011-05-04 19:09:24 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>marble</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Maemo 5</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>wishlist</bug_severity>
          <target_milestone>1.1.0</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Enrico Zini">enrico</reporter>
          <assigned_to>marble-bugs</assigned_to>
          <cc>nienhueser</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin>1.1.0</cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1072555</commentid>
    <comment_count>0</comment_count>
    <who name="Enrico Zini">enrico</who>
    <bug_when>2011-01-13 11:08:22 +0000</bug_when>
    <thetext>Version:           unspecified
OS:                Linux

On the N900, ~/MyDocs/.maps is a container for a shared tile cache. It is a fantastic thing, because it avoids having to fill the SD card with one copy of the tile cache for every application that displays a map, and to having to keep them all separately up to date.

This is used successfully, for example, by mappero, evopedia, map buddy, modrana.

Marble instead uses ~/MyDocs/.local/share/marble/maps/earth/ and I couldn&apos;t find any way to change that. The SD is formatted with a FAT-like file system that doesn&apos;t support symlinks, so I cannot fix it by just symlinking the openstreetmap directory in there to &quot;~/MyDocs/.maps/OpenStreetMap I&quot;.

This is especially frustrating as the disk layout for the tile cache seems to be exactly the same. It looks like a small change that would give enormous gains.

Reproducible: Always</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072898</commentid>
    <comment_count>1</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-01-13 23:40:11 +0000</bug_when>
    <thetext>Symlinks do indeed not work due to the fat limitation. I haven&apos;t tried it yet, but switching to ext3/4 as the filesystem may be a workaround (with additional benefits).

I plan to change the openstreetmap map theme to use that directory for cached tiles in the future. Currently we&apos;re lacking support for absolute cache directories however (the cache directories are assumed to be relative to Marble&apos;s data directory).

Patches are welcome of course. There&apos;s not too much code to change, just tracking down where the assumption is made that the path is relative and extending it to handle absolute ones. Afterwards we just need a small patch for openstreetmap.dgml in the Maemo packages to have it work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072976</commentid>
    <comment_count>2</comment_count>
    <who name="Enrico Zini">enrico</who>
    <bug_when>2011-01-14 08:56:01 +0000</bug_when>
    <thetext>Dennis, that is the partition that is exported as USB mass storage when connecting the phone to a PC via a USB cable.

Yes, reformatting it as ext4 would allow symlinks and it may be a workaround, but that it gives &quot;additional benefits&quot; is, to be polite, a rather debatable statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072987</commentid>
    <comment_count>3</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-01-14 09:44:54 +0000</bug_when>
    <thetext>(In reply to comment #2)
&gt; Dennis, that is the partition that is exported as USB mass storage when
&gt; connecting the phone to a PC via a USB cable.

Yes. Windows systems would probably not be able to mount it via USB when formatted as ext3. Wouldn&apos;t be a problem for me.
 
&gt; Yes, reformatting it as ext4 would allow symlinks and it may be a workaround,
&gt; but that it gives &quot;additional benefits&quot; is, to be polite, a rather debatable
&gt; statement.

I was referring to vfat on the N900 using a large cluster size, wasting space when storing many small files. This is exactly the use case of all tile sharing applications. Ext3/4 in contrast store these files much more efficiently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073525</commentid>
    <comment_count>4</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-01-15 13:52:39 +0000</bug_when>
    <thetext>Patch (Marble part, packaging tbd.) is at http://reviewboard.kde.org/r/6334/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079610</commentid>
    <comment_count>5</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-01-27 21:20:36 +0000</bug_when>
    <thetext>SVN commit 1217541 by nienhueser:

Allow using absolute source directories in texture layers in .dgml files.
Extend .dgml by a tileSize tag (width and height attribute), usable inside textureLayer tags. Such .dgml files are backwards compatible.
Handle &apos;base tile missing&apos; case more gracefully and return an empty image instead of triggering an assertion.
Move the default tile size (675) to global.h and replace hardcoded default tile sizes with it.
CCBUG: 249633
CCBUG: 263010
REVIEW: 6334

 M  +1 -0      data/maps/earth/bluemarble/bluemarble.dgml  
 M  +2 -0      data/maps/earth/openstreetmap/openstreetmap.dgml  
 M  +2 -1      src/lib/FileStoragePolicy.cpp  
 M  +2 -2      src/lib/ImageLoadThread.cpp  
 M  +1 -1      src/lib/MapWizard.cpp  
 M  +32 -36    src/lib/TileCreator.cpp  
 M  +18 -4     src/lib/TileLoader.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.h  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlElementDictionary.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlElementDictionary.h  
 A             src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp   [License: LGPL]
 A             src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.h   [License: LGPL]
 M  +27 -5     src/lib/geodata/scene/GeoSceneTexture.cpp  
 M  +1 -0      src/lib/geodata/scene/GeoSceneTexture.h  
 M  +3 -0      src/lib/global.h  


WebSVN link: http://websvn.kde.org/?view=rev&amp;revision=1217541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102145</commentid>
    <comment_count>6</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-03-28 23:59:03 +0000</bug_when>
    <thetext>SVN commit 1226352 by nienhueser:

Allow using absolute source directories in texture layers in .dgml files.
Extend .dgml by a tileSize tag (width and height attribute), usable inside textureLayer tags. Such .dgml files are backwards compatible.
Handle &apos;base tile missing&apos; case more gracefully and return an empty image instead of triggering an assertion.
Move the default tile size (675) to global.h and replace hardcoded default tile sizes with it.
CCBUG: 249633
CCBUG: 263010
REVIEW: 6334
Backport of commit 1217541.

 M  +1 -0      data/maps/earth/bluemarble/bluemarble.dgml  
 M  +1 -0      data/maps/earth/openstreetmap/openstreetmap.dgml  
 M  +2 -1      src/lib/FileStoragePolicy.cpp  
 M  +2 -2      src/lib/ImageLoadThread.cpp  
 M  +32 -36    src/lib/TileCreator.cpp  
 M  +18 -4     src/lib/TileLoader.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.h  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlElementDictionary.cpp  
 M  +1 -0      src/lib/geodata/handlers/dgml/DgmlElementDictionary.h  
 A             src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp   [License: LGPL]
 A             src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.h   [License: LGPL]
 M  +27 -5     src/lib/geodata/scene/GeoSceneTexture.cpp  
 M  +1 -0      src/lib/geodata/scene/GeoSceneTexture.h  
 M  +3 -0      src/lib/global.h  


WebSVN link: http://websvn.kde.org/?view=rev&amp;revision=1226352</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114953</commentid>
    <comment_count>7</comment_count>
    <who name="Dennis Nienhüser">nienhueser</who>
    <bug_when>2011-05-04 19:09:24 +0000</bug_when>
    <thetext>Fixed in the last release, soon in extras.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>