debug output from emerge xchat: + echo '>>> Unpacking xchat-2.0.3.tar.bz2 to /fire/1/p/portage/xchat-2.0.3/work'>>> Unpacking xchat-2.0.3.tar.bz2 to /fire/1/p/portage/xchat-2.0.3/work ++ echo xchat-2.0.3.tar.bz2 ++ sed 's:.*\.\(tar\)\.[a-zA-Z0-9]*:\1:' + y=tar + '[' tar == tar ']' + bzip2 -dc /usr/portage/distfiles/xchat-2.0.3.tar.bz2 + tar --no-same-owner -xf /usr/portage/distfiles/xchat-2.0.3.tar.bz2 tar: This does not look like a tar archive tar: Skipping to next header tar: Archive contains obsolescent base-64 headers tar: Error exit delayed from previous errors bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: Broken pipe Input file = /usr/portage/distfiles/xchat-2.0.3.tar.bz2, output file = (stdout) + diefunc unpack 294 2 'failure unpacking xchat-2.0.3.tar.bz2' + local funcname=unpack lineno=294 exitcode=2 and then from /usr/lib/portage/bin/ebuild.sh's unpack() function: tbz2) bzip2 -dc ${DISTDIR}/${x} | tar ${tarvars} -xf ${DISTDIR}/${x} || die "$myfail" [snip..] bz2) if [ "${y}" == "tar" ]; then bzip2 -dc ${DISTDIR}/${x} | tar ${tarvars} -xf ${DISTDIR}/${x} || die "$myfail" in both cases, the "tar" end of the pipe should be reading from stdin instead of a file. eg: bzip2 -dc ${DISTDIR}/${x} | tar ${tarvars} -x || die "$myfail" Reproducible: Always Steps to Reproduce:
fixed in -r3. closing this.