gpgme android build fails looking for /usr/local/lib/libgpg-error.la
Hans-Christoph Steiner
hans at at.or.at
Sat Mar 10 00:44:22 CET 2012
On Mar 9, 2012, at 2:04 PM, Hans-Christoph Steiner wrote:
>
> On Mar 9, 2012, at 1:23 PM, Marcus Brinkmann wrote:
>
>> On 03/01/2012 02:29 AM, Hans-Christoph Steiner wrote:
>>>
>>> So gpgme is building fine on Android using the attached patch, it just doesn't finish linking to libgpg-error because the build system is convinced that its in /usr/local/lib, where it is definitely not. I tried to trace it a bit, but no luck yet. Any ideas where this is being set?
>>>
>>> To see how I'm building gpgme, check out the gpgme-build target in this Makefile, that will show the ./configure flags, etc.
>>> https://github.com/guardianproject/gnupg-for-android/blob/master/external/Makefile
>>
>> It seems the libgpg-error configure is missing the --prefix=$(prefix) on the configure command line.
>>
>> That is necessary to set the path in gpg-error-config which is queried by gpgme's configure to locate gpg-error.
>>
>> I made a pull request on github (first time for me):
>>
>> https://github.com/guardianproject/gnupg-for-android/pull/2
>
> Awesome, thank you! I merged it and am running a whole new build now.
Here's the next step:
- could you update config.sub and config.guess to the latest version? That's required for Android support, i.e. the host arm-linux-androidabi, otherwise ./configure dies like this:
checking host system type... Invalid configuration `arm-linux-androideabi':
system `androideabi' not recognized
configure: error: /bin/bash ./config.sub arm-linux-androideabi failed
- I needed to apply the attached simple patch to get things building since Android does not have SYS_gettid but does define __linux. It seems to be something in _GNU_SOURCE, so __gnu_linux__ seems an appropriate test.
- the *-config scripts don't seem to work when cross-compiling, since they use prefix= but they don't include DESTDIR, i.e. they assume that the libs are all installed into their final destination. Or am I missing something? I'm using ./configure --with-gpg-error-prefix=$(LOCAL) ($LOCAL is the full path, not just the prefix) but that doesn't seem to help because I get:
/bin/sed: can't read /data/data/info.guardianproject.gpg/app_opt/lib/libgpg-error.la: No such file or directory
libtool: link: `/data/data/info.guardianproject.gpg/app_opt/lib/libgpg-error.la' is not a valid libtool archive
I've also tried using sed to replace the prefix= line in each *-config script to the full path, and it also gives a similar error. But I found that merely running "make -C gpgme" works...
.hc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gpgme-android-fixes.patch
Type: application/octet-stream
Size: 304 bytes
Desc: not available
URL: </pipermail/attachments/20120309/48ab6c4a/attachment.obj>
-------------- next part --------------
----------------------------------------------------------------------------
Access to computers should be unlimited and total. - the hacker ethic
More information about the Gnupg-devel
mailing list