[MacPorts] #44469: libical build improvement
MacPorts
noreply at macports.org
Mon Jul 28 10:31:16 PDT 2014
#44469: libical build improvement
------------------------------------------------+--------------------------
Reporter: rjvbertin@… | Owner: macports-
Type: enhancement | tickets@…
Priority: Normal | Status: new
Component: ports | Milestone:
Keywords: cmake, deadlock, fix, ktimetracker | Version: 2.3.1
| Port: libical
------------------------------------------------+--------------------------
As reported on the mailing list, I ran into a libical-related issue when
trying to get ktimetracker to work (component of the kdepim4 port). In
fact, that process ran into a deadlock when trying to obtain timezone
data.
At first I thought a libical background thread was missing because of
incomplete initialisation (or exited prematurely). However, tracing code
execution on Linux, I noticed that libical was built using BUILTIN_TZDATA
on OS X, but not on Linux, presumably leading to
icaltimezone_load_builtin_timezone() calling itself and pthread_mutex_lock
recursively.
Further investigation showed that on Linux (Ubuntu 14.04 LTS), libical is
built using cmake, and also includes a timezone related patch.
In this ticket, I include patches to the Portfile to build libical using
cmake, which effectively prevents BUILTIN_TZDATA from being defined. I
included the timezone crash preventing patch, plus one that ensures that
the mutex used by icaltimezone_load_builtin_timezone() is initialised as a
recursive mutex, supporting multiple locks by the same thread.
With these patches, ktimetracker is now able to load .ics files correctly.
The patches also change the dylib version naming and the embedded version
information to more appropriate values, requiring a rebuild of kdepimlibs4
(something MacPorts couldn't handle on my system because that port is a
dependency?!).
--
Ticket URL: <https://trac.macports.org/ticket/44469>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list