[MacPorts] #44566: fontconfig: fc-cache fails on AFP/SMB homes, cache rebuilt on every launch
MacPorts
noreply at macports.org
Thu Aug 7 10:36:17 PDT 2014
#44566: fontconfig: fc-cache fails on AFP/SMB homes, cache rebuilt on every launch
-----------------------------+--------------------------------
Reporter: michael-lists@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.3.1
Keywords: | Port: fontconfig
-----------------------------+--------------------------------
Our user accounts have their home directories on an AFP or SMB server.
If the fontconfig cache is outdated (e.g. because fonts have been added to
/Library/Fonts since fontconfig was last updated via MacPorts), it gets
rebuilt when you run {{{fc-cache}}} or use a program that depends on
fontconfig (such as gnuplot when outputting to PDF).
Unfortunately, fontconfig fails to successfully build a cache at
~/.cache/fontconfig if that folder is on a network home directory. This
means that the lengthy caching procedure (1-3 minutes) is run every time a
program depending on fontconfig is run.
The caching issue can be fixed by applying the following patch:
{{{
--- src/fcatomic.c.orig 2012-05-28 15:58:56.000000000 +0900
+++ src/fcatomic.c 2014-08-07 11:47:45.000000000 +0200
@@ -131,7 +131,7 @@ FcAtomicLock (FcAtomic *atomic)
return FcFalse;
}
ret = link ((char *) atomic->tmp, (char *) atomic->lck);
- if (ret < 0 && errno == EPERM)
+ if (ret < 0 && (errno == EPERM || errno == ENOTSUP))
{
/* the filesystem where atomic->lck points to may not supports
* the hard link. so better try to fallback
}}}
and adding it to the Portfile:
{{{
--- /tmp/Portfile 2014-08-07 11:49:34.000000000 +0200
+++
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/graphics/fontconfig/Portfile
2014-08-07 11:50:31.000000000 +0200
@@ -38,7 +38,7 @@
lappend add_fonts ${prefix}/share/fonts
set docdir ${prefix}/share/doc/${name}
-patchfiles patch-docbook-4.2.diff
+patchfiles patch-docbook-4.2.diff patch-fcatomic.diff
# *** No scandir function available.
# https://bugs.freedesktop.org/show_bug.cgi?id=77034
}}}
An identical bug affecting the Haiku operating system was reported
upstream two years ago (see
https://bugs.freedesktop.org/show_bug.cgi?id=30077#c17) and ended up being
closed because by POSIX, ''link()'' should only return ''EPERM'' in this
situation, i.e. this is an OS bug and not a fontconfig bug. We could try
reporting it anyway, but in the meantime a patch in MacPorts would be
helpful.
--
Ticket URL: <https://trac.macports.org/ticket/44566>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list