Attempts to updade from PostgreSQL 9.0 beta 1 to beta 2 fail. It complains about conflicting types for unsetenv. There were no new options added to make it differ from beta 1. Reproducible: Always Steps to Reproduce: 1. eix-update 2. edit /etc/portage/package.unmask and add the following: =dev-db/postgresql-server-9.0_beta2 =dev-db/postgresql-base-9.0_beta2 =dev-db/postgresql-docs-9.0_beta2 3. emerge --update dev-db/postgresql-server Actual Results: The following output is produced and it isn't installed: * CPV: dev-db/postgresql-base-9.0_beta2 * REPO: gentoo * USE: amd64 doc elibc_glibc kerberos kernel_linux ldap multilib nls pam readline ssl threads userland_GNU zlib >>> Unpacking source... >>> Unpacking postgresql-9.0beta2.tar.bz2 to /var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work >>> Source unpacked in /var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work >>> Preparing source in /var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work/postgresql-9.0beta2 ... * Applying postgresql-9.0-common.patch ... [ ok ] * Applying postgresql-9.0-base.2.patch ... [ ok ] * Applying postgresql-base-8.4-9.0-heimdal_strlcpy.patch ... [ ok ] * Running autoconf ... [ ok ] >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work/postgresql-9.0beta2 ... * econf: updating postgresql-9.0beta2/config/config.guess with /usr/share/gnuconfig/config.guess * econf: updating postgresql-9.0beta2/config/config.sub with /usr/share/gnuconfig/config.sub ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64/postgresql-9.0/lib64 --prefix=/usr/lib64/postgresql-9.0 --datadir=/usr/share/postgresql-9.0 --docdir=/usr/share/doc/postgresql-9.0 --sysconfdir=/etc/postgresql-9.0 --includedir=/usr/include/postgresql-9.0 --mandir=/usr/share/postgresql-9.0/man --enable-depend --without-tcl --without-perl --without-python --with-readline --with-krb5 --with-gssapi --enable-nls --with-pam --enable-integer-datetimes --with-openssl --enable-thread-safety --with-zlib --with-ldap checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking which template to use... linux checking whether to build with 64-bit integer date/time support... yes checking whether NLS is wanted... yes checking for default port number... 5432 checking for block size... 8kB checking for segment size... 1GB checking for WAL block size... 8kB checking for WAL segment size... 16MB checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc 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 x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking if x86_64-pc-linux-gnu-gcc supports -Wdeclaration-after-statement... yes checking if x86_64-pc-linux-gnu-gcc supports -Wendif-labels... yes checking if x86_64-pc-linux-gnu-gcc supports -fno-strict-aliasing... yes checking if x86_64-pc-linux-gnu-gcc supports -fwrapv... yes checking whether the C compiler still works... yes checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking allow thread-safe client libraries... yes checking whether to build with Tcl... no checking whether to build Perl modules... no checking whether to build Python modules... no checking whether to build with GSSAPI support... yes checking whether to build with Kerberos 5 support... yes checking whether to build with PAM support... yes checking whether to build with LDAP support... yes ...skipping... fno-strict-aliasing -fwrapv configure: using CPPFLAGS= -D_GNU_SOURCE configure: using LDFLAGS=-Wl,-O1 -Wl,--as-needed configure: creating ./config.status config.status: creating GNUmakefile config.status: creating src/Makefile.global config.status: creating src/include/pg_config.h config.status: creating src/interfaces/ecpg/include/ecpg_config.h config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h config.status: linking src/include/port/linux.h to src/include/pg_config_os.h config.status: linking src/makefiles/Makefile.linux to src/Makefile.port >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work/postgresql-9.0beta2 ... make -j5 make -C src all make[1]: Entering directory `/var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work/postgresql-9.0beta2/src' make -C port all make[2]: Entering directory `/var/tmp/portage/dev-db/postgresql-base-9.0_beta2/work/postgresql-9.0beta2/src/port' x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE -c -o getrusage.o getrusage.c -MMD -MP -MF .deps/getrusage.Po x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE -c -o crypt.o crypt.c -MMD -MP -MF .deps/crypt.Po x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE -c -o erand48.o erand48.c -MMD -MP -MF .deps/erand48.Po x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE -c -o getopt.o getopt.c -MMD -MP -MF .deps/getopt.Po x86_64-pc-linux-gnu-gcc -march=core2 -O2 -pipe -fomit-frame-pointer -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing -fwrapv -I../../src/port -DFRONTEND -I../../src/include -D_GNU_SOURCE -c -o inet_aton.o inet_aton.c -MMD -MP -MF .deps/inet_aton.Po In file included from ../../src/include/c.h:851, from crypt.c:44: ../../src/include/port.h:392: error: expected identifier or '(' before '__extension__' ../../src/include/port.h:408: error: conflicting types for 'unsetenv' /usr/include/stdlib.h:588: note: previous declaration of 'unsetenv' was here crypt.c:237: error: expected specifier-qualifier-list before '__int64' In file included from ../../src/include/c.h:851, from getopt.c:33: ../../src/include/port.h:392: error: expected identifier or '(' before '__extension__' ../../src/include/port.h:408: error: conflicting types for 'unsetenv' /usr/include/stdlib.h:588: note: previous declaration of 'unsetenv' was here In file included from ../../src/include/c.h:851, from inet_aton.c:41: ../../src/include/port.h:392: error: expected identifier or '(' before '__extension__'In file included from ../../src/include/c.h:851, from getrusage.c:16: ../../src/include/port.h:392: error: expected identifier or '(' before '__extension__' ../../src/include/port.h:408: error: conflicting types for 'unsetenv' /usr/include/stdlib.h:588: note: previous declaration of 'unsetenv' was here ../../src/include/port.h:408: error: conflicting types for 'unsetenv' /usr/include/stdlib.h:588: note: previous declaration of 'unsetenv' was here make[2]: *** [inet_aton.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [getopt.o] Error 1 getrusage.c: In function 'getrusage': Expected Results: Installed PostgreSQL 9.0 beta 2 I had PostgreSQL 9.0 beta 1 installed beforehand.
Though this is a different ebuild, the problem is the same: Bug 322539
Hello Thom. can you please provide the complete build.log and environment files mentioned at the end of the emerge? And a little hint for me where to find this ebuild, I don't see it at http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-db/postgresql/ . Michael
You can find it at: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-db/postgresql-server/ I've looked for the build log in /var/tmp/portage/dev-db/ but it only shows the ones for PostgreSQL 8.4.4 in there :( Is there somewhere else I can look? Also note that I've since disabled kerberos and re-emerged it successfully as a result.
I can confirm the issue.
Yes, 9.0 Beta 2 is in the tree already. The problem would be the Heimdal patch biting here as well. The output is identical, or nearly so, to the 8.4.4 output. The work around for the moment is to disable the 'kerberos' USE flag or edit the ebuild and comment out the line containing the Heimdal patch.
Fixed in -r2. Thanks for flying Air Gentoo!