[GRASS-dev] [GRASS GIS] #2448: Fontconfig error with cairo on Windows

#2448: Fontconfig error with cairo on Windows
--------------------------+-------------------------------------------
  Reporter: annakrat | Owner: grass-dev@…
      Type: defect | Status: new
  Priority: normal | Milestone: 7.0.2
Component: Display | Version: 7.0.0
Resolution: | Keywords: font, text, legend, scale bar
       CPU: Unspecified | Platform: MSWindows 8
--------------------------+-------------------------------------------

Comment (by hellik):

Replying to [comment:46 wenzeslaus]:
> Replying to [comment:45 hellik]:
> > Replying to [comment:43 wenzeslaus]:
> > > Replying to [comment:42 annakrat]:
> > > > Replying to [comment:41 hellik]:
> > > > > I've done some research, file permissions changed a lot between
Windows versions (7,8,10).
> > > >
> > > > Unfortunately, no change. I wonder if the problem is something
different then permissions. The problem is I don't get any error during
installation. Maybe we could print more messages during the font
configuration? Thanks for all the work on this.
> > >
> > > What about that hardcoding of some fonts for MS Windows into a MS
Windows specific file? This is a great workaround and I have no idea how
it should be done but it seems that it is appropriate on a platform where
API is changing often and is under-documented.
>
> Shouldn't be there a file with the default GRASS fonts somewhere
already? Or is everything generated?

see https://trac.osgeo.org/grass/ticket/2448#comment:33

yes, the file is there (e.g. ''C:\Program Files\GRASS GIS
7.1.svn\etc\fontcap''), but the content of the file refers to the OSGeo4W-
build environment (e.g.
cyrilc|Cyrillic|0|c:\osgeo4w\usr\src\grass701\dist.i686-pc-
mingw32\fonts\cyrilc.hmp|0|utf-8|) , and includes not the installation
path.

for this situation: the nsis-winGRASS installer normally invokes a g
.mkfontcap-run, which updates the fontcap file; unfortunately in newer
windows version the file write permissions in e.g. C:\Program Files\your
software\somefolder for installer subprocesses has changed.

IMHO there is some safety issue if write permission to the whole
''C:\Program Files\GRASS GIS 7.1.svn\etc\'' folder is granted to all users
after installation.

therefore Microsoft has implemented the %APPDATA% to store there changing
application files.

so a workaround may be,

(1) grant write access to the whole folder
(2) run g.mkfontcap
(3) change afterwards again back to no write access

unfortunately you can't run g.mkfontcap successfully afterwards during a
GRASS session

--
Ticket URL: <https://trac.osgeo.org/grass/ticket/2448#comment:48&gt;
GRASS GIS <https://grass.osgeo.org>