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