Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 271603 - dev-db/postgresql multiple package instances single slot
Summary: dev-db/postgresql multiple package instances single slot
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: PgSQL Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-05-29 05:48 UTC by John (EBo) David
Modified: 2010-06-23 12:02 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John (EBo) David 2009-05-29 05:48:51 UTC
After the latest portage sync, I got the following error message from "emerge -uDp --newuse world":

============= error message =============
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-db/libpq:4

  ('ebuild', '/', 'dev-db/libpq-8.0.15', 'merge') pulled in by
    =dev-db/libpq-8.0* required by ('installed', '/', 'virtual/postgresql-base-8.0', 'nomerge')
    ~dev-db/libpq-8.0.15 required by ('ebuild', '/', 'dev-db/postgresql-8.0.15', 'merge')
    (and 3 more)

  ('installed', '/', 'dev-db/libpq-8.2.7', 'nomerge') pulled in by
    =dev-db/libpq-8.2* required by ('installed', '/', 'x11-libs/qt-3.3.8b-r1', 'nomerge')
    =dev-db/libpq-8.2* required by ('installed', '/', 'gnome-extra/libgda-3.0.4', 'nomerge')
    =dev-db/libpq-8.2* required by ('installed', '/', 'dev-libs/apr-util-1.3.4', 'nomerge')
    (and 8 more)

dev-db/postgresql:0

  ('installed', '/', 'dev-db/postgresql-8.2.7', 'nomerge') pulled in by
    dev-db/postgresql required by world
    dev-db/postgresql required by ('installed', '/', 'net-misc/mico-2.3.13', 'nomerge')

  ('ebuild', '/', 'dev-db/postgresql-8.0.15', 'merge') pulled in by
    =dev-db/postgresql-8.0* required by ('installed', '/', 'sci-libs/gdal-1.6.0-r1', 'nomerge')
    =dev-db/postgresql-8.0* required by ('installed', '/', 'virtual/postgresql-server-8.0', 'nomerge')
    (and 2 more)


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously. If such a conflict exists in the
dependencies of two different packages, then those packages can not be
installed simultaneously.

For more information, see MASKED PACKAGES section in the emerge man page
or refer to the Gentoo Handbook.
============= end error message =============

I've tried various combination of masking/unmasking ebuilds to resolve this without success.  

Reproducible: Always

Steps to Reproduce:
1. run emerge --sync
2. emerge postgresql postgresql-server libpq libgda apr-util gdal
3. try running "emerge -uDp --newuse world"

Actual Results:  
the above slot conflict

Expected Results:  
actual build

Portage 2.1.6.13 (default/linux/x86/2008.0/desktop, gcc-4.3.3, glibc-2.9_p20081201-r2, 2.6.29-tuxonice-r2 i686)
=================================================================
System uname: Linux-2.6.29-tuxonice-r2-i686-Intel-R-_Pentium-R-_Dual_CPU_T2330_@_1.60GHz-with-glibc2.0
Timestamp of tree: Fri, 29 May 2009 03:45:02 +0000
ccache version 2.4 [enabled]
app-shells/bash:     3.2_p39
dev-java/java-config: 2.1.7
dev-lang/python:     2.4.6, 2.5.4-r2
dev-python/pycrypto: 2.0.1-r8
dev-util/ccache:     2.4-r7
dev-util/cmake:      2.6.4
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63
sys-devel/automake:  1.4_p6, 1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=i686 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /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=i686 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="ccache distlocks fixpackages metadata-transfer nostrip parallel-fetch protect-owned sandbox sfperms splitdebug strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo  http://gentoo.osuosl.org/ ftp://distro.ibiblio.org/pub/linux/distributions/gentoo/ http://distro.ibiblio.org/pub/linux/distributions/gentoo/ ftp://ftp.gtlib.gatech.edu/pub/gentoo http://www.gtlib.gatech.edu/pub/gentoo ftp://mirror.iawnet.sandia.gov/pub/gentoo/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://cudlug.cudenver.edu/gentoo/ http://gentoo.mirrors.pair.com/ ftp://gentoo.mirrors.pair.com/ http://gentoo.mirrors.tds.net/gentoo ftp://gentoo.mirrors.tds.net/gentoo http://gentoo.netnitco.net ftp://gentoo.netnitco.net/pub/mirrors/gentoo/source/ http://mirror.espri.arizona.edu/gentoo/ http://prometheus.cs.wmich.edu/gentoo http://mirror.mcs.anl.gov/pub/gentoo/ ftp://mirror.mcs.anl.gov/pub/gentoo/ http://gentoo.cites.uiuc.edu/pub/gentoo/ ftp://gentoo.cites.uiuc.edu/pub/gentoo/ http://mirror.fslutd.org/linux/distributions/gentoo/ ftp://mirror.fslutd.org/linux/distributions/gentoo/ nehet"
LDFLAGS="-Wl,-O1"
LINGUAS="en"
MAKEOPTS="-j4"
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/local/portage/layman/science /usr/local/portage/layman/pd-overlay /usr/local/portage/layman/sunrise /old_root/home/ebo/gtd/projects/computer/local_portage/ref/local-portage"
SYNC=" rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="3dnow X a52 aac acl acpi alsa arts audiofile bash-completion berkdb blas blender-game bluetooth branding bzip2 cairo cdr cli clisp cmucl cracklib crypt css cups curl cvs dbus divx dri dvd dvdr dvdread eds emacs emboss encode esd evo fam ffmpeg fftw firefox fits flac fortran ft2232 ftp gcl gd gdbm geos gif gimp git gmedia gnome gpg gpm graphviz gstreamer gtk hal hddtemp hdf5 iconv ieee1394 ipod ipv6 ipw3945 isdnlog jack java java6 javascript jpeg jpeg2k kde lapack laptop latex ldap libnotify lm_sensors lzf lzo mad midi mikmod mp3 mpeg mudflap ncurses netcdf nls nptl nptlonly nsplugin ogdi ogg openal opengl openmp osc pam parport pcre pdf perl png portaudio postgres ppds pppd presto python qt3 qt3support qt4 quicktime readline realmedia reflection sasl sbcl scanner sdl session snmp spell spl ssl startup-notification subversion svg sysfs tcl tcpd threads tiff tk truetype unicode usb vorbis wavpack win32codecs wmf wmp x86 xcb xine xinerama xml xorg xpm xprint xulrunner xv xvid 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="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" FOO2ZJS_DEVICES="hpp1006" INPUT_DEVICES="keyboard mouse synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="i810 v4l vesa"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 michael@smith-li.com 2009-05-29 12:16:11 UTC
This is confusing... libpq is slotted, but it blocks entire ranges of postgresql versions. Meanwhile, postgresql depends on the same version of libpq as itself, which means that postgresql and libpq must be stabilized in lock-step, or it will create problems like this...

