Page MenuHome GnuPG

libgpg-error upgrade fails during build phase (OS X 10.5, 10.6)
Closed, ResolvedPublic

Description

I'm the maintainer of libgpg-error and libgcrypt for MacPorts.

Last night I bumped libgpg-error to version 1.14. The builds for OS X 10.7 through 10.9
went smoothly, but users on 10.5 and 10.6 have reported a build failure. Log for 10.5
is attached.

Details

Version
1.15

Event Timeline

Oh well, the ssize_t problem. Including sys/types.h should help but we would
run into problems on Windows. We had the same problem in GPGME which we fixed
by adding sys/types.h to gpgme.h and use other hacks to make it work with windows.

Are you able to build gpgme?

After a bit of research I cam up with the same solution, i.e. adding

#include <sys/types.h>

to gpg-error.h.in. See attached diff file.

It has been tested and found to work and committed.

Thanks.

Right, this works for Unix. For Windows it won't work. Due to this report I
also found a more severe problem: fseeko uses off_t and thus we will run into
the usual problems that on Linux x86 we have two ABIs - one with a 64bit off_t
and one with a 32bit off_t. The same thing as with gpgme.

A fix would require an ABI chnage. However, due to the newness of the stream
interface, I think it is fine to view this as a simple bug and release 1.15 with
a fixed API - using a 64 bit type instead of off_t.

Thus please stay tuned for 1.15

I just release 1.15. Tested on Linux, Netbsd and AIX. Let me know if it works
for you.

Please do not distribute 1.14 anymore.

Unfortunately, version 1.15 breaks on the current version of OS X (10.9):

mv -f .deps/libgpg_error_la-posix-thread.Tpo .deps/libgpg_error_la-posix-thread.Plo
estream.c:3501:1: error: conflicting types for '_gpgrt_fseeko'
_gpgrt_fseeko (estream_t stream, gpgrt_off_t offset, int whence)
^
./gpgrt-int.h:108:5: note: previous declaration is here
int _gpgrt_fseeko (gpgrt_stream_t stream, off_t offset, int whence);

^

estream.c:3527:1: error: conflicting types for '_gpgrt_ftello'
_gpgrt_ftello (estream_t stream)
^
./gpgrt-int.h:110:7: note: previous declaration is here
off_t _gpgrt_ftello (gpgrt_stream_t stream);

^

2 errors generated.
make[3]: * [libgpg_error_la-estream.lo] Error 1
make[3]:
* Waiting for unfinished jobs....
mv -f .deps/libgpg_error_la-estream-printf.Tpo .deps/libgpg_error_la-estream-printf.Plo
make[3]: Leaving directory
`/opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_devel_libgpg-
error/libgpg-error/work/libgpg-error-1.15/src'
make[2]: * [all] Error 2
make[2]: Leaving directory
`/opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_devel_libgpg-
error/libgpg-error/work/libgpg-error-1.15/src'
make[1]:
* [all-recursive] Error 1
make[1]: Leaving directory
`/opt/local/var/macports/build/_Users_marius_Development_MacPorts_ports_devel_libgpg-
error/libgpg-error/work/libgpg-error-1.15'
make: *** [all] Error 2

See my comment on and fix on the mailing lst.

werner claimed this task.
werner removed a project: Restricted Project.