Compiling postgresql-server with USE="nls perl uuid" on amd64 MacOS 10.6.4. # locate uuid.h ... /gentoo/usr/include/apr-1/apr_uuid.h /gentoo/usr/include/ossp/uuid.h /gentoo/usr/include/postgresql-8.4/server/utils/uuid.h /usr/include/apr-1/apr_uuid.h /usr/include/uuid/uuid.h Uninstalling apr, as suggested by the message cited above, did not fix anything. I was left with: # find /gentoo -name uuid.h /gentoo/usr/include/ossp/uuid.h /gentoo/usr/include/postgresql-8.4/server/utils/uuid.h /gentoo/var/tmp/portage/dev-db/postgresql-server-8.4.2-r1/work/postgresql-8.4.2/src/include/utils/uuid.h Reproducible: Always Expected Results: checking ossp/uuid.h usability... no checking ossp/uuid.h presence... yes configure: WARNING: ossp/uuid.h: present but cannot be compiled configure: WARNING: ossp/uuid.h: check for missing prerequisite headers? configure: WARNING: ossp/uuid.h: see the Autoconf documentation configure: WARNING: ossp/uuid.h: section "Present But Cannot Be Compiled" configure: WARNING: ossp/uuid.h: proceeding with the compiler's result configure: WARNING: ## ---------------------------------------- ## configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## configure: WARNING: ## ---------------------------------------- ## checking for ossp/uuid.h... no checking uuid.h usability... no checking uuid.h presence... no checking for uuid.h... no configure: error: header file <ossp/uuid.h> or <uuid.h> is required for OSSP-UUID This problem has existed with previous versions of postgresql-server and of MacOS.
Sorry, I missed the most important part. From config.log: configure:8940: checking ossp/uuid.h usability configure:8940: x86_64-apple-darwin10-gcc -no-cpp-precomp -c -O2 -pipe -march=nocona -msse -mfpmath=sse -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-sta tement -Wendif-labels -fno-strict-aliasing -fwrapv -I/gentoo/usr/include/postgresql-8.4/ conftest.c >&5 In file included from conftest.c:92: /gentoo/usr/include/ossp/uuid.h:94: error: conflicting types for 'uuid_t' /usr/include/unistd.h:133: error: previous declaration of 'uuid_t' was here
And my econf line: * environment, line 5400: Called econf '--prefix=/gentoo/usr' '--build=x86_64-apple-darwin10' '--host=x86_64-apple-darwin10' '--mandir=/gentoo/usr/share/man' '--infodir=/gentoo/usr/share/info' '--datadir=/gentoo/usr/share' '--sysconfdir=/gentoo/etc' '--localstatedir=/gentoo/var/lib' '--prefix=/gentoo/usr/lib/postgresql-8.4' '--datadir=/gentoo/usr/share/postgresql-8.4' '--docdir=/gentoo/usr/share/doc/postgresql-8.4' '--sysconfdir=/gentoo/etc/postgresql-8.4' '--includedir=/gentoo/usr/include/postgresql-8.4' '--mandir=/gentoo/usr/share/postgresql-8.4/man' '--enable-depend' '--without-tcl' '--without-perl' '--without-python' '--with-readline' '--without-krb5' '--without-gssapi' '--enable-nls' '--without-pam' '--enable-integer-datetimes' '--with-openssl' '--disable-thread-safety' '--disable-thread-safety-force' '--with-zlib' '--without-ldap' 'build_alias=x86_64-apple-darwin10' 'host_alias=x86_64-apple-darwin10' 'CFLAGS=-O2 -pipe -march=nocona -msse -mfpmath=sse' 'LDFLAGS=' 'LIBS= -lintl' '--with-perl' '--without-python' '--without-tcl' '--without-libxml' '--without-libxslt' '--with-ossp-uuid' '--with-system-tzdata=/gentoo/usr/share/zoneinfo' '--with-includes=/gentoo/usr/include/postgresql-8.4/' '--with-libraries=/gentoo/usr/lib/postgresql-8.4/lib' '--enable-nls'
I think ossp is at fault here then
I went home and did this on my laptop, which is mostly similar to my work computer, and had no problems. Grrr.
can this still be reproduced somewhere after updates of postgresql?
postgresql-base-9.0beta2-r1 doesn't build because Makefile.darwin references src/backend/postgres, which doesn't exist. I'm hoping the problem will be fixed in beta3. I'll revisit this bug if/when I can get postrgresql-base to install.
This bug still exists when compiling dev-db/postgresql-server-9.0.3 against postgresql-base-9.0.3-r1. ossp-uuid upstream hasn't been updated in three years, FWIW. It turns out that this library is not necessary to support the uuid datatype, so I officially don't care that much anymore.
Does this issue persist?
uuid is built-in on OSX since 10.5 or so, hence postgres shouldn't depend on ossp-uuid unless ossp provides a different API. A quick look suggests it doesn't. I guess we just need a tweak in the dependencies of the ebuild for darwin.
Whoops, I just realized that we we're never CC'd on this bug so I missed the response, and just changed the status without looking all the way down. I'll work on the dep change.
(In reply to Fabian Groffen from comment #9) > uuid is built-in on OSX since 10.5 or so, hence postgres shouldn't depend on > ossp-uuid unless ossp provides a different API. A quick look suggests it > doesn't. I guess we just need a tweak in the dependencies of the ebuild for > darwin. It looks like it shouldn't be done in the ebuild, but that it should be done in the profile. `dev-db/postgresql uuid' would need to be added to both: prefix/sunos/solaris/package.use.mask prefix/darwin/package.use.mask Would Prefix like to handle that?
done, thanks