Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 611238

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 packagesAssignee: 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
app-emulation/qemu-2.8.0-r6 fails at configure stage when vte useflag enabled.

../configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64 --docdir=/usr/share/doc/qemu-2.8.0-r6/html --disable-bsd-user --disable-guest-agent --disable-strip --disable-werror --disable-gcrypt --python=/usr/bin/python2.7 --cc=x86_64-pc-linux-gnu-gcc --cxx=x86_64-pc-linux-gnu-g++ --host-cc=x86_64-pc-linux-gnu-gcc --disable-debug-info --disable-debug-tcg --enable-docs --disable-tcg-interpreter --enable-attr --disable-brlapi --enable-linux-aio --enable-bzip2 --disable-bluez --enable-cap-ng --enable-curl --enable-fdt --disable-glusterfs --enable-gnutls --enable-nettle --enable-gtk --disable-rdma --disable-libiscsi --enable-vnc-jpeg --enable-kvm --enable-lzo --enable-curses --enable-libnfs --disable-numa --enable-opengl --enable-vnc-png --disable-rbd --enable-vnc-sasl --enable-sdl --enable-seccomp --disable-smartcard --disable-snappy --enable-spice --enable-libssh2 --enable-libusb --enable-usb-redir --disable-vde --enable-vhost-net --enable-virglrenderer --enable-virtfs --enable-vnc --enable-vte --disable-xen --disable-xen-pci-passthrough --disable-xfsctl --disable-linux-user --disable-system --disable-blobs --enable-tools --enable-bzip2 --target-list=

ERROR: User requested feature vte
       configure was not able to find it.
       Install libvte devel



Reproducible: Always




Portage 2.3.3 (python 3.5.3-final-0, default/linux/amd64/13.0/desktop/plasma/systemd, gcc-6.3.0, glibc-2.24-r1, 4.10.1-gentoo x86_64)
=================================================================
System uname: Linux-4.10.1-gentoo-x86_64-Intel-R-_Core-TM-_i7-4790K_CPU_@_4.00GHz-with-gentoo-2.3
KiB Mem:    16351812 total,   7529300 free
KiB Swap:   10485748 total,  10485748 free
sh bash 4.4_p12
ld GNU ld (Gentoo 2.27 p1.0) 2.27
ccache version 3.3.4 [enabled]
app-shells/bash:          4.4_p12::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.1-r1::gentoo
dev-lang/python:          2.7.13::gentoo, 3.4.6::gentoo, 3.5.3::gentoo
dev-util/ccache:          3.3.4::gentoo
dev-util/cmake:           3.7.2::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.23.2::gentoo
sys-apps/sandbox:         2.10-r3::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.27::gentoo
sys-devel/gcc:            4.9.3::gentoo, 6.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r3::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: git
    sync-uri: git://anongit.gentoo.org/repo/gentoo.git
    priority: -1000

bobwya
    location: /var/lib/layman/bobwya
    sync-type: laymansync                                                                                                                         
    sync-uri: https://github.com/bobwya/miscellaneous_ebuilds.git                                                                                 
    masters: gentoo                                                                                                                               
    priority: 50                                                                                                                                  
                                                                                                                                                  
gentoo-el                                                                                                                                         
    location: /var/lib/layman/gentoo-el                                                                                                           
    sync-type: laymansync                                                                                                                         
    sync-uri: git://github.com/gentoo-el/overlay.git                                                                                              
    masters: gentoo                                                                                                                               
    priority: 50                                                                                                                                  
                                                                                                                                                  
hossie                                                                                                                                            
    location: /var/lib/layman/hossie                                                                                                              
    sync-type: laymansync                                                                                                                         
    sync-uri: https://git.hossie.de/scm/gen/gentoo-overlay.git                                                                                    
    masters: gentoo                                                                                                                               
    priority: 50                                                                                                                                  
                                                                                                                                                  
kde                                                                                                                                               
    location: /var/lib/layman/kde                                                                                                                 
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/kde.git
    masters: gentoo
    priority: 50

multimedia
    location: /var/lib/layman/multimedia
    sync-type: laymansync
    sync-uri: https://github.com/gentoo/multimedia.git
    masters: gentoo
    priority: 50

steam-overlay
    location: /var/lib/layman/steam-overlay
    sync-type: laymansync
    sync-uri: git://github.com/anyc/steam-overlay.git
    masters: gentoo
    priority: 50

sunrise
    location: /var/lib/layman/sunrise
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/sunrise-reviewed.git
    masters: gentoo
    priority: 50

ivanich_overlay
    location: /var/lib/layman/portage1
    masters: gentoo
    priority: 60

