Summary: | app-emulation/qemu-2.8.0-r6[vte,gtk,-gtk2] fails to configure if gtk+:2 is installed and vte:2.90, or vte:2.91 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ivan Grynko <iivanich> |
Component: | Current packages | Assignee: | Gentoo QEMU Project <qemu+disabled> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | marduk, meritus |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | build.log |
Description
Ivan Grynko
2017-02-28 17:54:51 UTC
This was not an issue with the -r4 .ebuild. It looks like it crept up in -r6 (or -r5). At least on my machine, it looks like ./configure is being run twice, once with --enable-vte and again with --disable-vte, but I'm not sure what difference that makes. Created attachment 465612 [details]
build.log
This code in -r6 ebuild enables "vte" for "softmmu" and "tools" targets. conf_softmmu() { if [[ ${buildtype} == "user" ]] ; then echo "--disable-${2:-$1}" else use_enable "$@" fi } but use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) ) use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) ) present only for "softmmu". For "tools" configure --enable-vte can't found vte, because in qemu by default gtk2: if test "$gtkabi" = ""; then # The GTK ABI was not specified explicitly, so try whether 2.0 is available. # Use 3.0 as a fallback if that is available. if $pkg_config --exists "gtk+-2.0 >= 2.18.0"; then gtkabi=2.0 elif $pkg_config --exists "gtk+-3.0 >= 3.0.0"; then gtkabi=3.0 else gtkabi=2.0 fi fi (In reply to Maxim Britov from comment #3) > This code in -r6 ebuild enables "vte" for "softmmu" and "tools" targets. > > conf_softmmu() { > if [[ ${buildtype} == "user" ]] ; then > echo "--disable-${2:-$1}" > else > use_enable "$@" > fi > } > > but > use gtk && conf_opts+=( --with-gtkabi=$(usex gtk2 2.0 3.0) ) > use sdl && conf_opts+=( --with-sdlabi=$(usex sdl2 2.0 1.2) ) > > present only for "softmmu". > > > For "tools" configure --enable-vte can't found vte, because in qemu by > default gtk2: > > if test "$gtkabi" = ""; then > # The GTK ABI was not specified explicitly, so try whether 2.0 is > available. > # Use 3.0 as a fallback if that is available. > if $pkg_config --exists "gtk+-2.0 >= 2.18.0"; then > gtkabi=2.0 > elif $pkg_config --exists "gtk+-3.0 >= 3.0.0"; then > gtkabi=3.0 > else > gtkabi=2.0 > fi > fi +1 conf_softmmu() uses a common novice programmer mistake of assuming, that there will always be only 2 cases, by excluding the other case instead of permitting only the case it's interested in. Proper conf_softmmu() should look like: conf_softmmu() { if [[ ${buildtype} == "softmmu" ]] ; then use_enable "$@" else echo "--disable-${2:-$1}" fi } That's a gem. commit fe801faa69cb147f4fcf2c112e8275f7da935b3d Author: Matthias Maier <tamiko@gentoo.org> Date: Sat Mar 4 10:06:19 2017 -0600 app-emulation/qemu: fix inverted logic in configure stage, bug #611238 Package-Manager: Portage-2.3.3, Repoman-2.3.2 Well, after this commit I cannot use qemu-img with gluster. it says gluster is not supported. If I comment out in qemu ebuild file: conf_opts+=( $(conf_softmmu accessibility brlapi) $(conf_softmmu aio linux-aio) $(conf_softmmu bzip2) $(conf_softmmu bluetooth bluez) $(conf_softmmu caps cap-ng) $(conf_softmmu curl) $(conf_softmmu fdt) # $(conf_softmmu glusterfs) $(conf_softmmu gnutls) $(conf_softmmu gnutls nettle) and run re-install -> it works again (In reply to Piotr Rybicki from comment #6) > Well, after this commit I cannot use qemu-img with gluster. it says gluster > is not supported. Would you mind to quickly open an new bug report and send me the exact use-flag combination you have for qemu? |