[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