Libvirt requires bootstrapping script to be run to create configure script. Moreover, this script clones subproject repo in the right place. Reproducible: Always Steps to Reproduce: 1.make sure you don't have libvirt git cloned in distfiles 2.emerge =libvirt-9999 3.observe error Actual Results: emerge fail Expected Results: emerge will continue and finish successfuly Fix: --- /usr/portage/app-emulation/libvirt/libvirt-9999.ebuild 2011-07-20 17:01:03.000000000 +0200 +++ /usr/local/portage/app-emulation/libvirt/libvirt-9999.ebuild 2011-08-01 14:29:52.840004834 +0200 @@ -99,6 +99,15 @@ src_prepare() { "${S}"/tests/commanddata/test8.log || die fi + ./bootstrap || die "bootstrap failed" + ( + git submodule status | sed 's/^[ +-]//;s/ .*//' + git hash-object bootstrap.conf + ) >.git-module-status + # this has already been done by bootstrap but we're required to redo it to + # remove maintainer mode + eautoreconf + [[ -n ${AUTOTOOLIZE} ]] && eautoreconf } @@ -190,6 +199,9 @@ src_configure() { --with-remote \ --localstatedir=/var \ --with-remote-pid-file=/var/run/libvirtd.pid + + # HACK, restore gnulib's config.sub and config.guess + (cd .gnulib && git reset --hard >/dev/null) } src_test() {
I ran into this same issue. I changed the ebuild using Michal's changes below. Here is an updated diff since the ebuild has changed since his post. diff --git a/libvirt-9999.ebuild b/usr/local/portage/app-emulation/libvirt/libvirt-9999.ebuild index ea3f038..e95a6a3 100644 --- a/libvirt-9999.ebuild +++ b/usr/local/portage/app-emulation/libvirt/libvirt-9999.ebuild @@ -96,6 +96,17 @@ pkg_setup() { } src_prepare() { + + ./bootstrap || die "bootstrap failed" + ( + git submodule status | sed 's/^[ +-]//;s/ .*//' + git hash-object bootstrap.conf + ) >.git-module-status + # this has already been done by bootstrap but we're required to redo + + #remove maintainer mode + eautoreconf + [[ -n ${BACKPORTS} ]] && \ EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \ epatch @@ -193,6 +204,11 @@ src_configure() { --docdir=/usr/share/doc/${PF} \ --with-remote \ --localstatedir=/var + + + # HACK, restore gnulib's config.sub and config.guess + (cd .gnulib && git reset --hard >/dev/null) + } src_test() {
Created attachment 302295 [details, diff] bootstrap.patch
Yup, hasufell patch is better, the bootstrap should be run after . [[ -n ${BACKPORTS} ]] && \ EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \ epatch
Created attachment 302301 [details, diff] bootstrap.patch
Thanks all. Fixed in the tree.