hello, qdepends -Q <pkg> on my ~amd64 system outputs all the deps as expected but at the end it aborts: qdepends.c:507: qdepends_vdb_deep: Assertion `eat_file(buf, use, sizeof(use)) == 1' failed. Portage 2.1.4 (default-linux/amd64/2007.0/desktop, gcc-4.2.2, glibc-2.7-r1, 2.6.23-gentoo-r5 x86_64) ================================================================= System uname: 2.6.23-gentoo-r5 x86_64 unknown Timestamp of tree: Wed, 23 Jan 2008 16:00:01 +0000 app-shells/bash: 3.2_p33 dev-java/java-config: 1.3.7, 2.1.3 dev-lang/python: 2.5.1-r5 sys-apps/baselayout: 2.0.0_rc6-r1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.18.50.0.3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23-r3 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=k8 -pipe -msse3" CHOST="x86_64-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" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-O2 -march=k8 -pipe -msse3" DISTDIR="/media/reiser/distfiles" FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="cs_CZ.UTF-8" LC_ALL="cs_CZ.UTF-8" LINGUAS="cs" MAKEOPTS="-j3" PKGDIR="/20GB/portage/packages" PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes --progress --prune-empty-dirs" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/20GB/var/tmp" PORTDIR="/20GB/portage" PORTDIR_OVERLAY="/20GB/overlay /usr/local/portage/dave" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 alsa amd64 apache2 asf avi bitmap-fonts branding bzip2 cairo cdparanoia cdr cli css cups curl curlwrappers custom-cflags cxx dbus dga dts dvd dvdnav dvdr dvdread emboss enca encode evo ffmpeg flash ftp gd gif gpm hal iconv id3 id3v2 ithreads jabber javascript jpeg kde kdeenablefinal kdehiddenvisibility kerberos lame mad matroska mmx mmxext mp3 mpeg mplayer ncurses no-old-linux nptl nptlonly nsplugin nvidia ogg oggvorbis openal opengl pcre pdf pic png posix pppd print qt qt3 qt3support qt4 quicktime rar reflection session smp sockets spl srt sse sse2 sse3 ssl subversion symlink threads truetype truetype-fonts type1-fonts unicode usb vorbis wma x264 xine xml xorg xv xvid zlib" ALSA_CARDS="emu10k1" ALSA_PCM_PLUGINS="asym empty file null plug" APACHE2_MODULES="alias authz_host cache dir disk_cache include log_config mime mime_magic rewrite setenvif" APACHE2_MPMS="event" ELIBC="glibc" INPUT_DEVICES="mouse keyboard" KERNEL="linux" LINGUAS="cs" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
please run it through `strace` and post the output as an attachment
Created attachment 141665 [details] strace qdepends -Q poppler
Oh, maybe I should mention that I've got following mount binds: /20GB/var/db/pkg on /var/db/pkg type none (rw,bind) /20GB/var/cache/edb on /var/cache/edb type none (rw,bind)
Old gawk that lacks a USE vdb entry for gawk. cat /var/db/pkg/sys-apps/gawk-3.1.5-r5/USE amd64 elibc_glibc kernel_linux userland_GNU Those expanded flags pretty much always exist. Please re-merge gawk.. I can't reproduce this in cvs.
Yeah, this helped. Thanks!
Ok I was able to finally reproduce this. Index: qdepends.c =================================================================== RCS file: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v retrieving revision 1.46 diff -u -b -B -r1.46 qdepends.c --- qdepends.c 24 May 2007 14:47:18 -0000 1.46 +++ qdepends.c 14 Mar 2008 23:22:24 -0000 @@ -504,7 +504,10 @@ snprintf(buf, sizeof(buf), "%s%s/%s/%s/USE", portroot, portvdb, dentry->d_name, de->d_name); - assert(eat_file(buf, use, sizeof(use)) == 1); + + if (eat_file(buf, use, sizeof(use)) == 1) + use[0] = ' '; + for (ptr = use; *ptr; ++ptr) if (*ptr == '\n' || *ptr == '\t') *ptr = ' ';