On Tue, Feb 13, 2007 at 07:03:24PM +0000, Benjamin Donnachie wrote:
> Benjamin Donnachie wrote:
> > How embarrassing... my mistake - I was still using the old patched version!
> 
> Ah-ha!  That's better!  As a quick test I threw together the following
> helper application:
> 
> /*
> ** Mac OS fails to process bundle information correctly
> ** for pinentry-mac.
> **
> ** This quick hack attempts to address that.
> **
> */
> 
> #include <stdio.h>
> 
> int main()
> {
>         return system
> ("/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac");
> }

Is there any reason for not using execv(3)?
(disclaimer: not tested on PPC or MacOS X or, really, anything besides
FreeBSD/i386 and Debian/i386...)

#include <stdio.h>
#include <unistd.h>

#ifndef __unused
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
#define __unused        __attribute__((unused))
#else   /* __GNUC__ */
#if defined(__INTEL_COMPILER)
#define __unused        __attribute__((__unused__))
#else   /* __INTEL_COMPILER */
#define __unused
#endif  /* __INTEL_COMPILER */
#endif  /* __GNUC__ */
#endif  /* __unused */

#define APP     "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac"

int main(int argc __unused, char * const argv[])
{
        execv(APP, argv);
        perror("execv");
        return (1);
}

Of course, you may skip the whole __unused dance if you know that you
are only ever going to compile it on a single OS/arch/compiler - or if
you don't care about compiler warnings :)

> Compile this using "gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch
> i386 -arch ppc pinentry-helper.c -o pinentry-helper" (Or download from
> http://www.py-soft.co.uk/~benjamin/download/mac-gpg/pinentry-helper) and
> copy it to "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-helper".
> 
> Then add the following to ~/.gnupg/gpg-agent.conf:
> 
> pinentry-program
> "/Applications/pinentry-mac.app/Contents/MacOS/pinentry-helper"
> 
> Unpatched gpg-agent (admittedly v1.9.21) correctly invokes pinentry-mac,
> reading the GUI bundle information correctly.
> 
> It needs more work to achieve a tidy solution - especially since the
> location of pinentry-mac is fixed and it fails to pass any command line
> arguments.

The above will take care of passing command-line arguments; the executable
location might be handled by a symlink or something.

> Plus I might still use NSTask instead.

G'luck,
Peter

-- 
Peter Pentchev  [EMAIL PROTECTED]    [EMAIL PROTECTED]    [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
Nostalgia ain't what it used to be.

Attachment: pgpnhBgLZFexp.pgp
Description: PGP signature

_______________________________________________
Gnupg-users mailing list
[email protected]
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to