Steps to reproduce: 1. try to compile sudoku-savant 2. configure fails because pkgconfig is not installed 3. zypper install pkgconfig 4. configure works 5. try to remove pkgconfig through rpm or zypper - fails 6. install and remove man - ok. uname -a Linux sugarbay 3.4.4-yocto-standard #1 SMP PREEMPT Wed Aug 1 13:30:19 PDT 2012 x86_64 GNU/Linux cat /etc/*version 201208011313 core-image-sato-sdk-sugarbay wget http://downloads.sourceforge.net/project/sudoku-savant/sudoku-savant/sudoku-savant-1.3/sudoku-savant-1.3.tar.bz2 sudoku-savant-1.3.ta 100% |*******************************| 230k 0:00:00 ETA root@sugarbay:~# tar xjvf sudoku-savant-1.3.tar.bz2 cd sudoku-savant-1.3 root@sugarbay:~/sudoku-savant-1.3# ./configure checking where the gettext function comes from... libc checking for pkg-config... no checking for PACKAGE... configure: error: in `/home/root/sudoku-savant-1.3': configure: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables PACKAGE_CFLAGS and PACKAGE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see <http://pkg-config.freedesktop.org/>. See `config.log' for more details. root@sugarbay:~/sudoku-savant-1.3# rpm -qa | grep pkgconfig pkgconfig-dev-0.25-r4.x86_64 # zypper addrepo http://autobuilder.yoctoproject.org/pub/nightly/20120801-2/rpm/ repo1 Adding repository 'repo1' [done] Repository 'repo1' successfully added Enabled: Yes Autorefresh: No URI: http://autobuilder.yoctoproject.org/pub/nightly/20120801-2/rpm/ root@sugarbay:~/sudoku-savant-1.3# zypper install pkgconfig File 'repomd.xml' from repository 'repo1' is unsigned, continue? [yes/no] (no): yes Building repository 'repo1' cache [done] Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: pkgconfig The following package is going to be downgraded: pkgconfig-dev 1 package to downgrade, 1 new. Overall download size: 27.0 KiB. After the operation, additional 45.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package pkgconfig-0.25-r3.x86_64 (1/2), 24.0 KiB (45.0 KiB unpacked) Retrieving: pkgconfig-0.25-r3.x86_64.rpm [done] Retrieving package pkgconfig-dev-0.25-r3.x86_64 (2/2), 3.0 KiB (0 B unpacked) Retrieving: pkgconfig-dev-0.25-r3.x86_64.rpm [done] Installing: pkgconfig-0.25-r3 [done] Installing: pkgconfig-dev-0.25-r3 [done] root@sugarbay:~/sudoku-savant-1.3# ./configure configure: creating ./config.status config.status: creating Makefile config.status: creating src/Makefile config.status: creating po/Makefile.in config.status: creating sudoku-savant.desktop config.status: creating config.h config.status: executing depfiles commands config.status: executing po-directories commands config.status: creating po/POTFILES config.status: creating po/Makefile root@sugarbay:~/sudoku-savant-1.3# rpm -e pkgconfig error: db3cpget:db3.c:1445: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value rpm: rpmdb.c:2323: rpmmiNext: Assertion `0' failed. Aborted root@sugarbay:~/sudoku-savant-1.3# rpm -e pkgconfig-dev BDB2053 Freeing read locks for locker 0x166: 3071/140208291526464 BDB2053 Freeing read locks for locker 0x167: 3071/140208291526464 BDB2053 Freeing read locks for locker 0x16b: 3071/140208291526464 BDB2053 Freeing read locks for locker 0x16c: 3071/140208291526464 BDB2053 Freeing read locks for locker 0x16d: 3071/140208291526464 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 BDB2017 Freeing mutex for process: 3071/0 error: db3cpget:db3.c:1445: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value rpm: rpmdb.c:2323: rpmmiNext: Assertion `0' failed. Aborted root@sugarbay:~/sudoku-savant-1.3# rpm -e pkgconfig BDB2053 Freeing read locks for locker 0x170: 3072/139779614820160 BDB2053 Freeing read locks for locker 0x171: 3072/139779614820160 BDB2053 Freeing read locks for locker 0x175: 3072/139779614820160 BDB2053 Freeing read locks for locker 0x176: 3072/139779614820160 BDB2053 Freeing read locks for locker 0x177: 3072/139779614820160 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 BDB2017 Freeing mutex for process: 3072/0 error: db3cpget:db3.c:1445: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value rpm: rpmdb.c:2323: rpmmiNext: Assertion `0' failed. Aborted root@sugarbay:~/sudoku-savant-1.3# zypper remove pkgconfig BDB2053 Freeing read locks for locker 0x17a: 3074/139756446533440 BDB2053 Freeing read locks for locker 0x17b: 3074/139756446533440 BDB2053 Freeing read locks for locker 0x17f: 3074/139756446533440 BDB2053 Freeing read locks for locker 0x180: 3074/139756446533440 BDB2053 Freeing read locks for locker 0x181: 3074/139756446533440 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 BDB2017 Freeing mutex for process: 3074/0 Loading repository data... Reading installed packages... Resolving package dependencies... The following packages are going to be REMOVED: acl-dev acpid-dev alsa-lib-dev alsa-utils-dev attr-dev augeas-dev autoconf-dev automake-dev avahi-dev base-passwd-dev bash-dev beecrypt-dev bigreqsproto-dev binutils-dev bison-dev blktool-dev blktrace-dev bluez-hcidump-dev bluez4-dev busybox-dev bzip2-dev calibrateproto-dev ccache-dev clutter-box2d-dev cogl-dev compositeproto-dev connman-dev connman-gnome-dev consolekit-dev contacts-dev coreutils-dev curl-dev damageproto-dev dates-dev db-dev dbus-dev dbus-wait-dev diffstat-dev diffutils-dev distcc-dev dmxproto-dev dri2proto-dev e2fsprogs-dev eee-acpi-scripts-dev elfutils-dev encodings-dev evieext-dev evolution-data-server-dev ffmpeg-dev file-dev findutils-dev fixesproto-dev flac-dev flex-dev font-alias-dev font-util-dev fontcacheproto-dev fontsproto-dev fotowall-dev fstests-dev gaku-dev gawk-dev gcc-dev gconf-dev gdb-dev gdk-pixbuf-dev gettext-dev glproto-dev gnome-common-dev gnome-doc-utils-dev gnome-keyring-dev gnupg-dev grep-dev grub-dev gst-ffmpeg-dev gst-plugins-base-alsa-dev gst-plugins-base-audioconvert-dev gst-plugins-base-audioresample-dev gst-plugins-base-decodebin-dev gst-plugins-base-decodebin2-dev gst-plugins-base-dev gst-plugins-base-ffmpegcolorspace-dev gst-plugins-base-gio-dev gst-plugins-base-ogg-dev gst-plugins-base-playbin-dev gst-plugins-base-theora-dev gst-plugins-base-typefindfunctions-dev gst-plugins-base-videoscale-dev gst-plugins-base-volume-dev gst-plugins-base-vorbis-dev gst-plugins-base-ximagesink-dev gst-plugins-good-autodetect-dev gst-plugins-good-avi-dev gst-plugins-good-dev gst-plugins-good-flac-dev gst-plugins-good-id3demux-dev gst-plugins-good-isomp4-dev gst-plugins-good-matroska-dev gst-plugins-good-souphttpsrc-dev gst-plugins-good-wavparse-dev gstreamer-dev gstreamer-vaapi-dev gthumb-dev gtk+-dev gtk-sato-engine-dev gzip-dev hdparm-dev hicolor-icon-theme-dev hostap-utils-dev icu-dev inputproto-dev intltool-dev iptables-dev kbd-dev kbproto-dev kexec-tools-dev keymaps-dev kmod-dev latencytop-dev leafpad-dev less-dev liba52-dev libacl-dev libacpi-dev libassuan-dev libatk-1.0-dev libatomics-ops-dev libattr-dev libaugeas-dev libavahi-ui-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libblkid-dev libboost-chrono-dev libbz2-dev libc6-dev libcairo-dev libcamel-dev libcap-dev libcheck-dev libclutter-glx-1.0-dev libcroco-dev libcurl-dev libdaemon-dev libdbus-glib-1-dev libdmx-dev libdrm-dev libebook-1.2-dev libecal-1.2-dev libedata-book-1.2-dev libedata-cal-1.2-dev libedataserver-1.2-dev libexpat-dev libfakekey-dev libffi-dev libfm-dev libfontconfig-dev libfontenc-dev libfreetype-dev libgcc-s-dev libgcrypt-dev libgdbm-dev libgl-dev libglade-2.0-dev libglew-dev libglib-2.0-dev libglu-dev libgmp-dev libgnome-keyring-dev libgnutls-dev libgpg-error-dev libical-dev libice-dev libid3tag-dev libjpeg-dev libjson-dev libjson-glib-1.0-dev libksba-dev libltdl-dev liblzma-dev liblzo2-dev libmb-dev libmenu-cache-dev libmpc-dev libmpfr-dev libnewt-dev libnl-dev libnss-mdns-dev libogg-dev liboil-dev libopkg-dev libossp-uuid-dev libowl-av-dev libowl-dev libpcap-dev libpci-dev libpciaccess-dev libpcre-dev libphonon-dev libpixman-1-dev libpng-dev libpopt-dev libpostproc-dev libproxy-dev libpth-dev libpthread-stubs-dev libqt3support-dev libqtclucene-dev libqtcore-dev libqtdbus-dev libqtdeclarative-dev libqtdesigner-dev libqtdesignercomponents-dev libqtgui-dev libqthelp-dev libqtmultimedia-dev libqtnetwork-dev libqtopengl-dev libqtscript-dev libqtscripttools-dev libqtsql-dev libqtsvg-dev libqttest-dev libqtuitools4-dev libqtwebkit-dev libqtxml-dev libqtxmlpatterns-dev libreadline-dev librsvg-2-dev libsamplerate0-dev libsdl-1.2-dev libsm-dev libsndfile-dev libsoup-2.4-dev libsqlite3-dev libstartup-notification-1-dev libstdc++-dev libswscale-dev libsysfs-dev libtasn1-dev libtheora-dev libtiff-dev libts-1.0-dev libudev-dev libunique-1.0-dev liburcu-dev libusb-0.1-dev libusb-1.0-dev libuuid-dev libva-dev libva-glx-dev libva-intel-driver-dev libva-x11-dev libvorbis-dev libvorbisidec-dev libwrap-dev libx11-dev libxau-dev libxcalibrate-dev libxcb-dev libxcb-util-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxfont-dev libxfontcache-dev libxft-dev libxi-dev libxinerama-dev libxkbfile-dev libxml2-dev libxmu-dev libxmuu-dev libxp-dev libxrandr-dev libxrender-dev libxres-dev libxsettings-client-dev libxslt-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86dga-dev libxxf86misc-dev libxxf86vm-dev libz-dev libzypp-dev lrzsz-dev ltp-dev lttng-control-dev lttng-ust-dev lttng-viewer-dev m4-dev make-dev matchbox-config-gtk-dev matchbox-desktop-dev matchbox-desktop-sato-dev matchbox-keyboard-dev matchbox-panel-2-dev matchbox-session-sato-dev matchbox-stroke-dev matchbox-terminal-dev matchbox-theme-sato-dev matchbox-wm-dev mesa-demos-dev mesa-dri-dev mkfontdir-dev mkfontscale-dev mobile-broadband-provider-info-dev ncurses-dev ofono-dev oh-puzzles-dev openssh-dev openssl-dev opkg-dev oprofile-dev oprofileui-dev owl-video-dev pango-dev patch-dev pciutils-dev pcmanfm-dev perf-dev perl-dev pkgconfig pkgconfig-dev pm-utils-dev polkit-dev portmap-dev powertop-dev ppp-dev printproto-dev procps-dev psplash-dev pulseaudio-dev python-dbus-dev python-dev python-pycairo-dev python-pygobject-dev python-pygtk-dev qt4-x11-free-dev quicky-dev quilt-dev randrproto-dev recordproto-dev renderproto-dev resourceproto-dev rgb-dev rpm-dev rsync-dev sat-solver-dev sato-icon-theme-dev sato-screenshot-dev scrnsaverproto-dev settings-daemon-dev shadow-dev shared-mime-info-dev slang-dev speex-dev stat-dev strace-dev sudo-dev sysfsutils-dev sysprof-dev systemtap-dev sysvinit-dev task-base-3g-dev task-base-acpi-dev task-base-bluetooth-dev task-base-dev task-base-ext2-dev task-base-extended-dev task-base-keyboard-dev task-base-nfs-dev task-base-pci-dev task-base-usbhost-dev task-base-wifi-dev task-core-apps-console-dev task-core-apps-x11-core-dev task-core-apps-x11-games-dev task-core-apps-x11-pimlico-dev task-core-boot-dev task-core-qt-demos-dev task-core-sdk task-core-sdk-dev task-core-ssh-openssh-dev task-core-standalone-sdk-target task-core-tools-debug-dev task-core-tools-profile-dev task-core-tools-testapps-dev task-core-x11-base-dev task-core-x11-sato-dev task-distro-base-dev tasks-dev tcf-agent-dev tcl-dev tinylogin-dev trace-cmd-dev trapproto-dev udev-dev usbutils-dev util-linux-dev util-macros-dev valgrind-dev videoproto-dev vte-dev wpa-supplicant-dev x11-common-dev x11perf-dev x11vnc-dev xauth-dev xcb-proto-dev xcmiscproto-dev xdpyinfo-dev xextproto-dev xf86-input-evdev-dev xf86-input-keyboard-dev xf86-input-mouse-dev xf86-input-synaptics-dev xf86-video-intel-dev xf86bigfontproto-dev xf86dgaproto-dev xf86driproto-dev xf86miscproto-dev xf86rushproto-dev xf86vidmodeproto-dev xhost-dev xineramaproto-dev xinit-dev xkbcomp-dev xkeyboard-config-dev xmodmap-dev xprop-dev xproto-dev xrandr-dev xrestop-dev xserver-nodm-init-dev xserver-xorg-dev xset-dev xtrans-dev xtscal-dev xvideo-tests-dev xwininfo-dev xz-dev zip-dev zypper-dev 453 packages to remove. After the operation, 151.1 MiB will be freed. Continue? [y/n/?] (y): n root@sugarbay:~/sudoku-savant-1.3# zypper install man Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: man 1 new package to install. Overall download size: 130.0 KiB. After the operation, additional 267.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package man-1.6f-r2.x86_64 (1/1), 130.0 KiB (267.0 KiB unpacked) Retrieving: man-1.6f-r2.x86_64.rpm [done (14.5 KiB/s)] Installing: man-1.6f-r2 [done] root@sugarbay:~/sudoku-savant-1.3# rpm -e man root@sugarbay:~/sudoku-savant-1.3# zypper install man Loading repository data... Reading installed packages... Resolving package dependencies... The following NEW package is going to be installed: man 1 new package to install. Overall download size: 130.0 KiB. After the operation, additional 267.0 KiB will be used. Continue? [y/n/?] (y): y Retrieving package man-1.6f-r2.x86_64 (1/1), 130.0 KiB (267.0 KiB unpacked) Retrieving: man-1.6f-r2.x86_64.rpm [done] Installing: man-1.6f-r2 [done] root@sugarbay:~/sudoku-savant-1.3# zypper remove man Loading repository data... Reading installed packages... Resolving package dependencies... The following package is going to be REMOVED: man 1 package to remove. After the operation, 267.0 KiB will be freed. Continue? [y/n/?] (y): y Removing man-1.6f-r2 [done]
pkgconfig it's missing from core-image-sato-sdk-qemux86-64 too, pkgconfig-dev empty, rpm errors too. Build Configuration: BB_VERSION = "1.15.3" TARGET_ARCH = "x86_64" TARGET_OS = "linux" MACHINE = "qemux86-64" DISTRO = "poky" DISTRO_VERSION = "1.2+snapshot-20120803" TUNE_FEATURES = "m64" TARGET_FPU = "" meta meta-yocto = "master:62d42fe3cfa575cb97b484ccf7b2e9a25cc50770" root@qemux86-64:~# rpm -qa | grep pkgconfig pkgconfig-dev-0.25-r4.x86_64 root@qemux86-64:~# rpm -ql pkgconfig-dev-0.25-r4.x86_64 (contains no files) root@qemux86-64:~# rpm -e pkgconfig-dev error: db3cpget:db3.c:1445: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value rpm: rpmdb.c:2323: rpmmiNext: Assertion `0' failed. Aborted
*** Bug 2887 has been marked as a duplicate of this bug. ***
Will try to reproduce and discuss w/ upstream RPM maintainer.
The long list of removed packages is expected since -dev packages have a dependnecy on pkgconfig as the system stands today. That does raise the question of why it isn't in the rootfs in the first place though!
The failure is: root@sugarbay:~/sudoku-savant-1.3# rpm -e pkgconfig error: db3cpget:db3.c:1445: dbcursor->pget(-30999): BDB0063 DB_BUFFER_SMALL: User memory too small for return value rpm: rpmdb.c:2323: rpmmiNext: Assertion `0' failed. Aborted Any action after that point will require the RPM database to be reset. The locks may have held after that assert. This problem has been resolved. See commit: Poky - danny/master - eab49954002c26bab4bffd344c1fd82d8f524f6e OE-Core - master - bfb2906206158748d0be33baf7984cf885756da1 Retry with that commit.
I've tested with nightly qemux86-64 / 2c3e8280e67721d42d4be48a8e2c1e9ce9bb89fd and the rpm crashes are gone. However, configure for sudoku-savant still fails because pkgconfig is missing from the sato-sdk image (this was the test in commnent #1 that led me to install pkgconfig and then remove it, perhaps a new bug should be filled for this). checking where the gettext function comes from... libc checking for pkg-config... no checking for PACKAGE... configure: error: in `/home/root/sudoku-savant-1.3': configure: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. root@qemux86-64:~# rpm -q --what-provides pkgconfig pkgconfig-dev-0.25-r4.x86_64 root@qemux86-64:~# rpm -ql pkgconfig-dev-0.25-r4.x86_64 (contains no files) root@qemux86-64:~# wget http://autobuilder.yoctoproject.org/pub/nightly/20121008-2/rpm/x86_64/pkgconfig-0.25-r4.x86_64.rpm root@qemux86-64:~# rpm -ivh pkgconfig-0.25-r4.x86_64.rpm Preparing... ########################################### [100%] 1:pkgconfig ########################################### [100%] root@qemux86-64:~# rpm -ql pkgconfig /usr /usr/bin /usr/bin/pkg-config /usr/share /usr/share/aclocal /usr/share/aclocal/pkg.m4 root@qemux86-64:~# rpm -q --what-provides pkgconfig pkgconfig-dev-0.25-r4.x86_64 pkgconfig-0.25-r4.x86_64 and now configure succeds. Perhaps this is wrong in meta/recipes-devtools/pkgconfig/pkgconfig.inc RREPLACES_${PN}-dev = "${PN}"
> root@qemux86-64:~# rpm -q --what-provides pkgconfig > pkgconfig-dev-0.25-r4.x86_64 This is saying that pkgconfig-dev met the dependency of 'pkgconfig'. Use: rpm -qp <pkgconfig.rpm> --provides that will show you what it's providing.. my guess is something has an RDEPENDS in it. > Perhaps this is wrong in meta/recipes-devtools/pkgconfig/pkgconfig.inc > > RREPLACES_${PN}-dev = "${PN}" That is exactly what the problem would be. The -dev package has a 'replaces', which gets turning into a conflict and provide combination. This means that pkgconfig-dev will conflict w/ 'pkgconfig' causing it to not be installed, along with providing the capability. This looks like someone's attempt at satisfying the pkgconfig dependency without actually getting it installed. This looks like a defect to me.
We updated the recipe to remove the offending RREPLACES line and it's installed http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=c874b99075be9c4430d2848ecdbc44db11008e17
Verfied. qemux86-64 danny RC4 nightly / c9de24d3f4845251b01e2eab0aeeb7472badc5bb