Gnupg library issues on Solaris 11

I have installed gnupg from the official Solaris 11 repository, but am experiencing library issues. This is the error I am getting:

ld.so.1: gpg2: fatal: relocation error: file /usr/lib/libreadline.so.5: symbol tgetent: referenced symbol not found

See more information here:

bash-4.1$ gpg2 --list-secret-keys
Warning: using insecure memory!
/www/shared/.gnupg/secring.gpg
------------------------------
sec 1024D/E6A51C54 2010-11-25
uid John Doe (jdoe) <john@doe.com>
ssb 2048g/2BE06126 2010-11-25

bash-4.1$ gpg2 --edit-key john@doe.com
gpg (GnuPG) 2.0.17; Copyright (C) 2011 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Warning: using insecure memory!
Secret key is available.

pub 1024D/E6A51C54 created: 2010-11-25 expires: never usage: SC
trust: unknown validity: unknown
sub 2048g/2BE06126 created: 2010-11-25 expires: never usage: E
[ unknown] (1). John Doe (jdoe) <john@doe.com>

ld.so.1: gpg2: fatal: relocation error: file /usr/lib/libreadline.so.5: symbol tgetent: referenced symbol not found
Killed
bash-4.1$ pkg list |grep readl
library/readline 5.2-0.175.0.0.0.2.537 i--
bash-4.1$ pkg list |grep gnup
crypto/gnupg 2.0.17-0.175.0.0.0.2.537 i--
bash-4.1$ ls -al /usr/lib/libreadline.so.5
-r-xr-xr-x 1 root bin 412864 Jun 20 2012 /usr/lib/libreadline.so.5
bash-4.1$ which gpg2
/usr/bin/gpg2
bash-4.1$ ldd /usr/bin/gpg2
        libc.so.1 =>     /lib/libc.so.1
        libz.so.1 =>     /lib/libz.so.1
        libbz2.so.1 =>   /usr/lib/libbz2.so.1
        libresolv.so.2 =>        /lib/libresolv.so.2
        libreadline.so.5 =>      /usr/lib/libreadline.so.5
        libgcrypt.so.11 =>       /usr/lib/libgcrypt.so.11
        libgpg-error.so.0 =>     /usr/lib/libgpg-error.so.0
        libassuan.so.0 =>        /usr/lib/libassuan.so.0
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libmd.so.1 =>    /lib/libmd.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libm.so.2 =>     /lib/libm.so.2

Please let me know if I have to provide more information!

Try

ldd -r /usr/bin/gpg2
ldd -r /usr/bin/gpg2
        libc.so.1 =>     /lib/libc.so.1
        libz.so.1 =>     /lib/libz.so.1
        libbz2.so.1 =>   /usr/lib/libbz2.so.1
        libresolv.so.2 =>        /lib/libresolv.so.2
        libreadline.so.5 =>      /usr/lib/libreadline.so.5
        libgcrypt.so.11 =>       /usr/lib/libgcrypt.so.11
        libgpg-error.so.0 =>     /usr/lib/libgpg-error.so.0
        libassuan.so.0 =>        /usr/lib/libassuan.so.0
        libsocket.so.1 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libmd.so.1 =>    /lib/libmd.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libm.so.2 =>     /lib/libm.so.2
        symbol not found: tputs         (/usr/lib/libreadline.so.5)
        symbol not found: tgoto         (/usr/lib/libreadline.so.5)
        symbol not found: tgetnum               (/usr/lib/libreadline.so.5)
        symbol not found: tgetent               (/usr/lib/libreadline.so.5)
        symbol not found: tgetstr               (/usr/lib/libreadline.so.5)
        symbol not found: tgetflag              (/usr/lib/libreadline.so.5)

/usr/lib/libreadline.so.5 should have a dependency on something like /lib/libcurses.so.1

How up-to-date is your Solaris 11 install?

We use Solaris 11.0. This is a known bug in gpg2 in Solaris 11.0 (aka Solaris 11 11/11), originally filed as Sun bug 7098984, now known as [cannot post link].

It�s fixed in Solaris 11.1 and later releases. For Solaris 11.0, this workaround helped in our case (but not if you're using pfexec/sudo/etc.):

env LD_PRELOAD_32=/usr/lib/libcurses.so.1 gpg2