Installed sets: @kde-frameworks
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA PUEL NVIDIA-CUDA skype-eula Nero-EULA-US dlj-1.1 googleearth AdobeFlash-10.3 AdobeFlash-10 Oracle-BCLA-JavaSE skype-4.0.0.7-copyright AdobeFlash-11.x Google-TOS TeamViewer google-chrome RAR"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=haswell -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=haswell -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="ru_UA.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/var/tmp/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="7zip X a52 aac acl acpi additions addressbook aim akonadi alsa amd64 amuled apache2 apm apng asf audiofile autocreate autoipd automount avahi avi bash-completion bashlogger berkdb bitmap-fonts bittorrent bmp branding bzip2 cacert cairo calendar cdaudio cdda cddb cdr cgi chm cli client composite conntrack cover cracklib cron crypt ctype cue cups curl cxx daemon dbus declarative device-mapper dga dhcp divx4linux djvu dnsdb dovecot-sasl dri dri3 drm dts dvd dvdnav dvdr egl emboss enca encode evdev exif exiscan exiscan-acl exo extensions extras fam fb fbcon ffmpeg filter filter_default firefox flac flash fontconfig fortran freetype ftp fuse g3dvl gallium gd gdbm geoip gif git glamor gles glib glx gnuefi gnutls google gphoto2 gpm grub gstreamer gtk hddtemp httpd hwaccel hwdb iconv icq icu id3 id3tag imagemagick imap imlib importd inotify iproute2 ipv6 irc irda jabber java javafx jingle jpeg jpeg2k kde kdepim_features_akregator kdepim_features_kaddressbook kdepim_features_kmail kdepim_features_korganizer kerberos kipi kmod kms kqemu kwallet ladspa lame lastfm lcms libkms libmpeg2 libnotify libwww lirc live llvm lm_sensors lmtp logitech-mouse logrotate lua lyrics lzma lzo mad maildir mailwrapper matroska mbox mc md5sum mdnsresponder-compat minizip mjpeg mms mmxext mng mod mod_irc mod_muc mod_pubsub modplug modules mount mozilla mp2 mp3 mp4 mpeg mpeg4 mpg123 mplayer mtp multilib musepack mysql nat ncurses netlink network networkmanager newspr nfs nls notification notifier nptl nsplugin ntfs nvidia ogg online-services opengl openmp openssl opensslcrypt openvg oscar osmesa otr pam pango passwordsave pch pcre pdf phonon pkcs11 plasma plugins plymouth png policykit pop3d pulseaudio python qml qt3support qt4 qt5 rar rdesktop readline real reiserfs rewrite rpc rss rtc rtsp samba sasl script scrobbler sdl sdl2 seccomp semantic-desktop server session shout sipe skype slang smbclient smp sms softquota sound sounds speex spell spice sqlite srt ssh ssl staging startup-notification stats steamruntime stereo stream streams subversion suexec svg sysfs syslog systemd taglib tcpd theora threads thumbnail tiff tray trayicon truetype tty-helpers twolame type1-fonts udev udisks unicode unsupported upower usb usbredir userlocales utf8 vaapi vditool vdpau vhosts video vim-pager virgl virt-network virtfs virtual-users vlc vlm vnc voice vorbis vpx vte wavpack wayland wayland-compositor web webgl webinterface webkit widgets winbind wma wmf wxwidgets wxwindows x264 xa xattr xcb xcomposite xinerama xml xml2 xmlreader xmlrpc xmlwriter xorg xpm xscreensaver xsltruetype-fonts xulrunner xv xvid xvid4 xvmc xwayland zeroconf zip zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file curl authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias charset_lite cgi cgid access_compat authn_alias authn_core authz_core cache_disk cern_meta slotmem_shm unixd version proxy_scgi socache_shmcb lbmethod_bybusyness lbmethod_byrequests lbmethod_bytraffic proxy_ftp" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2 samsung sonix sony_dscf1 sony_dscf55" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="gnutls" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc multiboot efi-64" INPUT_DEVICES="evdev" KERNEL="linux" L10N="en ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru en" LIRC_DEVICES="userspace" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4 python3_5" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="nvidia v4l nouveau intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Albert W. Hopkins 2017-02-28 20:16:54 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.
Comment 2 Albert W. Hopkins 2017-02-28 20:17:25 UTC
Created attachment 465612 [details]
build.log
Comment 3 Maxim Britov 2017-03-03 10:07:54 UTC
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
Comment 4 . 2017-03-04 13:00:44 UTC
(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
}
Comment 5 Matthias Maier gentoo-dev 2017-03-04 16:41:09 UTC
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
Comment 6 Piotr Rybicki 2017-03-06 15:47:15 UTC
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
Comment 7 Matthias Maier gentoo-dev 2017-03-06 16:30:23 UTC
(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?