I am trying to install gnupg on a mac using PECL.
sudo pecl install gnupg
downloading gnupg-1.3.3.tgz ... Starting to download gnupg-1.3.3.tgz (19,141 bytes) ......done: 19,141 bytes 5 source files, building WARNING: php_bin /Applications/MAMP/bin/php/php5.5.3/bin/php appears to have a suffix /php5.5.3/bin/php, but config variable php_suffix does not match running: phpize Configuring for: PHP Api Version: 20121113 Zend Module Api No: 20121212 Zend Extension Api No: 220121212 building in /private/tmp/pear/install/pear-build-rootj1cVj1/gnupg-1.3.3 running: /private/tmp/pear/install/gnupg/configure checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for a sed that does not truncate output... /opt/local/bin/gsed checking for cc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking how to run the C preprocessor... cc -E checking for icc... no checking for suncc... no checking whether cc understands -c and -o together... yes checking for system library directory... lib checking if compiler supports -R... no checking if compiler supports -Wl,-rpath,... yes checking build system type... x86_64-apple-darwin12.4.0 checking host system type... x86_64-apple-darwin12.4.0 checking target system type... x86_64-apple-darwin12.4.0 checking for PHP prefix... /Applications/MAMP/bin/php/php5.5.3 checking for PHP includes... -I/Applications/MAMP/bin/php/php5.5.3/include/php -I/Applications/MAMP/bin/php/php5.5.3/include/php/main -I/Applications/MAMP/bin/php/php5.5.3/include/php/TSRM -I/Applications/MAMP/bin/php/php5.5.3/include/php/Zend -I/Applications/MAMP/bin/php/php5.5.3/include/php/ext -I/Applications/MAMP/bin/php/php5.5.3/include/php/ext/date/lib checking for PHP extension directory... /Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212 checking for PHP installed headers prefix... /Applications/MAMP/bin/php/php5.5.3/include/php checking if debug is enabled... no checking if zts is enabled... no checking for re2c... no configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers. checking for gawk... gawk checking for gnupg support... yes, shared checking for gnupg files in default path... not found configure: error: Please reinstall the gpgme distribution ERROR: `/private/tmp/pear/install/gnupg/configure' failed
I have narrowed down my problem to getting gpgme installed, but I can't find the correct way to to do it anywhere.
I was facing the same problem, when using PHP 5.4.24, Mac OSX 10.9.3. I had to take the following steps to install gnupg (v1.3.3) using PECL.
Firstly, I installed the software packages
gnupg
andgpgme
using homebrew. Homebrew installs your packages in/usr/local
. This is import because the gnupg PECL module searches the following locations/usr/local/include /usr/include /usr/local/include/gpgme/ /usr/include/gpgme/
to detect an installation ofgpgpme
.Secondly, I tried to install gnupgp using PECL:
At time writing, the code of the PECL module contains two statement that prevents the module from being compiled and linked correctly. This resulted into the following error:
Thirdly, I had to resolve this error by editing and installing the PECL module by hand, based on Jim Jagielski's patch. These are the steps I completed:
Download the gnupg-pecl module:
Unpack the gnupg-pecl module:
Change directory:
Modify
php_gnupg.h
by changing line 49:zend_class_entry *gnupg_class_entry;
intostatic zend_class_entry *gnupg_class_entry;
Modify
php_gnupg_keylistiterator.h
by changing line 44:zend_class_entry *gnupg_keylistiterator_class_entry;
intostatic zend_class_entry *gnupg_keylistiterator_class_entry;
Prepare the PHP module for compiling, run:
Configure the module:
Build the module:
Install the module:
After compiling the module was installed in
/Users/USERNAME/tmp/pear/install/gnupg-1.3.3/module
. Because the PHP shared extensions are installed in/usr/lib/php/extensions/no-debug-non-zts-20100525/
, I copied the module:Add the extension to PHP. Therefore open
/etc/php.ini
and add the following lines:Test the extension, by executing the following line: