After updating PostgreSQL, Dovecot needed to be rebuilt, but it fails to find the necessary bits. I've tried this with dovecot 1.2.6 (x86 stable) and 1.2.9. Reproducible: Always Steps to Reproduce: emerge -1 =postgresql-base-8.4.2 emerge -1 =dovecot-1.2.6 Actual Results: ... checking whether GSSAPI supports SPNEGO... yes checking for pg_config... YES checking for PQconnectdb in -lpq... yes checking for PQescapeStringConn in -lpq... yes checking libpq-fe.h usability... no checking libpq-fe.h presence... no checking for libpq-fe.h... no configure: error: Can't build with PostgreSQL support: libpq-fe.h not found The configure failed initially like so: checking for pg_config... NO checking for PQconnectdb in -lpq... no configure: error: Can't build with PostgreSQL support: libpq not found `eselect postgresql update` fixed that. emerge --info: Portage 2.2_rc61 (default/linux/x86/10.0/desktop, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 i686) ================================================================= System uname: Linux-2.6.31-gentoo-r6-i686-Intel-R-_Pentium-R-_M_processor_1.73GHz-with-gentoo-2.0.1 Timestamp of tree: Tue, 12 Jan 2010 21:15:03 +0000 app-shells/bash: 4.0_p35 dev-java/java-config: 2.1.9-r2 dev-lang/python: 2.6.4, 3.1.1-r1 dev-python/pycrypto: 2.1.0_beta1 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.0 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.63-r1 sys-devel/automake: 1.4_p6, 1.9.6-r2, 1.10.2 sys-devel/binutils: 2.19.1-r1 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b virtual/os-headers: 2.6.28-r1 ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA PUEL" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium-m -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -march=pentium-m -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS=" ftp://gentoo.chem.wisc.edu/gentoo/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo/ ftp://ftp.ndlug.nd.edu/pub/gentoo/ ftp://lug.mtu.edu/gentoo/ ftp://gentoo.cites.uiuc.edu/pub/gentoo/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="en en_US" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/perl-experimental /usr/portage/local/layman/java-overlay /usr/local/portage" SYNC="rsync://rsync21.us.gentoo.org/gentoo-portage" USE="X a52 aac aalib acl acpi aim alsa apache2 apm audiofile bash-completion berkdb blas branding bzip2 cairo caps cdda cdparanoia cdr cli consolekit cracklib crypt cscope css cups cxx dbus dga dhcp directfb divx4linux dri dts dv dvd dvdr eds emboss encode esd evo expat fam fame fbcon ffmpeg fftw firefox flac font-server fontconfig fortran ftp gcj gd geoip gif ginac glut gmp gpm gs gstreamer gtk gtk2 hal howl iconv icq icu ieee1394 imagemagick imap imlib ipod ipv6 java java6 javascript jce joystick jpeg jpeg2k kde kerberos lame lapack latex libcaca libedit libnotify lzo mad maildir matroska mikmod mime mmx mmx2 mng modules mp3 mp4 mpeg mpi mplayer msn mtp mudflap musepack musicbrainz ncurses nfs nls nntp nptl nptlonly nsplugin offensive ogg oggvorbis openal opengl openmp pam pch pcmcia pcre pdf perl plasma plotutils png policykit posix postgres ppds pppd prelude pulseaudio python qt3support qt4 quicktime rar readline reflection rss rtc ruby samba sasl sdl session slang sockets socks5 sox speex spell spl sse sse2 ssl startup-notification subtitles subversion svg sysfs syslog sysvinc taglib tcpd tetex tga theora threads thunar tiff truetype udev unicode usb v41 vcd vim-syntax vim-with-x vorbis wavpack wifi win32codecs wxwidgets x264 x86 xcb xcomposite xft xine xinetd xml xorg xosd xpm xprint xscreensaver xulrunner xv xvid yahoo zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="dav dir mime mime_magic userdir" ELIBC="glibc" INPUT_DEVICES="evdev joystick keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nv nvidia vesa" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Created attachment 216309 [details] config.log Probably not needed, but suggested by emerge.
I'm also seeing similar problems when rebuilding x11-libs/qt-sql-4.5.3: >>> Configuring source in /var/tmp/portage/x11-libs/qt-sql-4.5.3/work/qt-x11-opensource-src-4.5.3 ... ./configure -pch -release -no-separate-debug-info -arch i386 -reduce-relocations -platform linux-g++ -stl -verbose -largefile -confirm-license -prefix /usr -bindir /usr/bin -libdir /usr/lib/qt4 -datadir /usr/share/qt4 -docdir /usr/share/doc/qt-4.5.3 -headerdir /usr/include/qt4 -plugindir /usr/lib/qt4/plugins -sysconfdir /etc/qt4 -translationdir /usr/share/qt4/translations -examplesdir /usr/share/qt4/examples -demosdir /usr/share/qt4/demos -silent -fast -opensource -no-exceptions -nomake examples -nomake demos -no-sql-sqlite2 -plugin-sql-mysql -I/usr/include/mysql -L/usr/lib/mysql -plugin-sql-psql -I/usr/include/postgresql/pgsql -plugin-sql-sqlite -system-sqlite -no-sql-odbc -qt3support -iconv -no-xkb -no-fontconfig -no-xrender -no-xrandr -no-xfixes -no-xcursor -no-xinerama -no-xshape -no-sm -no-opengl -no-nas-sound -no-dbus -no-cups -no-nis -no-gif -no-libpng -no-libmng -no-libjpeg -no-openssl -system-zlib -no-webkit -no-phonon -no-xmlpatterns -no-freetype -no-libtiff -no-accessibility -no-fontconfig -no-glib -no-opengl -no-svg -no-gtkstyle -I/usr/include/freetype2 Determining system architecture... (Linux:2.6.31-gentoo-r6:i686) 32-bit Intel 80x86 (i386) 'i386' is supported System architecture: 'i386' Symbol visibility control enabled. Symbolic function binding enabled. This is the Qt/X11 Open Source Edition. You are licensed to use this software under the terms of the Lesser GNU General Public License (LGPL) versions 2.1. You are also licensed to use this software under the terms of the GNU General Public License (GPL) versions 3. You have already accepted the terms of the license. floatmath auto-detection... () compiling floatmath.cpp floatmath.cpp:44: warning: unused parameter ‘argc’ floatmath.cpp:44: warning: unused parameter ‘argv’ linking floatmath floatmath enabled. mmx auto-detection... () compiling mmx.cpp linking mmx mmx enabled. 3dnow auto-detection... () compiling 3dnow.cpp linking 3dnow 3dnow enabled. sse auto-detection... () compiling sse.cpp linking sse sse enabled. sse2 auto-detection... () compiling sse2.cpp linking sse2 sse2 enabled. DB2 auto-detection... () compiling db2.cpp db2.cpp:42:20: error: sqlcli.h: No such file or directory db2.cpp:43:21: error: sqlcli1.h: No such file or directory make: *** [db2.o] Error 1 DB2 disabled. InterBase auto-detection... () compiling ibase.cpp ibase.cpp:42:19: error: ibase.h: No such file or directory make: *** [ibase.o] Error 1 InterBase disabled. MySQL (thread-safe) auto-detection... () compiling ../mysql/mysql.cpp linking mysql_r MySQL (thread-safe) enabled. OCI auto-detection... () compiling oci.cpp oci.cpp:42:17: error: oci.h: No such file or directory make: *** [oci.o] Error 1 OCI disabled. PostgreSQL auto-detection... () compiling psql.cpp psql.cpp:42:22: error: libpq-fe.h: No such file or directory psql.cpp: In function ‘int main(int, char**)’: psql.cpp:46: error: ‘PQescapeBytea’ was not declared in this scope psql.cpp:47: error: ‘PQunescapeBytea’ was not declared in this scope make: *** [psql.o] Error 1 PostgreSQL disabled. PostgreSQL support cannot be enabled due to functionality tests! Turn on verbose messaging (-v) to ./configure to see the final report. If you believe this message is in error you may use the continue switch (-continue) to ./configure to continue. There are more errors here, but I suppose that's just optional feature detection.
what does "eselect postgresql list" say?
$ eselect postgresql list Available postgresql installations 8.4 <-* base-8.4.2-r1 I just noticed that I don't have dev-db/libpq installed. Nothing's pulling it in, and my emerge.log shows it being removed during one of my `emerge -DNauv world` updates: 1262901246: === (4 of 5) Post-Build Cleaning (dev-db/postgresql-base-8.4.2-r1::/usr/portage/dev-db/postgresql-base/postgresql-base-8.4.2-r1.ebuild) 1262901246: ::: completed emerge (4 of 5) dev-db/postgresql-base-8.4.2-r1 to / 1262901246: === Unmerging... (dev-db/libpq-8.1.11) 1262901256: >>> unmerge success: dev-db/libpq-8.1.11 1262901256: >>> emerge (5 of 5) virtual/postgresql-base-8.4 to / 1262901258: === (5 of 5) Cleaning (virtual/postgresql-base-8.4::/usr/portage/virtual/postgresql-base/postgresql-base-8.4.ebuild)
What does 'ls -l /usr/include/postgresql' print ? That header should be there. dev-db/postgresql-base in the new layout is what dev-db/libpq was.
$ ls -l /usr/include/postgresql lrwxrwxrwx 1 root root 27 2010-01-07 15:53 /usr/include/postgresql -> /usr/include/postgresql-8.4/ $ ls -l /usr/include/postgresql/ # <-- trailing slash total 56 -rw-r--r-- 1 root root 623 2010-01-07 15:52 ecpg_config.h -rw-r--r-- 1 root root 2772 2010-01-07 15:52 ecpg_informix.h -rw-r--r-- 1 root root 2600 2010-01-07 15:52 ecpgerrno.h -rw-r--r-- 1 root root 2506 2010-01-07 15:52 ecpglib.h -rw-r--r-- 1 root root 2560 2010-01-07 15:52 ecpgtype.h drwxr-xr-x 3 root root 17 2010-01-07 15:53 informix/ -rw-r--r-- 1 root root 2270 2010-01-07 15:52 libpq-events.h -rw-r--r-- 1 root root 814 2010-01-07 15:52 pgtypes_date.h -rw-r--r-- 1 root root 588 2010-01-07 15:52 pgtypes_error.h -rw-r--r-- 1 root root 1485 2010-01-07 15:52 pgtypes_interval.h -rw-r--r-- 1 root root 2306 2010-01-07 15:52 pgtypes_numeric.h -rw-r--r-- 1 root root 1057 2010-01-07 15:52 pgtypes_timestamp.h drwxr-xr-x 2 root root 133 2010-01-07 15:53 postmaster/ drwxr-xr-x 17 root root 4096 2010-01-07 15:54 server/ -rw-r--r-- 1 root root 834 2010-01-07 15:52 sql3types.h -rw-r--r-- 1 root root 1267 2010-01-07 15:52 sqlca.h
I rebuilt postgresql-base and the header is back... what
postgresql-base installed headers to /usr/include/postgresql-8.4 and a link is made (postgresql => postgresql-8.4) while libpq installed its headers to /usr/include/postgresql/libpq-4. My guess is that libpq removed some files f in F, where realpath(f) is owned by postgresql-base.
Perhaps ebuild of postgresql-base should be modified to unmerge libpq before merging postgresql-base. That is, if this is not a portage bug.
I had another problem. I use 8.3, got the upgrade to 8.4 and masked it because I did not want to migrate my databases at this moment. After the downgrade to 8.3 everything was fine until this qt-sql update, which revealed a stale link /usr/include/postgresql -> /usr/include/postgresql-8.4/ . Maybe the ebuild should eselect the installed version, iff theres only one slot installed in pkg_setup. There's no sense in diverting to a not installed version.
+ 02 Jun 2010; Patrick Lauer <patrick@gentoo.org> + +postgresql-base-7.4.29-r1.ebuild, +postgresql-base-8.0.25-r1.ebuild, + +postgresql-base-8.1.21-r1.ebuild, +postgresql-base-8.2.17-r1.ebuild, + +postgresql-base-8.3.11-r1.ebuild, + +files/postgresql-base-8.4-9.0-heimdal_strlcpy.patch, + +postgresql-base-8.4.4-r1.ebuild, +postgresql-base-9.0_beta1-r1.ebuild: + Fixes for #313765, #251046, #294462, #300793, #274836, #296714, #238817, + #278228, #263096, #246397, #285953. Thanks to Aaron Swenson for collecting + the fixes and testing.