[MacPorts] #54746: [Patch] libgpg-error +universal fix
MacPorts
noreply at macports.org
Mon Sep 4 14:20:42 UTC 2017
#54746: [Patch] libgpg-error +universal fix
------------------------------+--------------------------
Reporter: ccorn | Owner:
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version:
Keywords: patch, universal | Port: libgpg-error
------------------------------+--------------------------
On my darwin9-powerpc64 (G5) platform, I use universal archs {{{ppc}}} and
{{{ppc64}}}.
Recently I have noticed runtime crashes with ports dependent on {{{libgpg-
error}}}, such as {{{KeePassX}}}. Symptoms were log messages like
{{{
Fatal: failed to acquire the pool lock: Invalid argument
}}}
and crash dumps pointing to one of {{{libgcrypt}}}'s {{{lock_pool}}}
functions.
It turns out that the lock gets initialized by the macro
{{{GPGRT_LOCK_DEFINE}}} from {{{gpg-error.h}}}.
That one depends on {{{gpgrt_lock_t}}} and {{{GPGRT_LOCK_INITIALIZER}}}
both of which are architecture-specific and figured out in {{{libgpg-
error}}}'s build phase by means of a helper program built from {{{src/gen-
posix-lock-obj.c}}}.
First step was to use {{{PortGroup muniversal}}}.
Then I found that {{{muniversal}}}'s merger does not handle
{{{\}}}-continued lines properly when adding {{{#if}}} directives to
header files.
A fix for {{{muniversal}}} would be far from trivial, so I simply added a
patch to {{{gen-posix-lock-obj.c}}} that does not create such line
continuations.
Patch files attached. Note that the fix affects typedefs and macros in
{{{gpg-error.h}}} and therefore the ports {{{dependentof:libgpg-error}}}
should be revbumped so that they get recompiled.
After that, {{{KeePassX}}} runs fine and succeeds in opening my password
database, so I am now able to file this ticket.
--
Ticket URL: <https://trac.macports.org/ticket/54746>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list