That is if libpq really must be slotted, and postgresql is installed, portage must somehow magically resolve not to upgrade libpq. If the slotting isn't truly necessary, however, the blocking dependency can just be removed, since postgres can only have one version of libpq anyway.
Comment 2 David W Noon 2009-05-29 15:02:05 UTC
(In reply to comment #1)
> This is confusing... libpq is slotted, but it blocks entire ranges of
> postgresql versions. Meanwhile, postgresql depends on the same version of libpq
> as itself, which means that postgresql and libpq must be stabilized in
> lock-step, or it will create problems like this...

Since virtual/postgresql-base has libpq as a dependency with versions matching, they must be upgraded in concert.

Moreover, it would simplify matters if the slotting of libpq were identical to that of the other PostgreSQL packages. As things stand, stable PostgreSQl packages are in slots 8.0 and 8.1, while stable libq is in slot 4 (even though it is version 8.0.15).
Comment 3 David W Noon 2009-06-19 23:19:27 UTC
Has there been any movement on this issue?

I ask because it is holding up the upgrade to slotted PostgreSQL.
Comment 4 John (EBo) David 2009-08-15 13:54:46 UTC
sorry for the delayed reply -- seems I forgot to CC myself on this one...

I just removed the package.keywords hack around this and find that virtual/postgresql-{base,server}-8.1 are now marked stable for 8.1.  I am not sure what this means for other architectures, but it now works for me out of the box.  I also have not tested it with 8.2 or 8.3, but it looks like it is now resolved.

Marking as fixed.
Comment 5 David W Noon 2009-08-15 23:10:43 UTC
(In reply to comment #4)
> I just removed the package.keywords hack around this and find that
> virtual/postgresql-{base,server}-8.1 are now marked stable for 8.1.  I am not
> sure what this means for other architectures, but it now works for me out of
> the box.  I also have not tested it with 8.2 or 8.3, but it looks like it is
> now resolved.

It certainly is *not* fixed.

It is still not possible to have both the 8.0 and 8.1 versions of libpq installed cocurrently. As a result, I cannot have both 8.0 and 8.1 versions of the servers on my network and access both from any machine.

I re-state what I said above: the slotting of libpq *must* be in concert with the slotting of postgresql-server.

As things stand, you can install 8.1 on its own, without 8.0, and it will work. But having multiple slotted releases working is still not possible.
Comment 6 John (EBo) David 2009-08-16 01:51:06 UTC
Should we reopen this bug then?  My original issue has been resolved, but I see that the libpq issues has not.  
Comment 7 David W Noon 2009-08-17 15:53:46 UTC
(In reply to comment #6)
> Should we reopen this bug then?  My original issue has been resolved, but I see
> that the libpq issues has not.  

Given that the root problem remains unfixed, I think reopening would be a good idea.
Comment 8 John (EBo) David 2009-08-17 16:05:25 UTC
bug reopened.  Sorry for the consternation.  I really thought the issue was resolved.

Happy hunting.
Comment 9 Patrick Lauer gentoo-dev 2009-10-09 17:56:47 UTC
Short version, as soon as postgresql-base postgresql-server are stable libpq and postgresql will be masked. And this issue will resolve itself then :)

Sorry for the mess, I have no idea how and why this confusing keywording happened.
Comment 10 John (EBo) David 2009-10-09 18:15:16 UTC
Not a big problem for me.  Just let me know if you need me to follow up on anything or remark the bug as resolved/fixed/etc.

  EBo --
Comment 11 Patrick Lauer gentoo-dev 2010-06-23 12:02:35 UTC
libpq and dev-db/postgresql are history. Bug is now impossible :)

Closing.