Jump to content
Read the Funtoo Newsletter: Summer 2023 ×

freefog

Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by freefog

  1. Hi if I am missing anything relevant plz let me know:

     

     

    + I removed dev-util/sysprof -gtk to package.use to obtain the errors again:

    sysprof.thumb.png.99fad756bc62530065b747e3a723b221.png

    webkit-gtk.png.31f24409f957de1a11235ac0cfa57217.png

     

     

    + My make.conf file is as follows and I try to use "euse" to mod it:

    USE="dbus udisks -bindist -systemd -gnome -dvdr -cups -bluetooth \
         -smartcard alsa pulseaudio qt5 introspection consolekit kde xinerama"
    
    L10N="en_US"
    LINGUAS="en_US"

    ( I have tons of questions about xinerama but that is outside the scope of this post )

     

     

    + emerge --info gnome-extra/sushi

    =================================================================
                             System Settings
    =================================================================
    System uname: Linux-4.19.27-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-1.4
    KiB Mem:    12281736 total,   3019316 free
    KiB Swap:   18874364 total,  18874364 free
    sh bash 5.0_p7
    ld GNU ld (Gentoo 2.32 p2) 2.32.0
    app-shells/bash:          5.0_p7::core-kit
    dev-lang/perl:            5.28.2-r1::perl-kit
    dev-lang/python:          2.7.15::python-kit, 3.6.8::python-kit, 3.7.3::python-kit
    dev-util/cmake:           3.14.5::core-kit
    sys-apps/baselayout:      2.6.1-r1::core-kit
    sys-apps/openrc:          0.41.2-r2::core-kit
    sys-apps/sandbox:         2.17::core-kit
    sys-devel/autoconf:       2.13-r1::core-kit, 2.69-r4::core-kit
    sys-devel/automake:       1.11.6-r3::core-kit, 1.16.1-r1::core-kit
    sys-devel/binutils:       2.32-r1::core-kit
    sys-devel/gcc:            9.2.0::core-kit
    sys-devel/gcc-config:     2.0::core-kit
    sys-devel/libtool:        2.4.6-r5::core-kit
    sys-devel/make:           4.2.1-r4::core-kit
    sys-kernel/linux-headers: 4.14::core-kit (virtual/os-headers)
    sys-libs/glibc:           2.29-r3::core-kit
    Repositories:
    
    nokit
        location: /var/git/meta-repo/kits/nokit
        masters: core-kit
        priority: -500
    
    core-gl-kit
        location: /var/git/meta-repo/kits/core-gl-kit
        masters: core-kit
        priority: 1
    
    core-hw-kit
        location: /var/git/meta-repo/kits/core-hw-kit
        masters: core-kit
        priority: 1
    
    core-kit
        location: /var/git/meta-repo/kits/core-kit
        masters: core-kit
        priority: 1
        aliases: gentoo
    
    core-server-kit
        location: /var/git/meta-repo/kits/core-server-kit
        masters: core-kit
        priority: 1
    
    core-ui-kit
        location: /var/git/meta-repo/kits/core-ui-kit
        masters: core-kit
        priority: 1
    
    desktop-kit
        location: /var/git/meta-repo/kits/desktop-kit
        masters: core-kit
        priority: 1
    
    dev-kit
        location: /var/git/meta-repo/kits/dev-kit
        masters: core-kit
        priority: 1
    
    editors-kit
        location: /var/git/meta-repo/kits/editors-kit
        masters: core-kit
        priority: 1
    
    games-kit
        location: /var/git/meta-repo/kits/games-kit
        masters: core-kit
        priority: 1
    
    gnome-kit
        location: /var/git/meta-repo/kits/gnome-kit
        masters: core-kit
        priority: 1
    
    haskell-kit
        location: /var/git/meta-repo/kits/haskell-kit
        masters: core-kit
        priority: 1
    
    java-kit
        location: /var/git/meta-repo/kits/java-kit
        masters: core-kit
        priority: 1
    
    kde-kit
        location: /var/git/meta-repo/kits/kde-kit
        masters: core-kit
        priority: 1
    
    lang-kit
        location: /var/git/meta-repo/kits/lang-kit
        masters: core-kit
        priority: 1
    
    lisp-scheme-kit
        location: /var/git/meta-repo/kits/lisp-scheme-kit
        masters: core-kit
        priority: 1
    
    llvm-kit
        location: /var/git/meta-repo/kits/llvm-kit
        masters: core-kit
        priority: 1
    
    media-kit
        location: /var/git/meta-repo/kits/media-kit
        masters: core-kit
        priority: 1
    
    ml-lang-kit
        location: /var/git/meta-repo/kits/ml-lang-kit
        masters: core-kit
        priority: 1
    
    net-kit
        location: /var/git/meta-repo/kits/net-kit
        masters: core-kit
        priority: 1
    
    perl-kit
        location: /var/git/meta-repo/kits/perl-kit
        masters: core-kit
        priority: 1
    
    python-kit
        location: /var/git/meta-repo/kits/python-kit
        masters: core-kit
        priority: 1
    
    python-modules-kit
        location: /var/git/meta-repo/kits/python-modules-kit
        masters: core-kit
        priority: 1
    
    ruby-kit
        location: /var/git/meta-repo/kits/ruby-kit
        masters: core-kit
        priority: 1
    
    rust-kit
        location: /var/git/meta-repo/kits/rust-kit
        masters: core-kit
        priority: 1
    
    science-kit
        location: /var/git/meta-repo/kits/science-kit
        masters: core-kit
        priority: 1
    
    security-kit
        location: /var/git/meta-repo/kits/security-kit
        masters: core-kit
        priority: 1
    
    text-kit
        location: /var/git/meta-repo/kits/text-kit
        masters: core-kit
        priority: 1
    
    xfce-kit
        location: /var/git/meta-repo/kits/xfce-kit
        masters: core-kit
        priority: 1
    
    xorg-kit
        location: /var/git/meta-repo/kits/xorg-kit
        masters: core-kit
        priority: 1
    
    flatpak-overlay
        location: /var/lib/layman/flatpak-overlay
        sync-type: laymansync
        sync-uri: https://github.com/fosero/flatpak-overlay.git
        masters: core-kit
        priority: 50
    
    ACCEPT_KEYWORDS="amd64 ~amd64"
    ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE"
    CBUILD="x86_64-pc-linux-gnu"
    CFLAGS="-march=nehalem -O2 -pipe"
    CHOST="x86_64-pc-linux-gnu"
    CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
    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="-march=nehalem -O2 -pipe"
    DISTDIR="/var/cache/portage/distfiles"
    FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
    FFLAGS="-march=nehalem -O2 -pipe"
    GENTOO_MIRRORS="https://fastpull-us.funtoo.org"
    LANG="en_US.UTF-8"
    LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    LINGUAS="en_US"
    PKGDIR="/var/cache/portage/packages"
    PORTAGE_CONFIGROOT="/"
    PORTAGE_TMPDIR="/var/tmp"
    USE="X a52 aac acl alsa amd64 apng berkdb bluray bzip2 cdda cddb cdio cdr colord consolekit cracklib crypt curl cxx dbus declarative dnssd dri dts dvd dvdread eds egl elogind encode evo exif faac faad ffmpeg flac gdbm gif glamor glvnd gnome-keyring gnome-online-accounts gpm gstreamer gtk gtk3 gtkstyle ico iconv icu ieee1394 introspection ios ipod ipv6 jpeg jpeg2k kde kipi lame libass libguess libmpeg2 libnotify mad matroska mjpeg mmx modules mp3 mpeg mtp mudflap nautilus ncurses networkmanager nls nptl nsplugin ogg opengl openmp openrc-force pam pcre pdf phonon plasma png policykit postproc pppd pulseaudio python qml qt5 quicktime readline resolvconf sdl sdl1 semantic-desktop sndfile sse sse2 ssl startup-notification svg taglib tcpd theora tiff tracker truetype twolame udev udisks unicode v4l vaapi vdpau vorbis vpx vulkan wav wavpack wayland webp widgets win32codecs wmf x264 x265 xa xattr xcomposite xinerama xml xscreensaver xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias authn_core authz_core socache_shmcb unixd" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="efi-64 pc" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" L10N="en_US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="xa xvmc vaapi vdpau fbdev amdgpu gallium-radeonsi osmesa radeon radeonsi swrast vulkan-amdgpu" 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:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, ENV_UNSET, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
    
    =================================================================
                            Package Settings
    =================================================================
    
    gnome-extra/sushi-3.32.1::gnome-kit was built with the following:
    USE="-office"

     

     

    + emerge -pvq gnome-extra/sushi

    [ebuild     U ] gnome-extra/sushi-3.34.0-r1 [3.32.1] USE="wayland%* -office" 

     

     

    + /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/temp/build.log

     * Package:    gnome-extra/sushi-3.34.0-r1
     * Repository: gnome-kit
     * Maintainer: gnome@gentoo.org
     * USE:        amd64 elibc_glibc kernel_linux userland_GNU
     * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
    >>> Unpacking source...
    >>> Unpacking sushi-3.34.0.tar.xz to /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work
    >>> Source unpacked in /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work
    >>> Preparing source in /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0 ...
     * Applying gdk-wayland-fix.patch ...
     [ ok ]
    >>> Source prepared.
    >>> Configuring source in /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0 ...
    meson --buildtype plain --libdir lib64 --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0 /var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0-build
    [1mThe Meson build system[0m
    Version: 0.50.1
    Source dir: [1m/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0[0m
    Build dir: [1m/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0-build[0m
    Build type: [1mnative build[0m
    Project name: [1msushi[0m
    Project version: [1m3.34.0[0m
    Appending CFLAGS from environment: '-march=nehalem -O2 -pipe'
    Appending LDFLAGS from environment: '-Wl,-O1 -Wl,--sort-common -Wl,--as-needed'
    Native C compiler: [1mx86_64-pc-linux-gnu-gcc[0m (gcc 9.2.0 "x86_64-pc-linux-gnu-gcc (Funtoo 9.2.0) 9.2.0")
    Build machine cpu family: [1mx86_64[0m
    Build machine cpu: [1mx86_64[0m
    Found pkg-config: [1m/usr/bin/x86_64-pc-linux-gnu-pkg-config[0m (1.5.4)
    Dependency [1mepoxy[0m found: [1;32mYES[0m 1.5.2
    Dependency [1mevince-document-3.0[0m found: [1;32mYES[0m 3.34.1
    Dependency [1mevince-view-3.0[0m found: [1;32mYES[0m 3.34.1
    Dependency [1mfreetype2[0m found: [1;32mYES[0m 22.1.16
    Dependency [1mgdk-pixbuf-2.0[0m found: [1;32mYES[0m 2.39.2
    Dependency [1mgio-unix-2.0[0m found: [1;32mYES[0m 2.62.2
    Dependency [1mglib-2.0[0m found: [1;32mYES[0m 2.62.2
    Dependency [1mgstreamer-1.0[0m found: [1;32mYES[0m 1.14.4
    Dependency [1mgstreamer-audio-1.0[0m found: [1;32mYES[0m 1.14.4
    Dependency [1mgstreamer-tag-1.0[0m found: [1;32mYES[0m 1.14.4
    Dependency [1mgstreamer-video-1.0[0m found: [1;32mYES[0m 1.14.4
    Dependency [1mgtk+-3.0[0m found: [1;32mYES[0m 3.24.12
    Dependency [1mgtk+-x11-3.0[0m found: [1;32mYES[0m 3.24.12
    Dependency [1mgtk+-wayland-3.0[0m found: [1;32mYES[0m 3.24.12
    Found CMake: [1m/usr/bin/cmake[0m (3.14.5)
    Dependency [1mgtksourceview-4[0m found: [1;31mNO[0m (tried pkgconfig and cmake)
    
    meson.build:22:0: [1;31mERROR:[0m Dependency "gtksourceview-4" not found, tried pkgconfig and cmake
    
    A full log can be found at [1m/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0-build/meson-logs/meson-log.txt[0m
     * ERROR: gnome-extra/sushi-3.34.0-r1::gnome-kit failed (configure phase):
     *   (no error message)
     * 
     * Call stack:
     *     ebuild.sh, line   93:  Called src_configure
     *   environment, line 3751:  Called meson_src_configure
     *   environment, line 2617:  Called die
     * The specific snippet of code:
     *       tc-env_build "$@" || die
     * 
     * If you need support, post the output of `emerge --info '=gnome-extra/sushi-3.34.0-r1::gnome-kit'`,
     * the complete build log and the output of `emerge -pqv '=gnome-extra/sushi-3.34.0-r1::gnome-kit'`.
     * The complete build log is located at '/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/temp/environment'.
     * Working directory: '/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0'
     * S: '/var/tmp/portage/gnome-extra/sushi-3.34.0-r1/work/sushi-3.34.0'

     

     

    +  emerge --info '=dev-util/sysprof-3.34.1::gnome-kit'

    Portage 2.3.78 (python 2.7.15-final-0, funtoo/1.0/linux-gnu/arch/x86-64bit, gcc-9.2.0, glibc-2.29-r3, 4.19.27-gentoo-r1 x86_64)
    =================================================================
                             System Settings
    =================================================================
    System uname: Linux-4.19.27-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-1.4
    KiB Mem:    12281744 total,   5427716 free
    KiB Swap:   18874364 total,  18874364 free
    sh bash 5.0_p7
    ld GNU ld (Gentoo 2.32 p2) 2.32.0
    app-shells/bash:          5.0_p7::core-kit
    dev-lang/perl:            5.28.2-r1::perl-kit
    dev-lang/python:          2.7.15::python-kit, 3.6.8::python-kit, 3.7.3::python-kit
    dev-util/cmake:           3.14.5::core-kit
    sys-apps/baselayout:      2.6.1-r1::core-kit
    sys-apps/openrc:          0.41.2-r2::core-kit
    sys-apps/sandbox:         2.17::core-kit
    sys-devel/autoconf:       2.13-r1::core-kit, 2.69-r4::core-kit
    sys-devel/automake:       1.11.6-r3::core-kit, 1.16.1-r1::core-kit
    sys-devel/binutils:       2.32-r1::core-kit
    sys-devel/gcc:            9.2.0::core-kit
    sys-devel/gcc-config:     2.0::core-kit
    sys-devel/libtool:        2.4.6-r5::core-kit
    sys-devel/make:           4.2.1-r4::core-kit
    sys-kernel/linux-headers: 4.14::core-kit (virtual/os-headers)
    sys-libs/glibc:           2.29-r3::core-kit
    Repositories:
    
    nokit
        location: /var/git/meta-repo/kits/nokit
        masters: core-kit
        priority: -500
    
    core-gl-kit
        location: /var/git/meta-repo/kits/core-gl-kit
        masters: core-kit
        priority: 1
    
    core-hw-kit
        location: /var/git/meta-repo/kits/core-hw-kit
        masters: core-kit
        priority: 1
    
    core-kit
        location: /var/git/meta-repo/kits/core-kit
        masters: core-kit
        priority: 1
        aliases: gentoo
    
    core-server-kit
        location: /var/git/meta-repo/kits/core-server-kit
        masters: core-kit
        priority: 1
    
    core-ui-kit
        location: /var/git/meta-repo/kits/core-ui-kit
        masters: core-kit
        priority: 1
    
    desktop-kit
        location: /var/git/meta-repo/kits/desktop-kit
        masters: core-kit
        priority: 1
    
    dev-kit
        location: /var/git/meta-repo/kits/dev-kit
        masters: core-kit
        priority: 1
    
    editors-kit
        location: /var/git/meta-repo/kits/editors-kit
        masters: core-kit
        priority: 1
    
    games-kit
        location: /var/git/meta-repo/kits/games-kit
        masters: core-kit
        priority: 1
    
    gnome-kit
        location: /var/git/meta-repo/kits/gnome-kit
        masters: core-kit
        priority: 1
    
    haskell-kit
        location: /var/git/meta-repo/kits/haskell-kit
        masters: core-kit
        priority: 1
    
    java-kit
        location: /var/git/meta-repo/kits/java-kit
        masters: core-kit
        priority: 1
    
    kde-kit
        location: /var/git/meta-repo/kits/kde-kit
        masters: core-kit
        priority: 1
    
    lang-kit
        location: /var/git/meta-repo/kits/lang-kit
        masters: core-kit
        priority: 1
    
    lisp-scheme-kit
        location: /var/git/meta-repo/kits/lisp-scheme-kit
        masters: core-kit
        priority: 1
    
    llvm-kit
        location: /var/git/meta-repo/kits/llvm-kit
        masters: core-kit
        priority: 1
    
    media-kit
        location: /var/git/meta-repo/kits/media-kit
        masters: core-kit
        priority: 1
    
    ml-lang-kit
        location: /var/git/meta-repo/kits/ml-lang-kit
        masters: core-kit
        priority: 1
    
    net-kit
        location: /var/git/meta-repo/kits/net-kit
        masters: core-kit
        priority: 1
    
    perl-kit
        location: /var/git/meta-repo/kits/perl-kit
        masters: core-kit
        priority: 1
    
    python-kit
        location: /var/git/meta-repo/kits/python-kit
        masters: core-kit
        priority: 1
    
    python-modules-kit
        location: /var/git/meta-repo/kits/python-modules-kit
        masters: core-kit
        priority: 1
    
    ruby-kit
        location: /var/git/meta-repo/kits/ruby-kit
        masters: core-kit
        priority: 1
    
    rust-kit
        location: /var/git/meta-repo/kits/rust-kit
        masters: core-kit
        priority: 1
    
    science-kit
        location: /var/git/meta-repo/kits/science-kit
        masters: core-kit
        priority: 1
    
    security-kit
        location: /var/git/meta-repo/kits/security-kit
        masters: core-kit
        priority: 1
    
    text-kit
        location: /var/git/meta-repo/kits/text-kit
        masters: core-kit
        priority: 1
    
    xfce-kit
        location: /var/git/meta-repo/kits/xfce-kit
        masters: core-kit
        priority: 1
    
    xorg-kit
        location: /var/git/meta-repo/kits/xorg-kit
        masters: core-kit
        priority: 1
    
    flatpak-overlay
        location: /var/lib/layman/flatpak-overlay
        sync-type: laymansync
        sync-uri: https://github.com/fosero/flatpak-overlay.git
        masters: core-kit
        priority: 50
    
    ACCEPT_KEYWORDS="amd64 ~amd64"
    ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE"
    CBUILD="x86_64-pc-linux-gnu"
    CFLAGS="-march=nehalem -O2 -pipe"
    CHOST="x86_64-pc-linux-gnu"
    CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
    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="-march=nehalem -O2 -pipe"
    DISTDIR="/var/cache/portage/distfiles"
    FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
    FFLAGS="-march=nehalem -O2 -pipe"
    GENTOO_MIRRORS="https://fastpull-us.funtoo.org"
    LANG="en_US.UTF-8"
    LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    LINGUAS="en_US"
    PKGDIR="/var/cache/portage/packages"
    PORTAGE_CONFIGROOT="/"
    PORTAGE_TMPDIR="/var/tmp"
    USE="X a52 aac acl alsa amd64 apng berkdb bluray bzip2 cdda cddb cdio cdr colord consolekit cracklib crypt curl cxx dbus declarative dnssd dri dts dvd dvdread eds egl elogind encode evo exif faac faad ffmpeg flac gdbm gif glamor glvnd gnome-keyring gnome-online-accounts gpm gstreamer gtk gtk3 gtkstyle ico iconv icu ieee1394 introspection ios ipod ipv6 jpeg jpeg2k kde kipi lame libass libguess libmpeg2 libnotify mad matroska mjpeg mmx modules mp3 mpeg mtp mudflap nautilus ncurses networkmanager nls nptl nsplugin ogg opengl openmp openrc-force pam pcre pdf phonon plasma png policykit postproc pppd pulseaudio python qml qt5 quicktime readline resolvconf sdl sdl1 semantic-desktop sndfile sse sse2 ssl startup-notification svg taglib tcpd theora tiff tracker truetype twolame udev udisks unicode v4l vaapi vdpau vorbis vpx vulkan wav wavpack wayland webp widgets win32codecs wmf x264 x265 xa xattr xcomposite xinerama xml xscreensaver xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias authn_core authz_core socache_shmcb unixd" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="efi-64 pc" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" L10N="en_US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="xa xvmc vaapi vdpau fbdev amdgpu gallium-radeonsi osmesa radeon radeonsi swrast vulkan-amdgpu" 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:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, ENV_UNSET, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
    
    =================================================================
                            Package Settings
    =================================================================
    
    dev-util/sysprof-3.34.1::gnome-kit was built with the following:
    USE="elogind -gtk -systemd"

     

     

    + emerge -pqv '=dev-util/sysprof-3.34.1::gnome-kit'

    [ebuild   R   ] dev-util/sysprof-3.34.1  USE="elogind gtk* -systemd"

     

     

    + /var/tmp/portage/dev-util/sysprof-3.34.1/temp/build.log

     * Package:    dev-util/sysprof-3.34.1
     * Repository: gnome-kit
     * Maintainer: tetromino@gentoo.org leio@gentoo.org
     * USE:        amd64 elibc_glibc elogind gtk kernel_linux userland_GNU
     * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
     * Determining the location of the kernel source code
     * Found kernel source directory:
     *     /usr/src/linux
     * Found sources for kernel version:
     *     4.19.27-gentoo-r1
    /var/tmp/portage/dev-util/sysprof-3.34.1/temp/environment: line 140: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Unpacking source...
    >>> Unpacking sysprof-3.34.1.tar.xz to /var/tmp/portage/dev-util/sysprof-3.34.1/work
    >>> Source unpacked in /var/tmp/portage/dev-util/sysprof-3.34.1/work
    /var/tmp/portage/dev-util/sysprof-3.34.1/temp/environment: line 140: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Preparing source in /var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1 ...
    >>> Source prepared.
    /var/tmp/portage/dev-util/sysprof-3.34.1/temp/environment: line 139: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Configuring source in /var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1 ...
    locale: Cannot set LC_ALL to default locale: No such file or directory
    meson --buildtype plain --libdir lib64 --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload -Dsystemdunitdir=/lib/systemd/system -Dwith_sysprofd=bundled -Denable_gtk=true /var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1 /var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1-build
    [1mThe Meson build system[0m
    Version: 0.50.1
    Source dir: [1m/var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1[0m
    Build dir: [1m/var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1-build[0m
    Build type: [1mnative build[0m
    Project name: [1msysprof[0m
    Project version: [1m3.34.1[0m
    Appending CFLAGS from environment: '-march=nehalem -O2 -pipe'
    Appending LDFLAGS from environment: '-Wl,-O1 -Wl,--sort-common -Wl,--as-needed'
    Native C compiler: [1mx86_64-pc-linux-gnu-gcc[0m (gcc 9.2.0 "x86_64-pc-linux-gnu-gcc (Funtoo 9.2.0) 9.2.0")
    Appending CXXFLAGS from environment: '-march=nehalem -O2 -pipe'
    Appending LDFLAGS from environment: '-Wl,-O1 -Wl,--sort-common -Wl,--as-needed'
    Native C++ compiler: [1mx86_64-pc-linux-gnu-g++[0m (gcc 9.2.0 "x86_64-pc-linux-gnu-g++ (Funtoo 9.2.0) 9.2.0")
    Build machine cpu family: [1mx86_64[0m
    Build machine cpu: [1mx86_64[0m
    Compiler for C supports arguments -fvisibility=hidden: [1;32mYES[0m
    Found pkg-config: [1m/usr/bin/x86_64-pc-linux-gnu-pkg-config[0m (1.5.4)
    Dependency [1mglib-2.0[0m found: [1;32mYES[0m 2.62.2
    Dependency [1mgio-2.0[0m found: [1;32mYES[0m 2.62.2
    Dependency [1mgio-unix-2.0[0m found: [1;32mYES[0m 2.62.2
    Dependency [1mgtk+-3.0[0m found: [1;32mYES[0m 3.24.12
    Found CMake: [1m/usr/bin/cmake[0m (3.14.5)
    Dependency [1mlibdazzle-1.0[0m found: [1;31mNO[0m (tried pkgconfig and cmake)
    
    meson.build:57:2: [1;31mERROR:[0m Dependency "libdazzle-1.0" not found, tried pkgconfig and cmake
    
    A full log can be found at [1m/var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1-build/meson-logs/meson-log.txt[0m
     * ERROR: dev-util/sysprof-3.34.1::gnome-kit failed (configure phase):
     *   (no error message)
     * 
     * Call stack:
     *     ebuild.sh, line   93:  Called src_configure
     *   environment, line 4372:  Called meson_src_configure
     *   environment, line 3170:  Called die
     * The specific snippet of code:
     *       tc-env_build "$@" || die
     * 
     * If you need support, post the output of `emerge --info '=dev-util/sysprof-3.34.1::gnome-kit'`,
     * the complete build log and the output of `emerge -pqv '=dev-util/sysprof-3.34.1::gnome-kit'`.
     * The complete build log is located at '/var/tmp/portage/dev-util/sysprof-3.34.1/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/dev-util/sysprof-3.34.1/temp/environment'.
     * Working directory: '/var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1'
     * S: '/var/tmp/portage/dev-util/sysprof-3.34.1/work/sysprof-3.34.1'
    /var/tmp/portage/dev-util/sysprof-3.34.1/temp/environment: line 139: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)

     

     

    + emerge --info '=net-libs/webkit-gtk-2.26.2::gnome-kit'

    Portage 2.3.78 (python 2.7.15-final-0, funtoo/1.0/linux-gnu/arch/x86-64bit, gcc-9.2.0, glibc-2.29-r3, 4.19.27-gentoo-r1 x86_64)
    =================================================================
                             System Settings
    =================================================================
    System uname: Linux-4.19.27-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-1.4
    KiB Mem:    12281744 total,   5159812 free
    KiB Swap:   18874364 total,  18874364 free
    sh bash 5.0_p7
    ld GNU ld (Gentoo 2.32 p2) 2.32.0
    app-shells/bash:          5.0_p7::core-kit
    dev-lang/perl:            5.28.2-r1::perl-kit
    dev-lang/python:          2.7.15::python-kit, 3.6.8::python-kit, 3.7.3::python-kit
    dev-util/cmake:           3.14.5::core-kit
    sys-apps/baselayout:      2.6.1-r1::core-kit
    sys-apps/openrc:          0.41.2-r2::core-kit
    sys-apps/sandbox:         2.17::core-kit
    sys-devel/autoconf:       2.13-r1::core-kit, 2.69-r4::core-kit
    sys-devel/automake:       1.11.6-r3::core-kit, 1.16.1-r1::core-kit
    sys-devel/binutils:       2.32-r1::core-kit
    sys-devel/gcc:            9.2.0::core-kit
    sys-devel/gcc-config:     2.0::core-kit
    sys-devel/libtool:        2.4.6-r5::core-kit
    sys-devel/make:           4.2.1-r4::core-kit
    sys-kernel/linux-headers: 4.14::core-kit (virtual/os-headers)
    sys-libs/glibc:           2.29-r3::core-kit
    Repositories:
    
    nokit
        location: /var/git/meta-repo/kits/nokit
        masters: core-kit
        priority: -500
    
    core-gl-kit
        location: /var/git/meta-repo/kits/core-gl-kit
        masters: core-kit
        priority: 1
    
    core-hw-kit
        location: /var/git/meta-repo/kits/core-hw-kit
        masters: core-kit
        priority: 1
    
    core-kit
        location: /var/git/meta-repo/kits/core-kit
        masters: core-kit
        priority: 1
        aliases: gentoo
    
    core-server-kit
        location: /var/git/meta-repo/kits/core-server-kit
        masters: core-kit
        priority: 1
    
    core-ui-kit
        location: /var/git/meta-repo/kits/core-ui-kit
        masters: core-kit
        priority: 1
    
    desktop-kit
        location: /var/git/meta-repo/kits/desktop-kit
        masters: core-kit
        priority: 1
    
    dev-kit
        location: /var/git/meta-repo/kits/dev-kit
        masters: core-kit
        priority: 1
    
    editors-kit
        location: /var/git/meta-repo/kits/editors-kit
        masters: core-kit
        priority: 1
    
    games-kit
        location: /var/git/meta-repo/kits/games-kit
        masters: core-kit
        priority: 1
    
    gnome-kit
        location: /var/git/meta-repo/kits/gnome-kit
        masters: core-kit
        priority: 1
    
    haskell-kit
        location: /var/git/meta-repo/kits/haskell-kit
        masters: core-kit
        priority: 1
    
    java-kit
        location: /var/git/meta-repo/kits/java-kit
        masters: core-kit
        priority: 1
    
    kde-kit
        location: /var/git/meta-repo/kits/kde-kit
        masters: core-kit
        priority: 1
    
    lang-kit
        location: /var/git/meta-repo/kits/lang-kit
        masters: core-kit
        priority: 1
    
    lisp-scheme-kit
        location: /var/git/meta-repo/kits/lisp-scheme-kit
        masters: core-kit
        priority: 1
    
    llvm-kit
        location: /var/git/meta-repo/kits/llvm-kit
        masters: core-kit
        priority: 1
    
    media-kit
        location: /var/git/meta-repo/kits/media-kit
        masters: core-kit
        priority: 1
    
    ml-lang-kit
        location: /var/git/meta-repo/kits/ml-lang-kit
        masters: core-kit
        priority: 1
    
    net-kit
        location: /var/git/meta-repo/kits/net-kit
        masters: core-kit
        priority: 1
    
    perl-kit
        location: /var/git/meta-repo/kits/perl-kit
        masters: core-kit
        priority: 1
    
    python-kit
        location: /var/git/meta-repo/kits/python-kit
        masters: core-kit
        priority: 1
    
    python-modules-kit
        location: /var/git/meta-repo/kits/python-modules-kit
        masters: core-kit
        priority: 1
    
    ruby-kit
        location: /var/git/meta-repo/kits/ruby-kit
        masters: core-kit
        priority: 1
    
    rust-kit
        location: /var/git/meta-repo/kits/rust-kit
        masters: core-kit
        priority: 1
    
    science-kit
        location: /var/git/meta-repo/kits/science-kit
        masters: core-kit
        priority: 1
    
    security-kit
        location: /var/git/meta-repo/kits/security-kit
        masters: core-kit
        priority: 1
    
    text-kit
        location: /var/git/meta-repo/kits/text-kit
        masters: core-kit
        priority: 1
    
    xfce-kit
        location: /var/git/meta-repo/kits/xfce-kit
        masters: core-kit
        priority: 1
    
    xorg-kit
        location: /var/git/meta-repo/kits/xorg-kit
        masters: core-kit
        priority: 1
    
    flatpak-overlay
        location: /var/lib/layman/flatpak-overlay
        sync-type: laymansync
        sync-uri: https://github.com/fosero/flatpak-overlay.git
        masters: core-kit
        priority: 50
    
    ACCEPT_KEYWORDS="amd64 ~amd64"
    ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE"
    CBUILD="x86_64-pc-linux-gnu"
    CFLAGS="-march=nehalem -O2 -pipe"
    CHOST="x86_64-pc-linux-gnu"
    CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
    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="-march=nehalem -O2 -pipe"
    DISTDIR="/var/cache/portage/distfiles"
    FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
    FFLAGS="-march=nehalem -O2 -pipe"
    GENTOO_MIRRORS="https://fastpull-us.funtoo.org"
    LANG="en_US.UTF-8"
    LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    LINGUAS="en_US"
    PKGDIR="/var/cache/portage/packages"
    PORTAGE_CONFIGROOT="/"
    PORTAGE_TMPDIR="/var/tmp"
    USE="X a52 aac acl alsa amd64 apng berkdb bluray bzip2 cdda cddb cdio cdr colord consolekit cracklib crypt curl cxx dbus declarative dnssd dri dts dvd dvdread eds egl elogind encode evo exif faac faad ffmpeg flac gdbm gif glamor glvnd gnome-keyring gnome-online-accounts gpm gstreamer gtk gtk3 gtkstyle ico iconv icu ieee1394 introspection ios ipod ipv6 jpeg jpeg2k kde kipi lame libass libguess libmpeg2 libnotify mad matroska mjpeg mmx modules mp3 mpeg mtp mudflap nautilus ncurses networkmanager nls nptl nsplugin ogg opengl openmp openrc-force pam pcre pdf phonon plasma png policykit postproc pppd pulseaudio python qml qt5 quicktime readline resolvconf sdl sdl1 semantic-desktop sndfile sse sse2 ssl startup-notification svg taglib tcpd theora tiff tracker truetype twolame udev udisks unicode v4l vaapi vdpau vorbis vpx vulkan wav wavpack wayland webp widgets win32codecs wmf x264 x265 xa xattr xcomposite xinerama xml xscreensaver xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias authn_core authz_core socache_shmcb unixd" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="efi-64 pc" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" L10N="en_US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="xa xvmc vaapi vdpau fbdev amdgpu gallium-radeonsi osmesa radeon radeonsi swrast vulkan-amdgpu" 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:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, ENV_UNSET, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS

     

     

    + emerge -pqv '=net-libs/webkit-gtk-2.26.2::gnome-kit'

    [ebuild     U ] net-libs/webkit-gtk-2.26.2 [2.24.3] USE="(X) bwrap%* egl geolocation gnome-keyring gstreamer introspection jpeg2k libnotify nsplugin opengl wayland webgl (-aqua) -coverage -doc -gles2 -spell -test (-jit%*)"

     

     

    + /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/build.log

     * Package:    net-libs/webkit-gtk-2.26.2
     * Repository: gnome-kit
     * USE:        X amd64 bwrap egl elibc_glibc geolocation gnome-keyring gstreamer introspection jpeg2k kernel_linux libnotify nsplugin opengl userland_GNU wayland webgl
     * FEATURES:   network-sandbox preserve-libs sandbox userpriv usersandbox
    /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment: line 197: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Unpacking source...
    >>> Unpacking webkitgtk-2.26.2.tar.xz to /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work
    >>> Source unpacked in /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work
    /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment: line 197: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Preparing source in /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2 ...
     * Hardcoded definition(s) removed in CMakeLists.txt:
     *      set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of bu
     * Disabling deprecation warnings ...
     [ ok ]
    >>> Source prepared.
    /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment: line 200: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    >>> Configuring source in /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2 ...
    >>> Working in BUILD_DIR: "/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build"
    cmake -C /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_QUARTZ_TARGET=no -DENABLE_API_TESTS=no -DENABLE_GTKDOC=no -DENABLE_GEOLOCATION=yes -DCMAKE_DISABLE_FIND_PACKAGE_OpenGLES2=ON -DENABLE_GLES2=no -DENABLE_VIDEO=yes -DENABLE_WEB_AUDIO=yes -DENABLE_INTROSPECTION=yes -DUSE_LIBNOTIFY=yes -DUSE_LIBSECRET=yes -DUSE_OPENJPEG=yes -DUSE_WOFF2=ON -DENABLE_BUBBLEWRAP_SANDBOX=yes -DENABLE_PLUGIN_PROCESS_GTK2=yes -DENABLE_SPELLCHECK=no -DENABLE_WAYLAND_TARGET=yes -DENABLE_WEBGL=yes -DCMAKE_DISABLE_FIND_PACKAGE_EGL=OFF -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL=OFF -DENABLE_X11_TARGET=yes -DENABLE_OPENGL=ON -DCMAKE_BUILD_TYPE=Release -DPORT=GTK -DRUBY_EXECUTABLE=/usr/bin/ruby26 -DCMAKE_BUILD_TYPE=Gentoo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build/gentoo_toolchain.cmake  /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2
    loading initial cache file /var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build/gentoo_common_config.cmake
    -- The C compiler identification is GNU 9.2.0
    -- The CXX compiler identification is GNU 9.2.0
    -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc
    -- Check for working C compiler: /usr/bin/x86_64-pc-linux-gnu-gcc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++
    -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- The CMake build type is: Gentoo
    -- Found Perl: /usr/bin/perl (found suitable version "5.28.2", minimum required is "5.10.0") 
    -- Found PerlModules_JSON::PP: TRUE  
    -- Found PerlModules: TRUE  found components:  JSON::PP 
    -- Found PythonInterp: /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/python2.7/bin/python (found suitable version "2.7.15", minimum required is "2.7.0") 
    -- Found Ruby: /usr/bin/ruby26 (found suitable version "2.6.3", minimum required is "1.9") 
    -- Performing Test C_COMPILER_SUPPORTS_-fno-strict-aliasing
    -- Performing Test C_COMPILER_SUPPORTS_-fno-strict-aliasing - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-strict-aliasing
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-strict-aliasing - Success
    -- Performing Test C_COMPILER_SUPPORTS_-fno-exceptions
    -- Performing Test C_COMPILER_SUPPORTS_-fno-exceptions - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-exceptions
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-exceptions - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-rtti
    -- Performing Test CXX_COMPILER_SUPPORTS_-fno-rtti - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wcast-align
    -- Performing Test C_COMPILER_SUPPORTS_-Wcast-align - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wformat-security
    -- Performing Test C_COMPILER_SUPPORTS_-Wformat-security - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wmissing-format-attribute
    -- Performing Test C_COMPILER_SUPPORTS_-Wmissing-format-attribute - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wpointer-arith
    -- Performing Test C_COMPILER_SUPPORTS_-Wpointer-arith - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wundef
    -- Performing Test C_COMPILER_SUPPORTS_-Wundef - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wwrite-strings
    -- Performing Test C_COMPILER_SUPPORTS_-Wwrite-strings - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wcast-align
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wcast-align - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wformat-security
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wformat-security - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wmissing-format-attribute
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wmissing-format-attribute - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wpointer-arith
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wpointer-arith - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wundef
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wundef - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wwrite-strings
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wwrite-strings - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Qunused-arguments
    -- Performing Test C_COMPILER_SUPPORTS_-Qunused-arguments - Failed
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-maybe-uninitialized
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-maybe-uninitialized - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-noexcept-type
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-noexcept-type - Failed
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-parentheses-equality
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-parentheses-equality - Failed
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-psabi
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-psabi - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Qunused-arguments
    -- Performing Test CXX_COMPILER_SUPPORTS_-Qunused-arguments - Failed
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-maybe-uninitialized
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-maybe-uninitialized - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-noexcept-type
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-noexcept-type - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-parentheses-equality
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-parentheses-equality - Failed
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-psabi
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-psabi - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-expansion-to-defined
    -- Performing Test C_COMPILER_SUPPORTS_-Wno-expansion-to-defined - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-expansion-to-defined
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wno-expansion-to-defined - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wall
    -- Performing Test C_COMPILER_SUPPORTS_-Wall - Success
    -- Performing Test C_COMPILER_SUPPORTS_-Wextra
    -- Performing Test C_COMPILER_SUPPORTS_-Wextra - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wall
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wall - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wextra
    -- Performing Test CXX_COMPILER_SUPPORTS_-Wextra - Success
    -- Performing Test C_COMPILER_SUPPORTS_-fcolor-diagnostics
    -- Performing Test C_COMPILER_SUPPORTS_-fcolor-diagnostics - Failed
    -- Performing Test C_COMPILER_SUPPORTS_-fdiagnostics-color=always
    -- Performing Test C_COMPILER_SUPPORTS_-fdiagnostics-color=always - Success
    -- Performing Test CXX_COMPILER_SUPPORTS_-fcolor-diagnostics
    -- Performing Test CXX_COMPILER_SUPPORTS_-fcolor-diagnostics - Failed
    -- Performing Test CXX_COMPILER_SUPPORTS_-fdiagnostics-color=always
    -- Performing Test CXX_COMPILER_SUPPORTS_-fdiagnostics-color=always - Success
    -- Performing Test ATOMIC_INT64_IS_BUILTIN
    -- Performing Test ATOMIC_INT64_IS_BUILTIN - Success
    -- Looking for features.h
    -- Looking for features.h - found
    -- Looking for errno.h
    -- Looking for errno.h - found
    -- Looking for langinfo.h
    -- Looking for langinfo.h - found
    -- Looking for sys/mman.h
    -- Looking for sys/mman.h - found
    -- Looking for pthread_np.h
    -- Looking for pthread_np.h - not found
    -- Looking for strings.h
    -- Looking for strings.h - found
    -- Looking for sys/param.h
    -- Looking for sys/param.h - found
    -- Looking for sys/time.h
    -- Looking for sys/time.h - found
    -- Looking for sys/timeb.h
    -- Looking for sys/timeb.h - found
    -- Looking for linux/memfd.h
    -- Looking for linux/memfd.h - found
    -- Looking for _aligned_malloc
    -- Looking for _aligned_malloc - not found
    -- Looking for IsDebuggerPresent
    -- Looking for IsDebuggerPresent - not found
    -- Looking for localtime_r
    -- Looking for localtime_r - found
    -- Looking for malloc_trim
    -- Looking for malloc_trim - found
    -- Looking for strnstr
    -- Looking for strnstr - not found
    -- Looking for timegm
    -- Looking for timegm - found
    -- Looking for vasprintf
    -- Looking for vasprintf - found
    -- Looking for regexec
    -- Looking for regexec - found
    -- Looking for pthread_main_np
    -- Looking for pthread_main_np - not found
    -- Looking for SIGTRAP
    -- Looking for SIGTRAP - found
    -- Performing Test HAVE_STAT_BIRTHTIME_value
    -- Performing Test HAVE_STAT_BIRTHTIME_value - Failed
    -- Performing Test HAVE_TM_GMTOFF_value
    -- Performing Test HAVE_TM_GMTOFF_value - Success
    -- Performing Test HAVE_TM_ZONE_value
    -- Performing Test HAVE_TM_ZONE_value - Success
    -- Looking for sys/types.h
    -- Looking for sys/types.h - found
    -- Looking for stdint.h
    -- Looking for stdint.h - found
    -- Looking for stddef.h
    -- Looking for stddef.h - found
    -- Check size of __int128_t
    -- Check size of __int128_t - done
    -- Found PkgConfig: x86_64-pc-linux-gnu-pkg-config (found version "1.5.4") 
    -- Found Cairo: /usr/include/cairo (found suitable version "1.16.0", minimum required is "1.14.0") 
    -- Checking for module 'fontconfig'
    --   Found fontconfig, version 2.13.0
    -- Found Fontconfig: /usr/lib/libfontconfig.so (Required is at least version "2.8.0") 
    -- Found Freetype: /usr/lib/libfreetype.so (found suitable version "2.9.1", minimum required is "2.4.2") 
    -- Found LibGcrypt: /usr/lib/libgcrypt.so (found suitable version "1.8.4", minimum required is "1.6.0") 
    -- Found GLIB: /usr/include/glib-2.0;/usr/lib64/glib-2.0/include (found suitable version "2.62.2", minimum required is "2.44.0") 
    -- Checking for module 'gtk+-3.0'
    --   Found gtk+-3.0, version 3.24.12
    -- Checking for module 'gtk+-quartz-3.0'
    --   Package 'gtk+-quartz-3.0', required by 'virtual:world', not found
    -- Checking for module 'gtk+-x11-3.0'
    --   Found gtk+-x11-3.0, version 3.24.12
    -- Checking for module 'gtk+-wayland-3.0'
    --   Found gtk+-wayland-3.0, version 3.24.12
    -- Found GTK3: /usr/include/gtk-3.0;/usr/include/pango-1.0;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include;/usr/include/harfbuzz;/usr/include/fribidi;/usr/include/freetype2;/usr/include/uuid;/usr/include/cairo;/usr/include/pixman-1;/usr/include/libpng16;/usr/include/gdk-pixbuf-2.0;/usr/include/libmount;/usr/include/blkid;/usr/include/gio-unix-2.0;/usr/include/atk-1.0;/usr/include/at-spi2-atk/2.0;/usr/include/at-spi-2.0;/usr/include/dbus-1.0;/usr/lib64/dbus-1.0/include (Required is at least version "3.22.0") 
    -- Checking for module 'gdk-3.0'
    --   Found gdk-3.0, version 3.24.12
    -- Found GDK3: /usr/include/gtk-3.0;/usr/include/pango-1.0;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include;/usr/include/harfbuzz;/usr/include/fribidi;/usr/include/freetype2;/usr/include/uuid;/usr/include/cairo;/usr/include/pixman-1;/usr/include/libpng16;/usr/include/gdk-pixbuf-2.0;/usr/include/libmount;/usr/include/blkid;/usr/include/gio-unix-2.0 (Required is at least version "3.22.0") 
    -- Found Harfbuzz: /usr/include/harfbuzz (found version "2.5.3") 
    -- Found the following ICU libraries:
    --   data (required)
    --   i18n (required)
    --   uc (required)
    -- Found ICU: /usr/include (found version "64.2") 
    -- Found JPEG: /usr/lib/libjpeg.so (found version "62") 
    -- Found LibSoup: /usr/include/libsoup-2.4 (found suitable version "2.68.2", minimum required is "2.54.0") 
    -- Found LibXml2: /usr/lib64/libxml2.so (found suitable version "2.9.9", minimum required is "2.8.0") 
    -- Found ZLIB: /usr/lib/libz.so (found version "1.2.11") 
    -- Found PNG: /usr/lib/libpng.so (found version "1.6.37+apng") 
    -- Checking for module 'sqlite3'
    --   Found sqlite3, version 3.28.0
    -- Found Sqlite: /usr/include  
    -- Looking for pthread.h
    -- Looking for pthread.h - found
    -- Looking for pthread_create
    -- Looking for pthread_create - not found
    -- Looking for pthread_create in pthreads
    -- Looking for pthread_create in pthreads - not found
    -- Looking for pthread_create in pthread
    -- Looking for pthread_create in pthread - found
    -- Found Threads: TRUE  
    -- Checking for module 'atk'
    --   Found atk, version 2.35.1
    -- Found ATK: /usr/include/atk-1.0 (found suitable version "2.35.1", minimum required is "2.16.0") 
    -- Found WebP: /usr/include;/usr/include  
    -- Checking for module 'atspi-2'
    --   Found atspi-2, version 2.34.0
    -- Found ATSPI: /usr/include/at-spi-2.0;/usr/include/dbus-1.0;/usr/lib64/dbus-1.0/include;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include (Required is at least version "2.5.3") 
    -- Checking for module 'egl'
    --   Found egl, version 1.5
    -- Found EGL: /usr/include  
    -- Checking for module 'gtk+-unix-print-3.0'
    --   Found gtk+-unix-print-3.0, version 3.24.12
    -- Found GTKUnixPrint: /usr/include/gtk-3.0/unix-print;/usr/include/gtk-3.0;/usr/include/pango-1.0;/usr/include/glib-2.0;/usr/lib64/glib-2.0/include;/usr/lib64/libffi-3.3_rc0/include;/usr/include/harfbuzz;/usr/include/fribidi;/usr/include/freetype2;/usr/include/uuid;/usr/include/cairo;/usr/include/pixman-1;/usr/include/libpng16;/usr/include/gdk-pixbuf-2.0;/usr/include/libmount;/usr/include/blkid;/usr/include/gio-unix-2.0;/usr/include/atk-1.0;/usr/include/at-spi2-atk/2.0;/usr/include/at-spi-2.0;/usr/include/dbus-1.0;/usr/lib64/dbus-1.0/include  
    -- Checking for module 'gl'
    --   Found gl, version 1.2
    -- Found OpenGL: /usr/include  
    -- Looking for include file GL/glx.h
    -- Looking for include file GL/glx.h - found
    -- Could NOT find WPE (missing: WPE_INCLUDE_DIRS WPE_LIBRARIES) (Required is at least version "1.3.0")
    CMake Error at Source/cmake/OptionsGTK.cmake:203 (message):
      libwpe is required for USE_WPE_RENDERER
    Call Stack (most recent call first):
      Source/cmake/WebKitCommon.cmake:56 (include)
      CMakeLists.txt:169 (include)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build/CMakeFiles/CMakeOutput.log".
    See also "/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build/CMakeFiles/CMakeError.log".
     * ERROR: net-libs/webkit-gtk-2.26.2::gnome-kit failed (configure phase):
     *   cmake failed
     * 
     * Call stack:
     *     ebuild.sh, line   93:  Called src_configure
     *   environment, line 5008:  Called cmake-utils_src_configure
     *   environment, line 1613:  Called die
     * The specific snippet of code:
     *       "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
     * 
     * If you need support, post the output of `emerge --info '=net-libs/webkit-gtk-2.26.2::gnome-kit'`,
     * the complete build log and the output of `emerge -pqv '=net-libs/webkit-gtk-2.26.2::gnome-kit'`.
     * The complete build log is located at '/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment'.
     * Working directory: '/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkit-gtk-2.26.2_build'
     * S: '/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2'
    /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment: line 200: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)

     

     

    + /var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/environment

    declare -x ABI="amd64"
    declare -x ABI_MIPS=""
    declare -x ABI_PPC=""
    declare -x ABI_S390=""
    declare -x ABI_X86=""
    declare -x ALSA_CARDS=""
    declare -x ALSA_PCM_PLUGINS=""
    declare -x APACHE2_MODULES=""
    declare -x APACHE2_MPMS=""
    declare -x ARCH="amd64"
    declare -x ASFLAGS_x86="--32"
    declare BDEPEND="dev-util/ninja >=dev-util/cmake-3.9.6"
    declare -x CALLIGRA_EXPERIMENTAL_FEATURES=""
    declare -x CALLIGRA_FEATURES=""
    declare -x CAMERAS=""
    declare -x CBUILD="x86_64-pc-linux-gnu"
    declare -x CDEFINE_amd64="__x86_64__"
    declare -x CDEFINE_x86="__i386__"
    declare -x CFLAGS="-march=nehalem -O2 -pipe"
    declare -x CFLAGS_default
    declare -x CFLAGS_x86="-m32"
    declare -- CHECKREQS_DISK_BUILD="18G"
    declare -x CHOST="x86_64-pc-linux-gnu"
    declare -x CHOST_amd64="x86_64-pc-linux-gnu"
    declare -x CHOST_default="x86_64-pc-linux-gnu"
    declare -x CHOST_x86="i686-pc-linux-gnu"
    declare -- CMAKE_BINARY="cmake"
    declare -- CMAKE_BUILD_TYPE="Gentoo"
    declare -- CMAKE_MAKEFILE_GENERATOR="ninja"
    declare -- CMAKE_MIN_VERSION="3.9.6"
    declare -- CMAKE_REMOVE_MODULES="yes"
    declare -- CMAKE_REMOVE_MODULES_LIST="FindBLAS FindLAPACK"
    declare -- CMAKE_USE_DIR="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2"
    declare -- CMAKE_VERBOSE="ON"
    declare -- CMAKE_WARN_UNUSED_CLI="yes"
    declare -x COLLECTD_PLUGINS=""
    declare -x COLORFGBG="15;0"
    declare -x CPU_FLAGS_ARM=""
    declare -x CPU_FLAGS_X86=""
    declare -x CROSSCOMPILE_OPTS=""
    declare -x CTARGET_default="x86_64-pc-linux-gnu"
    declare -x CURL_SSL=""
    declare -x CXXFLAGS="-march=nehalem -O2 -pipe"
    declare -x DEFAULT_ABI="amd64"
    declare -x DEFINED_PHASES=" compile configure install postinst postrm preinst prepare pretend setup test"
    declare DEPEND="
    	>=x11-libs/cairo-1.16.0:=[X?]
    	>=media-libs/fontconfig-2.13.0:1.0
    	>=media-libs/freetype-2.9.0:2
    	>=dev-libs/libgcrypt-1.7.0:0=
    	>=x11-libs/gtk+-3.22:3[aqua?,introspection?,wayland?,X?]
    	>=media-libs/harfbuzz-1.4.2:=[icu(+)]
    	>=dev-libs/icu-3.8.1-r1:=
    	virtual/jpeg:0=
    	>=net-libs/libsoup-2.48:2.4[introspection?]
    	>=dev-libs/libxml2-2.8.0:2
    	>=media-libs/libpng-1.4:0=
    	dev-db/sqlite:3=
    	sys-libs/zlib:0
    	>=dev-libs/atk-2.8.0
    	media-libs/libwebp:=
    
    	>=dev-libs/glib-2.40:2
    	>=dev-libs/libxslt-1.1.7
    	media-libs/woff2
    	bwrap? ( >=sys-apps/bubblewrap-0.3.1:0 )
    	gnome-keyring? ( app-crypt/libsecret )
    	geolocation? ( >=app-misc/geoclue-2.1.5:2.0 )
    	introspection? ( >=dev-libs/gobject-introspection-1.32.0:= )
    	dev-libs/libtasn1:=
    	nsplugin? ( >=x11-libs/gtk+-2.24.10:2 )
    	spell? ( >=app-text/enchant-0.22:= )
    	gstreamer? (
    		>=media-libs/gstreamer-1.14:1.0
    		>=media-libs/gst-plugins-base-1.14:1.0[egl?,gles2?,opengl?]
    		>=media-plugins/gst-plugins-opus-1.14.4-r1:1.0
    		>=media-libs/gst-plugins-bad-1.14:1.0 )
    
    	X? (
    		x11-libs/libX11
    		x11-libs/libXcomposite
    		x11-libs/libXdamage
    		x11-libs/libXrender
    		x11-libs/libXt )
    
    	libnotify? ( x11-libs/libnotify )
    	dev-libs/hyphen
    	jpeg2k? ( >=media-libs/openjpeg-2.2.0:2= )
    
    	egl? ( media-libs/mesa[egl] )
    	gles2? ( media-libs/mesa[gles2] )
    	opengl? ( virtual/opengl )
    	webgl? (
    		x11-libs/libXcomposite
    		x11-libs/libXdamage )
    
    	|| ( dev-lang/python:3.7 dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 )
    	|| (  dev-lang/ruby:2.4 dev-lang/ruby:2.5 dev-lang/ruby:2.6 ) virtual/rubygems
    	dev-util/xdg-dbus-proxy
    	>=app-accessibility/at-spi2-core-2.5.3
    	dev-util/glib-utils
    	>=dev-util/gtk-doc-am-1.10
    	>=dev-util/gperf-3.0.1
    	>=sys-devel/bison-2.4.3
    	|| ( >=sys-devel/gcc-6.0 >=sys-devel/clang-3.3 )
    	sys-devel/gettext
    	virtual/pkgconfig
    
    	>=dev-lang/perl-5.10
    	virtual/perl-Data-Dumper
    	virtual/perl-Carp
    	virtual/perl-JSON-PP
    
    	doc? ( >=dev-util/gtk-doc-1.10 )
    	geolocation? ( dev-util/gdbus-codegen )
      dev-util/ninja >=dev-util/cmake-3.9.6 >=app-portage/elt-patches-20170815 app-arch/xz-utils 
    	dev-util/desktop-file-utils
    	x11-misc/shared-mime-info
     test? ( 
    	!prefix? ( x11-base/xorg-server[xvfb] )
    	x11-apps/xhost
     )"
    declare DESCRIPTION="Open source web browser engine"
    declare -- DESKTOP_DATABASE_DIR="/usr/share/applications"
    declare -x DESKTOP_SESSION="/usr/share/xsessions/plasma"
    declare -x DESTTREE="/usr"
    declare -x DIROPTIONS="-m0755"
    declare -x DVB_CARDS=""
    declare -x EAPI="6"
    declare -x ELIBC="glibc"
    declare -- ELTCONF=""
    declare -x ENLIGHTENMENT_MODULES=""
    declare -- EPATCH_COMMON_OPTS="-g0 -E --no-backup-if-mismatch"
    declare -- EPATCH_EXCLUDE=""
    declare -- EPATCH_FORCE="no"
    declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..."
    declare -- EPATCH_OPTS=""
    declare -- EPATCH_SINGLE_MSG=""
    declare -- EPATCH_SOURCE="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/patch"
    declare -- EPATCH_SUFFIX="patch.bz2"
    declare -- EPOCHREALTIME="1574622602.796167"
    declare -- EPOCHSECONDS="1574622602"
    declare -x EPYTHON="python2.7"
    declare -x EXEOPTIONS="-m0755"
    declare -x FCDSL_CARDS=""
    declare -x FCFLAGS="-march=nehalem -O2 -pipe"
    declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
    declare -x FFLAGS="-march=nehalem -O2 -pipe"
    declare -x FFTOOLS=""
    declare -x FLATPAK_USER_DIR="/root/MO/L/app/sandbox/flatpak"
    declare -x FOO2ZJS_DEVICES=""
    declare -x FRITZCAPI_CARDS=""
    declare -x GCC_SPECS=""
    declare -- GCONFTOOL_BIN="/usr/bin/gconftool-2"
    declare -- GLIB_COMPILE_SCHEMAS="/usr/bin/glib-compile-schemas"
    declare -- GNOME2_EAUTORECONF=""
    declare -- GNOME2_LA_PUNT=""
    declare -- GNOME_ORG_MODULE="webkit-gtk"
    declare -- GNOME_ORG_PVP="2.26"
    declare -- GNOME_TARBALL_SUFFIX="xz"
    declare -x GPSD_PROTOCOLS=""
    declare -x GRUB_PLATFORMS=""
    declare -x GSETTINGS_BACKEND="memory"
    declare -x GST_INSPECT="/bin/true"
    declare -x GST_REGISTRY="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/registry.xml"
    declare -x GS_LIB="/home/nabawe/.fonts"
    declare -x GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/nabawe/.gtkrc-2.0:/home/nabawe/.config/gtkrc-2.0"
    declare -x GTK_MODULES="canberra-gtk-module"
    declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/nabawe/.gtkrc:/home/nabawe/.config/gtkrc"
    declare -x G_HOME="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp"
    declare HDEPEND=""
    declare HOMEPAGE="https://www.webkitgtk.org"
    declare -x INHERITED=" check-reqs toolchain-funcs multilib multiprocessing ninja-utils desktop epatch estack ltprune preserve-libs vcs-clean eutils flag-o-matic xdg-utils cmake-utils libtool eapi7-ver versionator gnome.org gnome2-utils xdg gnome2 pax-utils python-utils-r1 python-any-r1 ruby-utils ruby-single virtualx"
    declare -x INPUT_DEVICES=""
    declare -x INSDESTTREE=""
    declare -x INSOPTIONS="-m0644"
    declare IUSE="aqua +bwrap coverage doc +egl +geolocation gles2 gnome-keyring +gstreamer +introspection +jpeg2k libnotify nsplugin +opengl spell wayland +webgl +X test"
    declare -x IUSE_EFFECTIVE="X alpha amd64 amd64-fbsd amd64-linux aqua arm arm-linux arm64 bwrap coverage doc egl elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc geolocation gles2 gnome-keyring gstreamer hppa ia64 introspection jpeg2k kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux libnotify m68k m68k-mint mips nios2 nsplugin opengl ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-chain prefix-guest riscv s390 sh sparc sparc-fbsd sparc-solaris sparc64-solaris spell test userland_BSD userland_GNU wayland webgl x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt"
    declare -x IUSE_IMPLICIT="prefix prefix-chain prefix-guest"
    declare -x KDE_FULL_SESSION="true"
    declare -x KDE_SESSION_UID="1000"
    declare -x KDE_SESSION_VERSION="5"
    declare -x KERNEL="linux"
    declare -x KERNEL_ABI="amd64"
    declare -x KEYWORDS="*"
    declare -x KONSOLE_DBUS_SERVICE=":1.24"
    declare -x KONSOLE_DBUS_SESSION="/Sessions/2"
    declare -x KONSOLE_PROFILE_NAME="Default"
    declare -x KONSOLE_VERSION="190402"
    declare -x L10N=""
    declare -x LADSPA_PATH="/usr/lib64/ladspa"
    declare -x LANG="en_US.UTF-8"
    declare -x LANGUAGE="en_US"
    declare -x LCD_DEVICES=""
    declare -x LC_COLLATE="C"
    declare -x LC_MEASUREMENT="C"
    declare -x LC_MESSAGES="C"
    declare -x LC_MONETARY="C"
    declare -x LC_NUMERIC="C"
    declare -x LC_TIME="en_GB.UTF-8"
    declare -x LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    declare -x LDFLAGS_default
    declare -x LDFLAGS_x86="-m elf_i386"
    declare -x LIBDIR_amd64="lib64"
    declare -x LIBDIR_amd64_fbsd="lib64"
    declare -x LIBDIR_default="lib"
    declare -x LIBDIR_ppc="lib32"
    declare -x LIBDIR_ppc64="lib64"
    declare -x LIBDIR_sparc32="lib32"
    declare -x LIBDIR_sparc64="lib64"
    declare -x LIBDIR_x86="lib32"
    declare -x LIBDIR_x86_fbsd="lib32"
    declare -x LIBOPTIONS="-m0644"
    declare -x LIBREOFFICE_EXTENSIONS=""
    declare -x LICENSE="LGPL-2+ BSD"
    declare -x LINGUAS="en_US"
    declare -x LIRC_DEVICES=""
    declare -x LLVM_TARGETS=""
    declare -x MAIL="/var/mail/nabawe"
    declare -x MAKEOPTS="-j8"
    declare -x MANPAGER="manpager"
    declare -- MIMEINFO_DATABASE_DIR="/usr/share/mime"
    declare -x MISDN_CARDS=""
    declare -x MONKEYD_PLUGINS=""
    declare -x MULTILIB_ABIS="amd64"
    declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
    declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
    declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)"
    declare -- MY_P="webkitgtk-2.26.2"
    declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
    declare -x NETBEANS_MODULES=""
    declare -x NGINX_MODULES_EXTERNAL=""
    declare -x NGINX_MODULES_HTTP=""
    declare -x NGINX_MODULES_MAIL=""
    declare -x NGINX_MODULES_STREAM=""
    declare -x OFED_DRIVERS=""
    declare -x OFFICE_IMPLEMENTATION=""
    declare -x OPENGL_PROFILE="xorg-x11"
    declare -x OPENMPI_FABRICS=""
    declare -x OPENMPI_OFED_FEATURES=""
    declare -x OPENMPI_RM=""
    declare -x OSS_CARDS=""
    declare -x PAM_KWALLET5_LOGIN="/run/user/1000/kwallet5.socket"
    declare -x PATH="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/python2.7/bin:/usr/lib/portage/python2.7/ebuild-helpers/xattr:/usr/lib/portage/python2.7/ebuild-helpers:/usr/lib/llvm/8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin"
    declare -- PAX_MARKINGS="none"
    declare PDEPEND=""
    declare -x PHP_TARGETS=""
    declare -x PKG_CONFIG_PATH="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/python2.7/pkgconfig"
    declare -x PORTAGE_COMPRESSION_COMMAND="bzip2"
    declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")
    declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128"
    declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/webkit-gtk-2.26.2/html")
    declare -a PORTAGE_DOSTRIP=([0]="/")
    declare -a PORTAGE_DOSTRIP_SKIP=()
    declare -x POSTGRES_TARGETS=""
    declare -x PROFILEHOME=""
    declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND"
    declare -x PROPERTIES=""
    declare -x PYTHON="/usr/bin/python2.7"
    declare -x PYTHONDONTWRITEBYTECODE="1"
    declare -a PYTHON_COMPAT=([0]="python2_7" [1]="python3_5" [2]="python3_6" [3]="python3_7")
    declare -- PYTHON_DEPS="|| ( dev-lang/python:3.7 dev-lang/python:3.6 dev-lang/python:3.5 >=dev-lang/python-2.7.5-r2:2.7 )"
    declare -x PYTHON_SINGLE_TARGET=""
    declare -x PYTHON_TARGETS=""
    declare -x QEMU_SOFTMMU_TARGETS=""
    declare -x QEMU_USER_TARGETS=""
    declare -x QT_AUTO_SCREEN_SCALE_FACTOR="0"
    declare RDEPEND="
    	>=x11-libs/cairo-1.16.0:=[X?]
    	>=media-libs/fontconfig-2.13.0:1.0
    	>=media-libs/freetype-2.9.0:2
    	>=dev-libs/libgcrypt-1.7.0:0=
    	>=x11-libs/gtk+-3.22:3[aqua?,introspection?,wayland?,X?]
    	>=media-libs/harfbuzz-1.4.2:=[icu(+)]
    	>=dev-libs/icu-3.8.1-r1:=
    	virtual/jpeg:0=
    	>=net-libs/libsoup-2.48:2.4[introspection?]
    	>=dev-libs/libxml2-2.8.0:2
    	>=media-libs/libpng-1.4:0=
    	dev-db/sqlite:3=
    	sys-libs/zlib:0
    	>=dev-libs/atk-2.8.0
    	media-libs/libwebp:=
    
    	>=dev-libs/glib-2.40:2
    	>=dev-libs/libxslt-1.1.7
    	media-libs/woff2
    	bwrap? ( >=sys-apps/bubblewrap-0.3.1:0 )
    	gnome-keyring? ( app-crypt/libsecret )
    	geolocation? ( >=app-misc/geoclue-2.1.5:2.0 )
    	introspection? ( >=dev-libs/gobject-introspection-1.32.0:= )
    	dev-libs/libtasn1:=
    	nsplugin? ( >=x11-libs/gtk+-2.24.10:2 )
    	spell? ( >=app-text/enchant-0.22:= )
    	gstreamer? (
    		>=media-libs/gstreamer-1.14:1.0
    		>=media-libs/gst-plugins-base-1.14:1.0[egl?,gles2?,opengl?]
    		>=media-plugins/gst-plugins-opus-1.14.4-r1:1.0
    		>=media-libs/gst-plugins-bad-1.14:1.0 )
    
    	X? (
    		x11-libs/libX11
    		x11-libs/libXcomposite
    		x11-libs/libXdamage
    		x11-libs/libXrender
    		x11-libs/libXt )
    
    	libnotify? ( x11-libs/libnotify )
    	dev-libs/hyphen
    	jpeg2k? ( >=media-libs/openjpeg-2.2.0:2= )
    
    	egl? ( media-libs/mesa[egl] )
    	gles2? ( media-libs/mesa[gles2] )
    	opengl? ( virtual/opengl )
    	webgl? (
    		x11-libs/libXcomposite
    		x11-libs/libXdamage )
     "
    declare REPOSITORY
    declare REQUIRED_USE="
    	geolocation? ( introspection )
    	gles2? ( egl !opengl )
    	gstreamer? ( opengl? ( egl ) )
    	nsplugin? ( X )
    	webgl? ( gstreamer
    		|| ( gles2 opengl ) )
    	wayland? ( egl )
    	|| ( aqua wayland X )
     "
    declare -x RESTRICT="test userpriv"
    declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
    declare -x ROS_MESSAGES=""
    declare -- RUBY_DEPS="|| (  dev-lang/ruby:2.4 dev-lang/ruby:2.5 dev-lang/ruby:2.6 ) virtual/rubygems"
    declare -x RUBY_TARGETS=""
    declare -- RUBY_TARGETS_PREFERENCE="ruby24 ruby23 ruby25 ruby26"
    declare -x S="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/work/webkitgtk-2.26.2"
    declare -x SANDBOX_DEBUG="0"
    declare -x SANDBOX_DENY=""
    declare -x SANDBOX_PREDICT="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/homedir:/dev/crypto:/var/cache/man:/var/cache/fontconfig"
    declare -x SANDBOX_READ="/:/var/tmp/portage"
    declare -x SANDBOX_VERBOSE="1"
    declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp/:/var/tmp/portage:/var/tmp/portage/net-libs/webkit-gtk-2.26.2/homedir/.bash_history"
    declare -x SANE_BACKENDS=""
    declare -- SCROLLKEEPER_DIR="/var/lib/scrollkeeper"
    declare -- SCROLLKEEPER_UPDATE_BIN="/usr/bin/scrollkeeper-update"
    declare -x SESSION_MANAGER="local/einm:@/tmp/.ICE-unix/5308,unix/einm:/tmp/.ICE-unix/5308"
    declare -x SHELL="/bin/bash"
    declare -x SHELL_SESSION_ID="afe185a1887d44cfa38f1652385ea049"
    declare -x SLOT="4/37"
    declare SRC_URI="https://www.webkitgtk.org/releases/webkitgtk-2.26.2.tar.xz"
    declare -x SSH_ASKPASS="/usr/bin/ksshaskpass"
    declare -x STAGE1_USE="multilib nptl nptlonly unicode"
    declare -x SYMLINK_LIB="yes"
    declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1"
    declare -x USE="X amd64 bwrap egl elibc_glibc geolocation gnome-keyring gstreamer introspection jpeg2k kernel_linux libnotify nsplugin opengl userland_GNU wayland webgl"
    declare -x USERLAND="GNU"
    declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND"
    declare -x USE_EXPAND_UNPREFIXED="ARCH"
    declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 hppa ia64 m68k m68k-mint mips nios2 ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-fbsd sparc-solaris x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt"
    declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt"
    declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt"
    declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU"
    declare -- USE_RUBY="ruby24 ruby25 ruby26"
    declare -x UWSGI_PLUGINS=""
    declare -x VIDEO_CARDS=""
    declare -- VIRTUALX_COMMAND="emake"
    declare -- VIRTUALX_DEPEND="
    	!prefix? ( x11-base/xorg-server[xvfb] )
    	x11-apps/xhost
    "
    declare -- VIRTUALX_REQUIRED="test"
    declare -x VOICEMAIL_STORAGE=""
    declare -x WINDOWID="50331655"
    declare -x XCURSOR_THEME="breeze_cursors"
    declare -x XDG_CACHE_HOME="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/homedir/.cache"
    declare -x XDG_CONFIG_DIRS="/etc/xdg"
    declare -x XDG_CONFIG_HOME="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/homedir/.config"
    declare -x XDG_CURRENT_DESKTOP="KDE"
    declare -x XDG_DATA_DIRS="/home/nabawe/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share"
    declare -x XDG_DATA_HOME="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/homedir/.local/share"
    declare -x XDG_RUNTIME_DIR="/var/tmp/portage/net-libs/webkit-gtk-2.26.2/temp/run"
    declare -x XDG_SEAT="seat0"
    declare -x XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0"
    declare -x XDG_SESSION_CLASS="user"
    declare -x XDG_SESSION_COOKIE="einm-1574622109.789813-1667262517"
    declare -x XDG_SESSION_DESKTOP="KDE"
    declare -x XDG_SESSION_ID="1"
    declare -x XDG_SESSION_PATH="/org/freedesktop/DisplayManager/Session0"
    declare -x XDG_SESSION_TYPE="x11"
    declare -x XDG_VTNR="7"
    declare -x XFCE_PLUGINS=""
    declare -x XTABLES_ADDONS=""
    declare -- _CHECK_REQS_ECLASS_="1"
    declare -- _CMAKE_UTILS_ECLASS="1"
    declare -- _CMAKE_UTILS_SRC_PREPARE_HAS_RUN="1"
    declare -- _DESKTOP_ECLASS="1"
    declare -- _EPATCH_ECLASS="1"
    declare -- _ESTACK_ECLASS="1"
    declare -- _EUTILS_ECLASS="1"
    declare -x _E_DOCDESTTREE_=""
    declare -x _E_EXEDESTTREE_=""
    declare -- _FLAG_O_MATIC_ECLASS="1"
    declare -- _LIBTOOL_ECLASS="1"
    declare -- _LTPRUNE_ECLASS="1"
    declare -- _MULTILIB_ECLASS="1"
    declare -- _MULTIPROCESSING_ECLASS="1"
    declare -- _NINJA_UTILS_ECLASS="1"
    declare -- _PAX_UTILS_ECLASS="1"
    declare -- _PRESERVE_LIBS_ECLASS="1"
    declare -a _PYTHON_ALL_IMPLS=([0]="jython2_7" [1]="pypy" [2]="pypy3" [3]="python2_7" [4]="python3_5" [5]="python3_6" [6]="python3_7")
    declare -- _PYTHON_ANY_R1="1"
    declare -a _PYTHON_SUPPORTED_IMPLS=([0]="python2_7" [1]="python3_5" [2]="python3_6" [3]="python3_7")
    declare -a _PYTHON_UNSUPPORTED_IMPLS=([0]="jython2_7" [1]="pypy" [2]="pypy3")
    declare -- _PYTHON_UTILS_R1="1"
    declare -- _RUBY_SINGLE="1"
    declare -- _RUBY_UTILS="1"
    declare -- _TOOLCHAIN_FUNCS_ECLASS="1"
    declare -- _VERSIONATOR_ECLASS="1"
    declare -- _VIRTUAL_X="1"
    declare -- conf="webkit-gtk-2.26.2-r0"
    PYTHON () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#.24.28PYTHON.29.2C_.24.7BEPYTHON.7D"
    }
    Xeconf () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx econf ....'";
        VIRTUALX_COMMAND="econf" virtualmake "$@"
    }
    Xemake () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx emake ....'";
        VIRTUALX_COMMAND="emake" virtualmake "$@"
    }
    Xmake () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx emake -j1 ....'";
        eqawarn "you should not execute make directly";
        eqawarn "rather execute Xemake -j1 if you have issues with parallel make";
        VIRTUALX_COMMAND="emake -j1" virtualmake "$@"
    }
    __eapi6_src_install () 
    { 
        if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
            emake DESTDIR="${D}" install;
        fi;
        einstalldocs
    }
    __eapi6_src_prepare () 
    { 
        if ___is_indexed_array_var PATCHES; then
            [[ ${#PATCHES[@]} -gt 0 ]] && eapply "${PATCHES[@]}";
        else
            if [[ -n ${PATCHES} ]]; then
                eapply ${PATCHES};
            fi;
        fi;
        eapply_user
    }
    _clang_fullversion () 
    { 
        local ver="$1";
        shift;
        set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__");
        eval echo "$ver"
    }
    _cmake_check_build_dir () 
    { 
        : ${CMAKE_USE_DIR:=${S}};
        if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
            BUILD_DIR="${CMAKE_USE_DIR}";
        else
            if [[ ! -n ${BUILD_DIR} && -n ${CMAKE_BUILD_DIR} ]]; then
                if [[ ${EAPI} != [56] ]]; then
                    eerror "The CMAKE_BUILD_DIR variable has been renamed to BUILD_DIR.";
                    die "The ebuild must be migrated to BUILD_DIR.";
                else
                    eqawarn "The CMAKE_BUILD_DIR variable has been renamed to BUILD_DIR.";
                    eqawarn "Please migrate the ebuild to use the new one.";
                fi;
                _RESPECT_CMAKE_BUILD_DIR=1;
            fi;
            if [[ -n ${_RESPECT_CMAKE_BUILD_DIR} ]]; then
                BUILD_DIR=${CMAKE_BUILD_DIR:-${WORKDIR}/${P}_build};
            else
                : ${BUILD_DIR:=${WORKDIR}/${P}_build};
            fi;
        fi;
        [[ ${EAPI} == [56] ]] && CMAKE_BUILD_DIR=${BUILD_DIR};
        mkdir -p "${BUILD_DIR}" || die;
        echo ">>> Working in BUILD_DIR: \"$BUILD_DIR\""
    }
    _cmake_cleanup_cmake () 
    { 
        : ${CMAKE_USE_DIR:=${S}};
        if [[ "${CMAKE_REMOVE_MODULES}" == "yes" ]]; then
            local name;
            for name in ${CMAKE_REMOVE_MODULES_LIST};
            do
                find "${S}" -name ${name}.cmake -exec rm -v {} + || die;
            done;
        fi;
        if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]]; then
            eerror "Unable to locate CMakeLists.txt under:";
            eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"";
            eerror "Consider not inheriting the cmake eclass.";
            die "FATAL: Unable to find CMakeLists.txt";
        fi;
        _cmake_modify-cmakelists
    }
    _cmake_emake_src_make () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -e Makefile ]] || die "Makefile not found. Error during configure stage.";
        if [[ "${CMAKE_VERBOSE}" != "OFF" ]]; then
            emake VERBOSE=1 "$@" || die;
        else
            emake "$@" || die;
        fi
    }
    _cmake_generator_to_use () 
    { 
        local generator_name;
        case ${CMAKE_MAKEFILE_GENERATOR} in 
            ninja)
                case ${EAPI} in 
                    5 | 6)
                        if ! ROOT=/ has_version dev-util/ninja; then
                            die "CMAKE_MAKEFILE_GENERATOR is set to ninja, but ninja is not installed. Please install dev-util/ninja or unset CMAKE_MAKEFILE_GENERATOR.";
                        fi
                    ;;
                    *)
                        if ! has_version -b dev-util/ninja; then
                            die "CMAKE_MAKEFILE_GENERATOR is set to ninja, but ninja is not installed. Please install dev-util/ninja or unset CMAKE_MAKEFILE_GENERATOR.";
                        fi
                    ;;
                esac;
                generator_name="Ninja"
            ;;
            emake)
                generator_name="Unix Makefiles"
            ;;
            *)
                eerror "Unknown value for \${CMAKE_MAKEFILE_GENERATOR}";
                die "Value ${CMAKE_MAKEFILE_GENERATOR} is not supported"
            ;;
        esac;
        echo ${generator_name}
    }
    _cmake_modify-cmakelists () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        grep -qs "<<< Gentoo configuration >>>" "${CMAKE_USE_DIR}"/CMakeLists.txt && return 0;
        find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec sed -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_COLOR_MAKEFILE[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_INSTALL_PREFIX[[:space:]].*)/I{s/^/#_cmake_modify_IGNORE /g}' -e '/^[[:space:]]*set[[:space:]]*([[:space:]]*CMAKE_VERBOSE_MAKEFILE[[:space:]].*)/I{s/^/#G_cmake_modify_IGNORE /g}' -i {} + || die "${LINENO}: failed to disable hardcoded settings";
        local x;
        for x in $(find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec grep -l "^#_cmake_modify_IGNORE" {} +;);
        do
            einfo "Hardcoded definition(s) removed in $(echo "${x}" | cut -c $((${#CMAKE_USE_DIR}+2))-):";
            einfo "$(grep -se '^#_cmake_modify_IGNORE' ${x} | cut -c 22-99)";
        done;
        cat >> "${CMAKE_USE_DIR}"/CMakeLists.txt <<-_EOF_ || 
    
    MESSAGE(STATUS "<<< Gentoo configuration >>>
    Build type      \${CMAKE_BUILD_TYPE}
    Install path    \${CMAKE_INSTALL_PREFIX}
    Compiler flags:
    C               \${CMAKE_C_FLAGS}
    C++             \${CMAKE_CXX_FLAGS}
    Linker flags:
    Executable      \${CMAKE_EXE_LINKER_FLAGS}
    Module          \${CMAKE_MODULE_LINKER_FLAGS}
    Shared          \${CMAKE_SHARED_LINKER_FLAGS}\n")
    _EOF_
     die
    }
    _cmake_ninja_src_make () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -e build.ninja ]] || die "build.ninja not found. Error during configure stage.";
        eninja "$@"
    }
    _cmake_use_me_now () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        local arg=$2;
        [[ ! -z $3 ]] && arg=$3;
        [[ ${EAPI} == 5 ]] || die "${FUNCNAME[1]} is banned in EAPI 6 and later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead";
        local uper capitalised x;
        [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
        if [[ ! -z $3 ]]; then
            echo "-D$1$3=$(use $2 && echo ON || echo OFF)";
        else
            uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
            capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
            for x in $2 $uper $capitalised;
            do
                echo "-D$1$x=$(use $2 && echo ON || echo OFF) ";
            done;
        fi
    }
    _cmake_use_me_now_inverted () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        local arg=$2;
        [[ ! -z $3 ]] && arg=$3;
        if [[ ${EAPI} != 5 && "${FUNCNAME[1]}" != cmake-utils_use_find_package ]]; then
            die "${FUNCNAME[1]} is banned in EAPI 6 and later: use -D$1<related_CMake_variable>=\"\$(usex $2)\" instead";
        fi;
        local uper capitalised x;
        [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
        if [[ ! -z $3 ]]; then
            echo "-D$1$3=$(use $2 && echo OFF || echo ON)";
        else
            uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
            capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
            for x in $2 $uper $capitalised;
            do
                echo "-D$1$x=$(use $2 && echo OFF || echo ON) ";
            done;
        fi
    }
    _filter-hardened () 
    { 
        local f;
        for f in "$@";
        do
            case "${f}" in 
                -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)
                    gcc-specs-pie || continue;
                    if ! is-flagq -nopie && ! is-flagq -no-pie; then
                        if test-flags -nopie > /dev/null; then
                            append-flags -nopie;
                        else
                            append-flags -no-pie;
                        fi;
                    fi
                ;;
                -fstack-protector)
                    gcc-specs-ssp || continue;
                    is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)
                ;;
                -fstack-protector-all)
                    gcc-specs-ssp-to-all || continue;
                    is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)
                ;;
                -fno-strict-overflow)
                    gcc-specs-nostrict || continue;
                    is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)
                ;;
            esac;
        done
    }
    _filter-var () 
    { 
        local f x var=$1 new=();
        shift;
        for f in ${!var};
        do
            for x in "$@";
            do
                [[ ${f} == ${x} ]] && continue 2;
            done;
            new+=("${f}");
        done;
        export ${var}="${new[*]}"
    }
    _gcc-install-dir () 
    { 
        echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"
    }
    _gcc-specs-directive_raw () 
    { 
        local cc=$(tc-getCC);
        local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
        ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }
    $1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }
    	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
    	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
    	{ spec=spec $0 }
    END	{ print spec }';
        return 0
    }
    _gcc-specs-exists () 
    { 
        [[ -f $(_gcc-install-dir)/$1 ]]
    }
    _gcc_fullversion () 
    { 
        local ver="$1";
        shift;
        set -- $($(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__");
        eval echo "$ver"
    }
    _iconins () 
    { 
        ( insopts -m 0644;
        local funcname=$1;
        shift;
        local size dir;
        local context=apps;
        local theme=hicolor;
        while [[ $# -gt 0 ]]; do
            case $1 in 
                -s | --size)
                    if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then
                        size=${2%%x*};
                    else
                        size=${2};
                    fi;
                    case ${size} in 
                        16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256 | 512)
                            size=${size}x${size}
                        ;;
                        scalable)
    
                        ;;
                        *)
                            eerror "${size} is an unsupported icon size!";
                            exit 1
                        ;;
                    esac;
                    shift 2
                ;;
                -t | --theme)
                    theme=${2};
                    shift 2
                ;;
                -c | --context)
                    context=${2};
                    shift 2
                ;;
                *)
                    if [[ -z ${size} ]]; then
                        insinto /usr/share/pixmaps;
                    else
                        insinto /usr/share/icons/${theme}/${size}/${context};
                    fi;
                    if [[ ${funcname} == doicon ]]; then
                        if [[ -f $1 ]]; then
                            doins "${1}";
                        else
                            if [[ -d $1 ]]; then
                                shopt -s nullglob;
                                doins "${1}"/*.{png,svg};
                                shopt -u nullglob;
                            else
                                eerror "${1} is not a valid file/directory!";
                                exit 1;
                            fi;
                        fi;
                    else
                        break;
                    fi;
                    shift 1
                ;;
            esac;
        done;
        if [[ ${funcname} == newicon ]]; then
            newins "$@";
        fi ) || die
    }
    _is_flagq () 
    { 
        local x var="$1[*]";
        for x in ${!var};
        do
            [[ ${x} == $2 ]] && return 0;
        done;
        return 1
    }
    _pax_list_files () 
    { 
        local f cmd;
        cmd=$1;
        shift;
        for f in "$@";
        do
            ${cmd} "     ${f}";
        done
    }
    _python_EPYTHON_supported () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local EPYTHON=${1};
        local i=${EPYTHON/./_};
        case "${i}" in 
            python* | jython* | pypy*)
    
            ;;
            *)
                ewarn "Invalid EPYTHON: ${EPYTHON}";
                return 1
            ;;
        esac;
        if has "${i}" "${_PYTHON_SUPPORTED_IMPLS[@]}"; then
            if python_is_installed "${i}"; then
                if declare -f python_check_deps > /dev/null; then
                    local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)";
                    python_check_deps;
                    return ${?};
                fi;
                return 0;
            fi;
        else
            if ! has "${i}" "${_PYTHON_ALL_IMPLS[@]}"; then
                ewarn "Invalid EPYTHON: ${EPYTHON}";
            fi;
        fi;
        return 1
    }
    _python_check_dead_variables () 
    { 
        local v;
        for v in PYTHON_DEPEND PYTHON_USE_WITH{,_OR,_OPT} {RESTRICT,SUPPORT}_PYTHON_ABIS;
        do
            if [[ -n ${!v} ]]; then
                die "${v} is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Ebuild_head";
            fi;
        done;
        for v in PYTHON_{CPPFLAGS,CFLAGS,CXXFLAGS,LDFLAGS};
        do
            if [[ -n ${!v} ]]; then
                die "${v} is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#PYTHON_CFLAGS";
            fi;
        done;
        for v in PYTHON_TESTS_RESTRICTED_ABIS PYTHON_EXPORT_PHASE_FUNCTIONS PYTHON_VERSIONED_{SCRIPTS,EXECUTABLES} PYTHON_NONVERSIONED_EXECUTABLES;
        do
            if [[ -n ${!v} ]]; then
                die "${v} is invalid for python-r1 suite";
            fi;
        done;
        for v in DISTUTILS_USE_SEPARATE_SOURCE_DIRECTORIES DISTUTILS_SETUP_FILES DISTUTILS_GLOBAL_OPTIONS DISTUTILS_SRC_TEST PYTHON_MODNAME;
        do
            if [[ -n ${!v} ]]; then
                die "${v} is invalid for distutils-r1, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#${v}";
            fi;
        done;
        if [[ -n ${DISTUTILS_DISABLE_TEST_DEPENDENCY} ]]; then
            die "${v} is invalid for distutils-r1, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#DISTUTILS_SRC_TEST";
        fi;
        for v in PYTHON_BDEPEND PYTHON_MULTIPLE_ABIS PYTHON_ABI_TYPE PYTHON_RESTRICTED_ABIS PYTHON_TESTS_FAILURES_TOLERANT_ABIS PYTHON_CFFI_MODULES_GENERATION_COMMANDS;
        do
            if [[ -n ${!v} ]]; then
                die "${v} is invalid for python-r1 suite";
            fi;
        done
    }
    _python_check_locale_sanity () 
    { 
        local -x LC_ALL=${1};
        local IFS=;
        local lc=({a..z});
        local uc=({A..Z});
        local input="${lc[*]}${uc[*]}";
        local output=$(tr '[:lower:][:upper:]' '[:upper:][:lower:]' <<<"${input}");
        [[ ${output} == "${uc[*]}${lc[*]}" ]]
    }
    _python_impl_matches () 
    { 
        [[ ${#} -ge 2 ]] || die "${FUNCNAME}: takes at least 2 parameters";
        local impl=${1} pattern;
        shift;
        for pattern in "$@";
        do
            if [[ ${pattern} == -2 ]]; then
                ! python_is_python3 "${impl}";
                return;
            else
                if [[ ${pattern} == -3 ]]; then
                    python_is_python3 "${impl}";
                    return;
                else
                    if [[ ${impl/./_} == ${pattern/./_} ]]; then
                        return 0;
                    fi;
                fi;
            fi;
        done;
        return 1
    }
    _python_impl_supported () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ ${#} -eq 1 ]] || die "${FUNCNAME}: takes exactly 1 argument (impl).";
        local impl=${1};
        case "${impl}" in 
            python2_7 | python3_[567] | jython2_7)
                return 0
            ;;
            pypy1_[89] | pypy2_0 | python2_[56] | python3_[1234])
                return 1
            ;;
            pypy | pypy3)
                if [[ ${EAPI:-0} == [01234] ]]; then
                    die "PyPy is supported in EAPI 5 and newer only.";
                fi
            ;;
            *)
                [[ -n ${PYTHON_COMPAT_NO_STRICT} ]] && return 1;
                die "Invalid implementation in PYTHON_COMPAT: ${impl}"
            ;;
        esac
    }
    _python_ln_rel () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local target=${1};
        local symname=${2};
        local tgpath=${target%/*}/;
        local sympath=${symname%/*}/;
        local rel_target=;
        while [[ -n ${sympath} ]]; do
            local tgseg= symseg=;
            while [[ ! -n ${tgseg} && -n ${tgpath} ]]; do
                tgseg=${tgpath%%/*};
                tgpath=${tgpath#${tgseg}/};
            done;
            while [[ ! -n ${symseg} && -n ${sympath} ]]; do
                symseg=${sympath%%/*};
                sympath=${sympath#${symseg}/};
            done;
            if [[ ${tgseg} != ${symseg} ]]; then
                rel_target=../${rel_target}${tgseg:+${tgseg}/};
            fi;
        done;
        rel_target+=${tgpath}${target##*/};
        debug-print "${FUNCNAME}: ${symname} -> ${target}";
        debug-print "${FUNCNAME}: rel_target = ${rel_target}";
        ln -fs "${rel_target}" "${symname}"
    }
    _python_set_impls () 
    { 
        local i;
        if ! declare -p PYTHON_COMPAT &> /dev/null; then
            die 'PYTHON_COMPAT not declared.';
        fi;
        if [[ $(declare -p PYTHON_COMPAT) != "declare -a"* ]]; then
            die 'PYTHON_COMPAT must be an array.';
        fi;
        for i in "${PYTHON_COMPAT[@]}";
        do
            _python_impl_supported "${i}";
        done;
        local supp=() unsupp=();
        for i in "${_PYTHON_ALL_IMPLS[@]}";
        do
            if has "${i}" "${PYTHON_COMPAT[@]}"; then
                supp+=("${i}");
            else
                unsupp+=("${i}");
            fi;
        done;
        if [[ ! -n ${supp[@]} ]]; then
            die "No supported implementation in PYTHON_COMPAT.";
        fi;
        if [[ -n ${_PYTHON_SUPPORTED_IMPLS[@]} ]]; then
            if [[ ${_PYTHON_SUPPORTED_IMPLS[@]} != ${supp[@]} ]]; then
                eerror "Supported impls (PYTHON_COMPAT) changed between inherits!";
                eerror "Before: ${_PYTHON_SUPPORTED_IMPLS[*]}";
                eerror "Now   : ${supp[*]}";
                die "_PYTHON_SUPPORTED_IMPLS integrity check failed";
            fi;
            if [[ ${_PYTHON_UNSUPPORTED_IMPLS[@]} != ${unsupp[@]} ]]; then
                eerror "Unsupported impls changed between inherits!";
                eerror "Before: ${_PYTHON_UNSUPPORTED_IMPLS[*]}";
                eerror "Now   : ${unsupp[*]}";
                die "_PYTHON_UNSUPPORTED_IMPLS integrity check failed";
            fi;
        else
            _PYTHON_SUPPORTED_IMPLS=("${supp[@]}");
            _PYTHON_UNSUPPORTED_IMPLS=("${unsupp[@]}");
            readonly _PYTHON_SUPPORTED_IMPLS _PYTHON_UNSUPPORTED_IMPLS;
        fi
    }
    _ruby_implementation_depend () 
    { 
        local rubypn=;
        local rubyslot=;
        case $1 in 
            ruby18)
                rubypn="dev-lang/ruby";
                rubyslot=":1.8"
            ;;
            ruby19)
                rubypn="dev-lang/ruby";
                rubyslot=":1.9"
            ;;
            ruby20)
                rubypn="dev-lang/ruby";
                rubyslot=":2.0"
            ;;
            ruby21)
                rubypn="dev-lang/ruby";
                rubyslot=":2.1"
            ;;
            ruby22)
                rubypn="dev-lang/ruby";
                rubyslot=":2.2"
            ;;
            ruby23)
                rubypn="dev-lang/ruby";
                rubyslot=":2.3"
            ;;
            ruby24)
                rubypn="dev-lang/ruby";
                rubyslot=":2.4"
            ;;
            ruby25)
                rubypn="dev-lang/ruby";
                rubyslot=":2.5"
            ;;
            ruby26)
                rubypn="dev-lang/ruby";
                rubyslot=":2.6"
            ;;
            ree18)
                rubypn="dev-lang/ruby-enterprise";
                rubyslot=":1.8"
            ;;
            jruby)
                rubypn="dev-java/jruby";
                rubyslot=""
            ;;
            rbx)
                rubypn="dev-lang/rubinius";
                rubyslot=""
            ;;
            *)
                die "$1: unknown Ruby implementation"
            ;;
        esac;
        echo "$2${rubypn}$3${rubyslot}"
    }
    _ruby_single_implementations_depend () 
    { 
        local depend;
        for _ruby_implementation in ${RUBY_TARGETS_PREFERENCE};
        do
            if [[ ${USE_RUBY} =~ ${_ruby_implementation} ]]; then
                depend="${depend} $(_ruby_implementation_depend $_ruby_implementation)";
            fi;
        done;
        echo "|| ( ${depend} ) virtual/rubygems"
    }
    _ruby_single_set_globals () 
    { 
        RUBY_DEPS=$(_ruby_single_implementations_depend)
    }
    _tc-getPROG () 
    { 
        local tuple=$1;
        local v var vars=$2;
        local prog=($3);
        var=${vars%% *};
        for v in ${vars};
        do
            if [[ -n ${!v} ]]; then
                export ${var}="${!v}";
                echo "${!v}";
                return 0;
            fi;
        done;
        local search=;
        [[ -n $4 ]] && search=$(type -p $4-${prog[0]});
        [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p ${!tuple}-${prog[0]});
        [[ -n ${search} ]] && prog[0]=${search##*/};
        export ${var}="${prog[*]}";
        echo "${!var}"
    }
    _ver_compare () 
    { 
        local va=${1} vb=${2} a an al as ar b bn bl bs br re LC_ALL=C;
        re="^([0-9]+(\.[0-9]+)*)([a-z]?)((_(alpha|beta|pre|rc|p)[0-9]*)*)(-r[0-9]+)?$";
        [[ ${va} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${va}";
        an=${BASH_REMATCH[1]};
        al=${BASH_REMATCH[3]};
        as=${BASH_REMATCH[4]};
        ar=${BASH_REMATCH[7]};
        [[ ${vb} =~ ${re} ]] || die "${FUNCNAME}: invalid version: ${vb}";
        bn=${BASH_REMATCH[1]};
        bl=${BASH_REMATCH[3]};
        bs=${BASH_REMATCH[4]};
        br=${BASH_REMATCH[7]};
        _ver_compare_int "${an%%.*}" "${bn%%.*}" || return;
        while [[ ${an} == *.* && ${bn} == *.* ]]; do
            an=${an#*.};
            bn=${bn#*.};
            a=${an%%.*};
            b=${bn%%.*};
            if [[ ${a} == 0* || ${b} == 0* ]]; then
                [[ ${a} =~ 0+$ ]] && a=${a%"${BASH_REMATCH[0]}"};
                [[ ${b} =~ 0+$ ]] && b=${b%"${BASH_REMATCH[0]}"};
                [[ ${a} > ${b} ]] && return 3;
                [[ ${a} < ${b} ]] && return 1;
            else
                _ver_compare_int "${a}" "${b}" || return;
            fi;
        done;
        [[ ${an} == *.* ]] && return 3;
        [[ ${bn} == *.* ]] && return 1;
        [[ ${al} > ${bl} ]] && return 3;
        [[ ${al} < ${bl} ]] && return 1;
        as=${as#_}${as:+_};
        bs=${bs#_}${bs:+_};
        while [[ -n ${as} && -n ${bs} ]]; do
            a=${as%%_*};
            b=${bs%%_*};
            if [[ ${a%%[0-9]*} == "${b%%[0-9]*}" ]]; then
                _ver_compare_int "${a##*[a-z]}" "${b##*[a-z]}" || return;
            else
                [[ ${a%%[0-9]*} == p ]] && return 3;
                [[ ${b%%[0-9]*} == p ]] && return 1;
                [[ ${a} > ${b} ]] && return 3 || return 1;
            fi;
            as=${as#*_};
            bs=${bs#*_};
        done;
        if [[ -n ${as} ]]; then
            [[ ${as} == p[_0-9]* ]] && return 3 || return 1;
        else
            if [[ -n ${bs} ]]; then
                [[ ${bs} == p[_0-9]* ]] && return 1 || return 3;
            fi;
        fi;
        _ver_compare_int "${ar#-r}" "${br#-r}" || return;
        return 2
    }
    _ver_compare_int () 
    { 
        local a=$1 b=$2 d=$(( ${#1}-${#2} ));
        if [[ ${d} -gt 0 ]]; then
            printf -v b "%0${d}d%s" 0 "${b}";
        else
            if [[ ${d} -lt 0 ]]; then
                printf -v a "%0$(( -d ))d%s" 0 "${a}";
            fi;
        fi;
        [[ ${a} > ${b} ]] && return 3;
        [[ ${a} == "${b}" ]]
    }
    _ver_parse_range () 
    { 
        local range=${1};
        local max=${2};
        [[ ${range} == [0-9]* ]] || die "${FUNCNAME}: range must start with a number";
        start=${range%-*};
        [[ ${range} == *-* ]] && end=${range#*-} || end=${start};
        if [[ -n ${end} ]]; then
            [[ ${start} -le ${end} ]] || die "${FUNCNAME}: end of range must be >= start";
            [[ ${end} -le ${max} ]] || end=${max};
        else
            end=${max};
        fi
    }
    _ver_split () 
    { 
        local v=${1} LC_ALL=C;
        comp=();
        local s c;
        while [[ -n ${v} ]]; do
            s=${v%%[a-zA-Z0-9]*};
            v=${v:${#s}};
            [[ ${v} == [0-9]* ]] && c=${v%%[^0-9]*} || c=${v%%[^a-zA-Z]*};
            v=${v:${#c}};
            comp+=("${s}" "${c}");
        done
    }
    all-flag-vars () 
    { 
        echo {ADA,C,CPP,CXX,CCAS,F,FC,LD}FLAGS
    }
    append-cflags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        export CFLAGS+=" $*";
        return 0
    }
    append-cppflags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        export CPPFLAGS+=" $*";
        return 0
    }
    append-cxxflags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        export CXXFLAGS+=" $*";
        return 0
    }
    append-fflags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        export FFLAGS+=" $*";
        export FCFLAGS+=" $*";
        return 0
    }
    append-flags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        case " $* " in 
            *' '-[DIU]*)
                eqawarn 'please use append-cppflags for preprocessor flags'
            ;;
            *' '-L* | *' '-Wl,*)
                eqawarn 'please use append-ldflags for linker flags'
            ;;
        esac;
        append-cflags "$@";
        append-cxxflags "$@";
        append-fflags "$@";
        return 0
    }
    append-ldflags () 
    { 
        [[ $# -eq 0 ]] && return 0;
        local flag;
        for flag in "$@";
        do
            [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";
        done;
        export LDFLAGS="${LDFLAGS} $*";
        return 0
    }
    append-lfs-flags () 
    { 
        [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments";
        append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
    }
    append-libs () 
    { 
        [[ $# -eq 0 ]] && return 0;
        local flag;
        for flag in "$@";
        do
            if [[ -z "${flag// }" ]]; then
                eqawarn "Appending an empty argument to LIBS is invalid! Skipping.";
                continue;
            fi;
            case $flag in 
                -[lL]*)
                    export LIBS="${LIBS} ${flag}"
                ;;
                -*)
                    eqawarn "Appending non-library to LIBS (${flag}); Other linker flags should be passed via LDFLAGS";
                    export LIBS="${LIBS} ${flag}"
                ;;
                *)
                    export LIBS="${LIBS} -l${flag}"
                ;;
            esac;
        done;
        return 0
    }
    check-reqs_disk () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [path] [size]";
        local path=${1};
        local size=${2};
        local space_kbi;
        check-reqs_start_phase ${size} "disk space at \"${path}\"";
        space_kbi=$(df -Pk "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}');
        if [[ $? == 0 && -n ${space_kbi} ]]; then
            if [[ ${space_kbi} -lt $(check-reqs_get_kibibytes ${size}) ]]; then
                eend 1;
                check-reqs_unsatisfied ${size} "disk space at \"${path}\"";
            else
                eend 0;
            fi;
        else
            eend 1;
            ewarn "Couldn't determine disk space, skipping...";
        fi
    }
    check-reqs_get_kibibytes () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local unit=${1:(-1)};
        local size=${1%[GMT]};
        case ${unit} in 
            M)
                echo $((1024 * size))
            ;;
            G)
                echo $((1024 * 1024 * size))
            ;;
            T)
                echo $((1024 * 1024 * 1024 * size))
            ;;
            *)
                die "${FUNCNAME}: Unknown unit: ${unit}"
            ;;
        esac
    }
    check-reqs_get_number () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local size=${1%[GMT]};
        [[ ${size} == ${1} ]] && die "${FUNCNAME}: Missing unit: ${1}";
        echo ${size}
    }
    check-reqs_get_unit () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local unit=${1:(-1)};
        case ${unit} in 
            M)
                echo "MiB"
            ;;
            G)
                echo "GiB"
            ;;
            T)
                echo "TiB"
            ;;
            *)
                die "${FUNCNAME}: Unknown unit: ${unit}"
            ;;
        esac
    }
    check-reqs_memory () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local size=${1};
        local actual_memory;
        check-reqs_start_phase ${size} "RAM";
        if [[ -r /proc/meminfo ]]; then
            actual_memory=$(awk '/MemTotal/ { print $2 }' /proc/meminfo);
        else
            actual_memory=$(sysctl hw.physmem 2>/dev/null );
            [[ "$?" == "0" ]] && actual_memory=$(echo $actual_memory | sed -e 's/^[^:=]*[:=]//' );
        fi;
        if [[ -n ${actual_memory} ]]; then
            if [[ ${actual_memory} -lt $(check-reqs_get_kibibytes ${size}) ]]; then
                eend 1;
                check-reqs_unsatisfied ${size} "RAM";
            else
                eend 0;
            fi;
        else
            eend 1;
            ewarn "Couldn't determine amount of memory, skipping...";
        fi
    }
    check-reqs_output () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        local msg="ewarn";
        [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror";
        if [[ -n ${CHECKREQS_FAILED} ]]; then
            ${msg};
            ${msg} "Space constraints set in the ebuild were not met!";
            ${msg} "The build will most probably fail, you should enhance the space";
            ${msg} "as per failed tests.";
            ${msg};
            [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && die "Build requirements not met!";
        fi
    }
    check-reqs_pkg_pretend () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        check-reqs_pkg_setup "$@"
    }
    check-reqs_pkg_setup () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        check-reqs_prepare;
        check-reqs_run;
        check-reqs_output
    }
    check-reqs_prepare () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        if [[ -z ${CHECKREQS_MEMORY} && -z ${CHECKREQS_DISK_BUILD} && -z ${CHECKREQS_DISK_USR} && -z ${CHECKREQS_DISK_VAR} ]]; then
            eerror "Set some check-reqs eclass variables if you want to use it.";
            eerror "If you are user and see this message file a bug against the package.";
            die "${FUNCNAME}: check-reqs eclass called but not actualy used!";
        fi
    }
    check-reqs_run () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        unset CHECKREQS_FAILED;
        [[ ${EAPI:-0} == [0123] ]] && local MERGE_TYPE="";
        if [[ ${MERGE_TYPE} != binary ]]; then
            [[ -n ${CHECKREQS_MEMORY} ]] && check-reqs_memory ${CHECKREQS_MEMORY};
            [[ -n ${CHECKREQS_DISK_BUILD} ]] && check-reqs_disk "${T}" "${CHECKREQS_DISK_BUILD}";
        fi;
        if [[ ${MERGE_TYPE} != buildonly ]]; then
            [[ -n ${CHECKREQS_DISK_USR} ]] && check-reqs_disk "${EROOT}/usr" "${CHECKREQS_DISK_USR}";
            [[ -n ${CHECKREQS_DISK_VAR} ]] && check-reqs_disk "${EROOT}/var" "${CHECKREQS_DISK_VAR}";
        fi
    }
    check-reqs_start_phase () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [size] [location]";
        local size=${1};
        local location=${2};
        local sizeunit="$(check-reqs_get_number ${size}) $(check-reqs_get_unit ${size})";
        ebegin "Checking for at least ${sizeunit} ${location}"
    }
    check-reqs_unsatisfied () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [size] [location]";
        local msg="ewarn";
        local size=${1};
        local location=${2};
        local sizeunit="$(check-reqs_get_number ${size}) $(check-reqs_get_unit ${size})";
        [[ ${EBUILD_PHASE} == "pretend" && -z ${I_KNOW_WHAT_I_AM_DOING} ]] && msg="eerror";
        ${msg} "There is NOT at least ${sizeunit} ${location}";
        CHECKREQS_FAILED="true"
    }
    check_reqs () 
    { 
        eerror "Package calling old ${FUNCNAME} function.";
        eerror "It should call check-reqs_pkg_pretend and check-reqs_pkg_setup.";
        die "${FUNCNAME} is banned"
    }
    clang-fullversion () 
    { 
        _clang_fullversion '$1.$2.$3' "$@"
    }
    clang-major-version () 
    { 
        _clang_fullversion '$1' "$@"
    }
    clang-micro-version () 
    { 
        _clang_fullversion '$3' "$@"
    }
    clang-minor-version () 
    { 
        _clang_fullversion '$2' "$@"
    }
    clang-version () 
    { 
        _clang_fullversion '$1.$2' "$@"
    }
    cmake-utils_src_compile () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        cmake-utils_src_make "$@"
    }
    cmake-utils_src_configure () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        if [[ ! -n ${_CMAKE_UTILS_SRC_PREPARE_HAS_RUN} ]]; then
            if [[ ${EAPI} != [56] ]]; then
                die "FATAL: cmake-utils_src_prepare has not been run";
            else
                eqawarn "cmake-utils_src_prepare has not been run, please open a bug on https://bugs.gentoo.org/";
            fi;
        fi;
        [[ ${EAPI} == 5 ]] && _cmake_cleanup_cmake;
        _cmake_check_build_dir;
        xdg_environment_reset;
        if [[ ${CMAKE_BUILD_TYPE} = Gentoo ]]; then
            if ! has debug ${IUSE//+} || ! use debug; then
                local CPPFLAGS=${CPPFLAGS};
                append-cppflags -DNDEBUG;
            fi;
        fi;
        local build_rules=${BUILD_DIR}/gentoo_rules.cmake;
        cat > "${build_rules}" <<-_EOF_ || 
    SET (CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> <DEFINES> <INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "ASM compile command" FORCE)
    SET (CMAKE_ASM-ATT_COMPILE_OBJECT "<CMAKE_ASM-ATT_COMPILER> <DEFINES> <INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c -x assembler <SOURCE>" CACHE STRING "ASM-ATT compile command" FORCE)
    SET (CMAKE_ASM-ATT_LINK_FLAGS "-nostdlib" CACHE STRING "ASM-ATT link flags" FORCE)
    SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> <INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile command" FORCE)
    SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE)
    SET (CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER> <DEFINES> <INCLUDES> ${FCFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "Fortran compile command" FORCE)
    _EOF_
     die
        local myCC=$(tc-getCC) myCXX=$(tc-getCXX) myFC=$(tc-getFC);
        local toolchain_file=${BUILD_DIR}/gentoo_toolchain.cmake;
        cat > ${toolchain_file} <<-_EOF_ || 
    SET (CMAKE_ASM_COMPILER "${myCC/ /;}")
    SET (CMAKE_ASM-ATT_COMPILER "${myCC/ /;}")
    SET (CMAKE_C_COMPILER "${myCC/ /;}")
    SET (CMAKE_CXX_COMPILER "${myCXX/ /;}")
    SET (CMAKE_Fortran_COMPILER "${myFC/ /;}")
    SET (CMAKE_AR $(type -P $(tc-getAR)) CACHE FILEPATH "Archive manager" FORCE)
    SET (CMAKE_RANLIB $(type -P $(tc-getRANLIB)) CACHE FILEPATH "Archive index generator" FORCE)
    SET (CMAKE_SYSTEM_PROCESSOR "${CHOST%%-*}")
    _EOF_
     die
        local -x ASMFLAGS=${CFLAGS};
        local -x PKG_CONFIG=$(tc-getPKG_CONFIG);
        if tc-is-cross-compiler; then
            local sysname;
            case "${KERNEL:-linux}" in 
                Cygwin)
                    sysname="CYGWIN_NT-5.1"
                ;;
                HPUX)
                    sysname="HP-UX"
                ;;
                linux)
                    sysname="Linux"
                ;;
                Winnt)
                    sysname="Windows";
                    cat >> "${toolchain_file}" <<-_EOF_ || 
    SET (CMAKE_RC_COMPILER $(tc-getRC))
    _EOF_
     die
                ;;
                *)
                    sysname="${KERNEL}"
                ;;
            esac
            cat >> "${toolchain_file}" <<-_EOF_ || 
    SET (CMAKE_SYSTEM_NAME "${sysname}")
    _EOF_
     die
            if [ "${SYSROOT:-/}" != "/" ]; then
                cat >> "${toolchain_file}" <<-_EOF_ || 
    SET (CMAKE_FIND_ROOT_PATH "${SYSROOT}")
    SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
    SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
    SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
    _EOF_
     die;
            fi;
        fi
        if [[ -n ${EPREFIX} ]]; then
            cat >> "${build_rules}" <<-_EOF_ || 
    # in Prefix we need rpath and must ensure cmake gets our default linker path
    # right ... except for Darwin hosts
    IF (NOT APPLE)
    SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
    SET (CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH "${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)"
    CACHE STRING "" FORCE)
    
    ELSE ()
    
    SET (CMAKE_PREFIX_PATH "${EPREFIX}/usr" CACHE STRING "" FORCE)
    SET (CMAKE_MACOSX_RPATH ON CACHE BOOL "" FORCE)
    SET (CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
    SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
    SET (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "" FORCE)
    
    ENDIF (NOT APPLE)
    _EOF_
     die;
        fi
        local common_config=${BUILD_DIR}/gentoo_common_config.cmake;
        local libdir=$(get_libdir);
        cat > "${common_config}" <<-_EOF_ || 
    SET (CMAKE_GENTOO_BUILD ON CACHE BOOL "Indicate Gentoo package build")
    SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE)
    SET (CMAKE_INSTALL_LIBDIR ${libdir} CACHE PATH "Output directory for libraries")
    SET (CMAKE_INSTALL_INFODIR "${EPREFIX}/usr/share/info" CACHE PATH "")
    SET (CMAKE_INSTALL_MANDIR "${EPREFIX}/usr/share/man" CACHE PATH "")
    SET (CMAKE_USER_MAKE_RULES_OVERRIDE "${build_rules}" CACHE FILEPATH "Gentoo override rules")
    _EOF_
     die
        [[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo 'SET (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}";
        if [[ ${EAPI} != [56] ]]; then
            cat >> "${common_config}" <<-_EOF_ || 
    SET (CMAKE_INSTALL_DOCDIR "${EPREFIX}/usr/share/doc/${PF}" CACHE PATH "")
    SET (BUILD_SHARED_LIBS ON CACHE BOOLEAN "")
    _EOF_
     die;
        fi
        if [[ ${CMAKE_BUILD_TYPE} != Gentoo && ${EAPI} != 5 ]]; then
            cat >> ${common_config} <<-_EOF_ || 
    SET (CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_ASM-ATT_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_MODULE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    SET (CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "")
    _EOF_
     die;
        fi
        local mycmakeargstype=$(declare -p mycmakeargs 2>&-);
        if [[ "${mycmakeargstype}" != "declare -a mycmakeargs="* ]]; then
            if [[ -n "${mycmakeargstype}" ]]; then
                if [[ ${EAPI} == 5 ]]; then
                    eqawarn "Declaring mycmakeargs as a variable is deprecated. Please use an array instead.";
                else
                    die "Declaring mycmakeargs as a variable is banned in EAPI=${EAPI}. Please use an array instead.";
                fi;
            fi;
            local mycmakeargs_local=(${mycmakeargs});
        else
            local mycmakeargs_local=("${mycmakeargs[@]}");
        fi;
        if [[ ${CMAKE_WARN_UNUSED_CLI} == no ]]; then
            local warn_unused_cli="--no-warn-unused-cli";
        else
            local warn_unused_cli="";
        fi;
        local cmakeargs=(${warn_unused_cli} -C "${common_config}" -G "$(_cmake_generator_to_use)" -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr" "${mycmakeargs_local[@]}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" $([[ ${EAPI} == 5 ]] && echo -DCMAKE_INSTALL_DO_STRIP=OFF) -DCMAKE_TOOLCHAIN_FILE="${toolchain_file}" "${MYCMAKEARGS}");
        if [[ -n "${CMAKE_EXTRA_CACHE_FILE}" ]]; then
            cmakeargs+=(-C "${CMAKE_EXTRA_CACHE_FILE}");
        fi;
        pushd "${BUILD_DIR}" > /dev/null || die;
        debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${mycmakeargs_local[*]}";
        echo "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}";
        "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
        popd > /dev/null || die
    }
    cmake-utils_src_install () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        _cmake_check_build_dir;
        pushd "${BUILD_DIR}" > /dev/null || die;
        DESTDIR="${D}" ${CMAKE_MAKEFILE_GENERATOR} install "$@" || die "died running ${CMAKE_MAKEFILE_GENERATOR} install";
        popd > /dev/null || die;
        pushd "${S}" > /dev/null || die;
        einstalldocs;
        popd > /dev/null || die
    }
    cmake-utils_src_make () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        _cmake_check_build_dir;
        pushd "${BUILD_DIR}" > /dev/null || die;
        _cmake_${CMAKE_MAKEFILE_GENERATOR}_src_make "$@";
        popd > /dev/null || die
    }
    cmake-utils_src_prepare () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        pushd "${S}" > /dev/null || die;
        if [[ ${EAPI} != 5 ]]; then
            default_src_prepare;
            _cmake_cleanup_cmake;
        else
            debug-print "$FUNCNAME: PATCHES=$PATCHES";
            [[ -n ${PATCHES[@]} ]] && epatch "${PATCHES[@]}";
            debug-print "$FUNCNAME: applying user patches";
            epatch_user;
        fi;
        popd > /dev/null || die;
        if [[ -n ${CMAKE_UTILS_QA_SRC_DIR_READONLY} && ! -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
            chmod -R a-w "${S}";
        fi;
        _CMAKE_UTILS_SRC_PREPARE_HAS_RUN=1
    }
    cmake-utils_src_test () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        _cmake_check_build_dir;
        pushd "${BUILD_DIR}" > /dev/null || die;
        [[ -e CTestTestfile.cmake ]] || { 
            echo "No tests found. Skipping.";
            return 0
        };
        [[ -n ${TEST_VERBOSE} ]] && myctestargs+=(--extra-verbose --output-on-failure);
        set -- ctest -j "$(makeopts_jobs)" --test-load "$(makeopts_loadavg)" "${myctestargs[@]}" "$@";
        echo "$@" 1>&2;
        if "$@"; then
            einfo "Tests succeeded.";
            popd > /dev/null || die;
            return 0;
        else
            if [[ -n "${CMAKE_YES_I_WANT_TO_SEE_THE_TEST_LOG}" ]]; then
                eerror "Tests failed. Test log ${BUILD_DIR}/Testing/Temporary/LastTest.log follows:";
                eerror "--START TEST LOG--------------------------------------------------------------";
                cat "${BUILD_DIR}/Testing/Temporary/LastTest.log";
                eerror "--END TEST LOG----------------------------------------------------------------";
                die "Tests failed.";
            else
                die "Tests failed. When you file a bug, please attach the following file: \n\t${BUILD_DIR}/Testing/Temporary/LastTest.log";
            fi;
            popd > /dev/null || die;
            return 1;
        fi
    }
    cmake-utils_use () 
    { 
        _cmake_use_me_now "" "$@"
    }
    cmake-utils_use_build () 
    { 
        _cmake_use_me_now BUILD_ "$@"
    }
    cmake-utils_use_disable () 
    { 
        _cmake_use_me_now_inverted DISABLE_ "$@"
    }
    cmake-utils_use_enable () 
    { 
        _cmake_use_me_now ENABLE_ "$@"
    }
    cmake-utils_use_find_package () 
    { 
        if [[ ${EAPI} != 5 && "$#" != 2 ]]; then
            die "Usage: cmake-utils_use_find_package <USE flag> <package name>";
        fi;
        _cmake_use_me_now_inverted CMAKE_DISABLE_FIND_PACKAGE_ "$@"
    }
    cmake-utils_use_has () 
    { 
        _cmake_use_me_now HAVE_ "$@"
    }
    cmake-utils_use_no () 
    { 
        _cmake_use_me_now_inverted NO_ "$@"
    }
    cmake-utils_use_use () 
    { 
        _cmake_use_me_now USE_ "$@"
    }
    cmake-utils_use_want () 
    { 
        _cmake_use_me_now WANT_ "$@"
    }
    cmake-utils_use_with () 
    { 
        _cmake_use_me_now WITH_ "$@"
    }
    cmake-utils_useno () 
    { 
        _cmake_use_me_now_inverted "" "$@"
    }
    cmake_comment_add_subdirectory () 
    { 
        if [[ -z ${1} ]]; then
            die "comment_add_subdirectory must be passed at least one directory name to comment";
        fi;
        if [[ -e "CMakeLists.txt" ]]; then
            local d;
            for d in $@;
            do
                sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${d//\//\\/}[[:space:]]*)/I s/^/#DONOTCOMPILE /" -i CMakeLists.txt || die "failed to comment add_subdirectory(${d})";
            done;
        fi
    }
    comment_add_subdirectory () 
    { 
        [[ ${EAPI} == 5 ]] || die "comment_add_subdirectory is banned in EAPI 6 and later - use cmake_comment_add_subdirectory instead";
        cmake_comment_add_subdirectory "$@"
    }
    darwintoolize () 
    { 
        die "Use elibtoolize"
    }
    delete_all_version_separators () 
    { 
        replace_all_version_separators "" "${1}"
    }
    delete_version_separator () 
    { 
        replace_version_separator "${1}" "" "${2}"
    }
    doicon () 
    { 
        _iconins ${FUNCNAME} "$@"
    }
    domenu () 
    { 
        ( local i ret=0;
        insopts -m 0644;
        insinto /usr/share/applications;
        for i in "$@";
        do
            if [[ -d ${i} ]]; then
                doins "${i}"/*.desktop;
                ((ret|=$?));
            else
                doins "${i}";
                ((ret|=$?));
            fi;
        done;
        exit ${ret} )
    }
    eapply () 
    { 
        local failed patch_cmd=patch;
        local -x LC_COLLATE=POSIX;
        type -P gpatch > /dev/null && patch_cmd=gpatch;
        function _eapply_patch () 
        { 
            local f=${1};
            local prefix=${2};
            ebegin "${prefix:-Applying }${f##*/}";
            ${patch_cmd} -p1 -f -s -g0 --no-backup-if-mismatch "${patch_options[@]}" < "${f}";
            failed=${?};
            if ! eend "${failed}"; then
                __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}";
            fi
        };
        local patch_options=() files=();
        local i found_doublehyphen;
        for ((i = 1; i <= ${#@}; ++i ))
        do
            if [[ ${@:i:1} == -- ]]; then
                patch_options=("${@:1:i-1}");
                files=("${@:i+1}");
                found_doublehyphen=1;
                break;
            fi;
        done;
        if [[ -z ${found_doublehyphen} ]]; then
            for ((i = 1; i <= ${#@}; ++i ))
            do
                if [[ ${@:i:1} != -* ]]; then
                    patch_options=("${@:1:i-1}");
                    files=("${@:i}");
                    break;
                fi;
            done;
            for i in "${files[@]}";
            do
                if [[ ${i} == -* ]]; then
                    die "eapply: all options must be passed before non-options";
                fi;
            done;
        fi;
        if [[ ${#files[@]} -eq 0 ]]; then
            die "eapply: no files specified";
        fi;
        local f;
        for f in "${files[@]}";
        do
            if [[ -d ${f} ]]; then
                function _eapply_get_files () 
                { 
                    local LC_ALL=POSIX;
                    local prev_shopt=$(shopt -p nullglob);
                    shopt -s nullglob;
                    local f;
                    for f in "${1}"/*;
                    do
                        if [[ ${f} == *.diff || ${f} == *.patch ]]; then
                            files+=("${f}");
                        fi;
                    done;
                    ${prev_shopt}
                };
                local files=();
                _eapply_get_files "${f}";
                [[ ${#files[@]} -eq 0 ]] && die "No *.{patch,diff} files in directory ${f}";
                einfo "Applying patches from ${f} ...";
                local f2;
                for f2 in "${files[@]}";
                do
                    _eapply_patch "${f2}" '  ';
                    [[ ${failed} -ne 0 ]] && return "${failed}";
                done;
            else
                _eapply_patch "${f}";
                [[ ${failed} -ne 0 ]] && return "${failed}";
            fi;
        done;
        return 0
    }
    eapply_user () 
    { 
        [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}";
        local tagfile=${T}/.portage_user_patches_applied;
        [[ -f ${tagfile} ]] && return;
         >> "${tagfile}";
        local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
        local applied d f;
        local -A _eapply_user_patches;
        local prev_shopt=$(shopt -p nullglob);
        shopt -s nullglob;
        for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{:${SLOT%/*},};
        do
            for f in "${d}"/*;
            do
                if [[ ( ${f} == *.diff || ${f} == *.patch ) && -z ${_eapply_user_patches[${f##*/}]} ]]; then
                    _eapply_user_patches[${f##*/}]=${f};
                fi;
            done;
        done;
        if [[ ${#_eapply_user_patches[@]} -gt 0 ]]; then
            while read -r -d '' f; do
                f=${_eapply_user_patches[${f}]};
                if [[ -s ${f} ]]; then
                    eapply "${f}";
                    applied=1;
                fi;
            done < <(printf -- '%s\0' "${!_eapply_user_patches[@]}" |
    				LC_ALL=C sort -z);
        fi;
        ${prev_shopt};
        [[ -n ${applied} ]] && ewarn "User patches applied."
    }
    ebeep () 
    { 
        ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org"
    }
    econf_build () 
    { 
        local CBUILD=${CBUILD:-${CHOST}};
        tc-env_build econf --build=${CBUILD} --host=${CBUILD} "$@"
    }
    ecvs_clean () 
    { 
        [[ $# -eq 0 ]] && set -- .;
        find "$@" '(' -type d -name 'CVS' -prune -o -type f -name '.cvs*' ')' -exec rm -rf '{}' +
    }
    edos2unix () 
    { 
        [[ $# -eq 0 ]] && return 0;
        sed -i 's/\r$//' -- "$@" || die
    }
    egit_clean () 
    { 
        [[ $# -eq 0 ]] && set -- .;
        find "$@" -type d -name '.git*' -prune -exec rm -rf '{}' +
    }
    einstalldocs () 
    { 
        ( if ! declare -p DOCS &> /dev/null; then
            local d;
            for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG;
            do
                [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}";
            done;
        else
            if ___is_indexed_array_var DOCS; then
                [[ ${#DOCS[@]} -gt 0 ]] && docinto / && dodoc -r "${DOCS[@]}";
            else
                [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS};
            fi;
        fi );
        ( if ___is_indexed_array_var HTML_DOCS; then
            [[ ${#HTML_DOCS[@]} -gt 0 ]] && docinto html && dodoc -r "${HTML_DOCS[@]}";
        else
            [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS};
        fi )
    }
    elibtoolize () 
    { 
        type -P eltpatch &> /dev/null || die "eltpatch not found; is app-portage/elt-patches installed?";
        ELT_LOGDIR=${T} LD=$(tc-getLD) eltpatch "${@}" || die "eltpatch failed"
    }
    emktemp () 
    { 
        local exe="touch";
        [[ $1 == -d ]] && exe="mkdir" && shift;
        local topdir=$1;
        if [[ -z ${topdir} ]]; then
            [[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
        fi;
        if ! type -P mktemp > /dev/null; then
            local tmp=/;
            while [[ -e ${tmp} ]]; do
                tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
            done;
            ${exe} "${tmp}" || ${exe} -p "${tmp}";
            echo "${tmp}";
        else
            if [[ ${exe} == "touch" ]]; then
                TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
            else
                TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
            fi;
        fi
    }
    eninja () 
    { 
        local nonfatal_args=();
        [[ ${EAPI:-0} != [245] ]] && nonfatal_args+=(-n);
        if [[ -z ${NINJAOPTS+set} ]]; then
            NINJAOPTS="-j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0)";
        fi;
        set -- ninja -v ${NINJAOPTS} "$@";
        echo "$@" 1>&2;
        "$@" || die "${nonfatal_args[@]}" "${*} failed"
    }
    epatch () 
    { 
        function _epatch_draw_line () 
        { 
            [[ -z $1 ]] && set "$(printf "%65s" '')";
            echo "${1//?/=}"
        };
        unset P4CONFIG P4PORT P4USER;
        local EPATCH_OPTS=(${EPATCH_OPTS[*]});
        while [[ $# -gt 0 ]]; do
            case $1 in 
                -*)
                    EPATCH_OPTS+=("$1")
                ;;
                *)
                    break
                ;;
            esac;
            shift;
        done;
        if [[ $# -gt 1 ]]; then
            local m;
            for m in "$@";
            do
                epatch "${m}";
            done;
            return 0;
        fi;
        local SINGLE_PATCH="no";
        [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}";
        if [[ -f $1 ]]; then
            SINGLE_PATCH="yes";
            set -- "$1";
            local EPATCH_SUFFIX=$1;
        else
            if [[ -d $1 ]]; then
                evar_push_set LC_COLLATE C;
                set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"};
                evar_pop;
            else
                if [[ -f ${EPATCH_SOURCE}/$1 ]]; then
                    epatch "${EPATCH_SOURCE}/$1";
                    return $?;
                else
                    [[ $# -ne 0 ]] && EPATCH_SOURCE=$1;
                    echo;
                    eerror "Cannot find \$EPATCH_SOURCE!  Value for \$EPATCH_SOURCE is:";
                    eerror;
                    eerror "  ${EPATCH_SOURCE}";
                    eerror "  ( ${EPATCH_SOURCE##*/} )";
                    echo;
                    die "Cannot find \$EPATCH_SOURCE!";
                fi;
            fi;
        fi;
        EPATCH_OPTS="${EPATCH_COMMON_OPTS} ${EPATCH_OPTS[*]}";
        local PIPE_CMD;
        case ${EPATCH_SUFFIX##*\.} in 
            xz)
                PIPE_CMD="xz -dc"
            ;;
            lzma)
                PIPE_CMD="lzma -dc"
            ;;
            bz2)
                PIPE_CMD="bzip2 -dc"
            ;;
            gz | Z | z)
                PIPE_CMD="gzip -dc"
            ;;
            ZIP | zip)
                PIPE_CMD="unzip -p"
            ;;
            *)
    
            ;;
        esac;
        [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}";
        local x;
        for x in "$@";
        do
            [[ ! -f ${x} ]] && continue;
            local patchname=${x##*/};
            local a=${patchname#*_};
            a=${a%%_*};
            if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then
                continue;
            fi;
            if [[ -n ${EPATCH_EXCLUDE}${EPATCH_USER_EXCLUDE} ]]; then
                local prev_noglob=$(shopt -p -o noglob);
                set -o noglob;
                local ex;
                for ex in ${EPATCH_EXCLUDE};
                do
                    if [[ ${patchname} == ${ex} ]]; then
                        einfo "  Skipping ${patchname} due to EPATCH_EXCLUDE ...";
                        ${prev_noglob};
                        continue 2;
                    fi;
                done;
                for ex in ${EPATCH_USER_EXCLUDE};
                do
                    if [[ ${patchname} == ${ex} ]]; then
                        einfo "  Skipping ${patchname} due to EPATCH_USER_EXCLUDE ...";
                        ${prev_noglob};
                        continue 2;
                    fi;
                done;
                ${prev_noglob};
            fi;
            if [[ ${SINGLE_PATCH} == "yes" ]]; then
                if [[ -n ${EPATCH_SINGLE_MSG} ]]; then
                    einfo "${EPATCH_SINGLE_MSG}";
                else
                    einfo "Applying ${patchname} ...";
                fi;
            else
                einfo "  ${patchname} ...";
            fi;
            local patch="patch";
            eval $(alias patch 2>/dev/null | sed 's:^alias ::');
            local STDERR_TARGET="${T}/${patchname}.out";
            if [[ -e ${STDERR_TARGET} ]]; then
                STDERR_TARGET="${T}/${patchname}-$$.out";
            fi;
            printf "***** %s *****\nPWD: %s\nPATCH TOOL: %s -> %s\nVERSION INFO:\n%s\n\n" "${patchname}" "${PWD}" "${patch}" "$(type -P "${patch}")" "$(${patch} --version)" > "${STDERR_TARGET}";
            local count=0;
            local PATCH_TARGET;
            if [[ -n ${PIPE_CMD} ]]; then
                PATCH_TARGET="${T}/$$.patch";
                echo "PIPE_COMMAND:  ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}";
                if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
                    echo;
                    eerror "Could not extract patch!";
                    count=5;
                    break;
                fi;
            else
                PATCH_TARGET=${x};
            fi;
            local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
            if [[ -n ${abs_paths} ]]; then
                count=1;
                printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}";
            fi;
            local rel_paths=$(egrep -n '^[-+]{3} [^	]*[.][.]/' "${PATCH_TARGET}");
            if [[ -n ${rel_paths} ]]; then
                echo;
                eerror "Rejected Patch: ${patchname} !";
                eerror " ( ${PATCH_TARGET} )";
                eerror;
                eerror "Your patch uses relative paths '../':";
                eerror "${rel_paths}";
                echo;
                die "you need to fix the relative paths in patch";
            fi;
            local patch_cmd;
            while [[ ${count} -lt 5 ]]; do
                patch_cmd="${patch} -p${count} ${EPATCH_OPTS}";
                ( _epatch_draw_line "***** ${patchname} *****";
                echo;
                echo "PATCH COMMAND:  ${patch_cmd} --dry-run -f < '${PATCH_TARGET}'";
                echo;
                _epatch_draw_line "***** ${patchname} *****";
                ${patch_cmd} --dry-run -f < "${PATCH_TARGET}" 2>&1;
                ret=$?;
                echo;
                echo "patch program exited with status ${ret}";
                exit ${ret} ) >> "${STDERR_TARGET}";
                if [ $? -eq 0 ]; then
                    ( _epatch_draw_line "***** ${patchname} *****";
                    echo;
                    echo "ACTUALLY APPLYING ${patchname} ...";
                    echo "PATCH COMMAND:  ${patch_cmd} < '${PATCH_TARGET}'";
                    echo;
                    _epatch_draw_line "***** ${patchname} *****";
                    ${patch_cmd} < "${PATCH_TARGET}" 2>&1;
                    ret=$?;
                    echo;
                    echo "patch program exited with status ${ret}";
                    exit ${ret} ) >> "${STDERR_TARGET}";
                    if [ $? -ne 0 ]; then
                        echo;
                        eerror "A dry-run of patch command succeeded, but actually";
                        eerror "applying the patch failed!";
                        count=5;
                    fi;
                    break;
                fi;
                : $(( count++ ));
            done;
            (( EPATCH_N_APPLIED_PATCHES++ ));
            if [[ -n ${PIPE_CMD} ]]; then
                rm -f "${PATCH_TARGET}";
            fi;
            if [[ ${count} -ge 5 ]]; then
                echo;
                eerror "Failed Patch: ${patchname} !";
                eerror " ( ${PATCH_TARGET} )";
                eerror;
                eerror "Include in your bugreport the contents of:";
                eerror;
                eerror "  ${STDERR_TARGET}";
                echo;
                die "Failed Patch: ${patchname}!";
            fi;
            rm -f "${STDERR_TARGET}";
            cat <<-EOF >> "${T}/epatch.log"
    PATCH: ${x}
    CMD: ${patch_cmd}
    PWD: ${PWD}
    
    EOF
    
            eend 0;
        done;
        [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
        :
    }
    epause () 
    { 
        ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org"
    }
    eshopts_pop () 
    { 
        local s;
        estack_pop eshopts s || die "${FUNCNAME}: unbalanced push";
        eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}"
    }
    eshopts_push () 
    { 
        if [[ $1 == -[su] ]]; then
            estack_push eshopts "$(shopt -p)";
            [[ $# -eq 0 ]] && return 0;
            shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*";
        else
            estack_push eshopts "$(shopt -p -o)";
            [[ $# -eq 0 ]] && return 0;
            set "$@" || die "${FUNCNAME}: bad options to set: $*";
        fi
    }
    estack_pop () 
    { 
        [[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments";
        local _estack_name="_ESTACK_$1_";
        shift;
        local _estack_retvar=$1;
        shift;
        eval local _estack_i=\${#${_estack_name}\[@\]};
        [[ $(( --_estack_i )) -eq -1 ]] && return 1;
        if [[ -n ${_estack_retvar} ]]; then
            eval ${_estack_retvar}=\"\${${_estack_name}\[${_estack_i}\]}\";
        fi;
        eval unset \"${_estack_name}\[${_estack_i}\]\"
    }
    estack_push () 
    { 
        [[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments";
        local stack_name="_ESTACK_$1_";
        shift;
        eval ${stack_name}+=\( \"\$@\" \)
    }
    esvn_clean () 
    { 
        [[ $# -eq 0 ]] && set -- .;
        find "$@" -type d -name '.svn' -prune -exec rm -rf '{}' +
    }
    eumask_pop () 
    { 
        [[ $# -eq 0 ]] || die "${FUNCNAME}: we take no options";
        local s;
        estack_pop eumask s || die "${FUNCNAME}: unbalanced push";
        umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}"
    }
    eumask_push () 
    { 
        estack_push eumask "$(umask)";
        umask "$@" || die "${FUNCNAME}: bad options to umask: $*"
    }
    evar_pop () 
    { 
        local cnt=${1:-bad};
        case $# in 
            0)
                cnt=1
            ;;
            1)
                isdigit "${cnt}" || die "${FUNCNAME}: first arg must be a number: $*"
            ;;
            *)
                die "${FUNCNAME}: only accepts one arg: $*"
            ;;
        esac;
        local var val;
        while (( cnt-- )); do
            estack_pop evar val || die "${FUNCNAME}: unbalanced push";
            estack_pop evar var || die "${FUNCNAME}: unbalanced push";
            [[ ${val} == "unset_76fc3c462065bb4ca959f939e6793f94" ]] && unset ${var} || printf -v "${var}" '%s' "${val}";
        done
    }
    evar_push () 
    { 
        local var val;
        for var in "$@";
        do
            [[ ${!var+set} == "set" ]] && val=${!var} || val="unset_76fc3c462065bb4ca959f939e6793f94";
            estack_push evar "${var}" "${val}";
        done
    }
    evar_push_set () 
    { 
        local var=$1;
        evar_push ${var};
        case $# in 
            1)
                unset ${var}
            ;;
            2)
                printf -v "${var}" '%s' "$2"
            ;;
            *)
                die "${FUNCNAME}: incorrect # of args: $*"
            ;;
        esac
    }
    filter-flags () 
    { 
        _filter-hardened "$@";
        local v;
        for v in $(all-flag-vars);
        do
            _filter-var ${v} "$@";
        done;
        return 0
    }
    filter-ldflags () 
    { 
        _filter-var LDFLAGS "$@";
        return 0
    }
    filter-lfs-flags () 
    { 
        [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments";
        filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
    }
    filter-mfpmath () 
    { 
        local orig_mfpmath new_math prune_math;
        orig_mfpmath=$(get-flag -mfpmath);
        new_math=$(get-flag mfpmath);
        new_math=${new_math/both/387,sse};
        new_math=" ${new_math//[,+]/ } ";
        prune_math="";
        for prune_math in "$@";
        do
            new_math=${new_math/ ${prune_math} / };
        done;
        new_math=$(echo ${new_math});
        new_math=${new_math// /,};
        if [[ -z ${new_math} ]]; then
            filter-flags ${orig_mfpmath};
        else
            replace-flags ${orig_mfpmath} -mfpmath=${new_math};
        fi;
        return 0
    }
    gcc-fullversion () 
    { 
        _gcc_fullversion '$1.$2.$3' "$@"
    }
    gcc-major-version () 
    { 
        _gcc_fullversion '$1' "$@"
    }
    gcc-micro-version () 
    { 
        _gcc_fullversion '$3' "$@"
    }
    gcc-minor-version () 
    { 
        _gcc_fullversion '$2' "$@"
    }
    gcc-specs-directive () 
    { 
        local directive subdname subdirective;
        directive="$(_gcc-specs-directive_raw $1)";
        while [[ ${directive} == *%\(*\)* ]]; do
            subdname=${directive/*%\(};
            subdname=${subdname/\)*};
            subdirective="$(_gcc-specs-directive_raw ${subdname})";
            directive="${directive//\%(${subdname})/${subdirective}}";
        done;
        echo "${directive}";
        return 0
    }
    gcc-specs-nostrict () 
    { 
        local directive;
        directive=$(gcc-specs-directive cc1);
        [[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]]
    }
    gcc-specs-now () 
    { 
        local directive;
        directive=$(gcc-specs-directive link_command);
        [[ "${directive/\{!nonow:}" != "${directive}" ]]
    }
    gcc-specs-pie () 
    { 
        local directive;
        directive=$(gcc-specs-directive cc1);
        [[ "${directive/\{!nopie:}" != "${directive}" ]]
    }
    gcc-specs-relro () 
    { 
        local directive;
        directive=$(gcc-specs-directive link_command);
        [[ "${directive/\{!norelro:}" != "${directive}" ]]
    }
    gcc-specs-ssp () 
    { 
        local directive;
        directive=$(gcc-specs-directive cc1);
        [[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]]
    }
    gcc-specs-ssp-to-all () 
    { 
        local directive;
        directive=$(gcc-specs-directive cc1);
        [[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]]
    }
    gcc-specs-stack-check () 
    { 
        local directive;
        directive=$(gcc-specs-directive cc1);
        [[ "${directive/\{!fno-stack-check:}" != "${directive}" ]]
    }
    gcc-version () 
    { 
        _gcc_fullversion '$1.$2' "$@"
    }
    gen_usr_ldscript () 
    { 
        local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
        [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/;
        tc-is-static-only && return;
        if [[ $(type -t multilib_is_native_abi) == "function" ]]; then
            multilib_is_native_abi || return 0;
        fi;
        case ${CTARGET:-${CHOST}} in 
            *-darwin*)
    
            ;;
            *-android*)
                return 0
            ;;
            *linux* | *-freebsd* | *-openbsd* | *-netbsd*)
                use prefix && return 0
            ;;
            *)
                return 0
            ;;
        esac;
        dodir /usr/${libdir};
        if [[ $1 == "-a" ]]; then
            auto=true;
            shift;
            dodir /${libdir};
        fi;
        local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose);
        if $(tc-getLD) --version | grep -q 'GNU gold'; then
            local d="${T}/bfd-linker";
            mkdir -p "${d}";
            ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld;
            flags+=(-B"${d}");
        fi;
        output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
        [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
        for lib in "$@";
        do
            local tlib;
            if ${auto}; then
                lib="lib${lib}${suffix}";
            else
                [[ -r ${ED}/${libdir}/${lib} ]] || continue;
            fi;
            case ${CTARGET:-${CHOST}} in 
                *-darwin*)
                    if ${auto}; then
                        tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                    else
                        tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib});
                    fi;
                    [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}";
                    tlib=${tlib##*/};
                    if ${auto}; then
                        mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                        if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
                            mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                        fi;
                        rm -f "${ED}"/${libdir}/${lib};
                    fi;
                    if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
                        chmod u+w "${ED}${libdir}/${tlib}";
                        local nowrite=yes;
                    fi;
                    install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
                    [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
                    pushd "${ED}/usr/${libdir}" > /dev/null;
                    ln -snf "../../${libdir}/${tlib}" "${lib}";
                    popd > /dev/null
                ;;
                *)
                    if ${auto}; then
                        tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                        [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
                        mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                        if [[ ${tlib} != ${lib}* ]]; then
                            mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                        fi;
                        rm -f "${ED}"/${libdir}/${lib};
                    else
                        tlib=${lib};
                    fi;
                    cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
    /* GNU ld script
       Since Gentoo has critical dynamic libraries in /lib, and the static versions
       in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
       run into linking problems.  This "fake" dynamic lib is a linker script that
       redirects the linker to the real lib.  And yes, this works in the cross-
       compiling scenario as the sysroot-ed linker will prepend the real path.
    
       See bug https://bugs.gentoo.org/4411 for more info.
     */
    ${output_format}
    GROUP ( ${EPREFIX}/${libdir}/${tlib} )
    END_LDSCRIPT
    
                ;;
            esac
            fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
        done
    }
    get-flag () 
    { 
        local f var findflag="$1";
        for var in $(all-flag-vars);
        do
            for f in ${!var};
            do
                if [ "${f/${findflag}}" != "${f}" ]; then
                    printf "%s\n" "${f/-${findflag}=}";
                    return 0;
                fi;
            done;
        done;
        return 1
    }
    get_abi_CFLAGS () 
    { 
        get_abi_var CFLAGS "$@"
    }
    get_abi_CHOST () 
    { 
        get_abi_var CHOST "$@"
    }
    get_abi_CTARGET () 
    { 
        get_abi_var CTARGET "$@"
    }
    get_abi_FAKE_TARGETS () 
    { 
        get_abi_var FAKE_TARGETS "$@"
    }
    get_abi_LDFLAGS () 
    { 
        get_abi_var LDFLAGS "$@"
    }
    get_abi_LIBDIR () 
    { 
        get_abi_var LIBDIR "$@"
    }
    get_abi_var () 
    { 
        local flag=$1;
        local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};
        local var="${flag}_${abi}";
        echo ${!var}
    }
    get_after_major_version () 
    { 
        echo $(get_version_component_range 2- "${1:-${PV}}")
    }
    get_all_abis () 
    { 
        local x order="" mvar dvar;
        mvar="MULTILIB_ABIS";
        dvar="DEFAULT_ABI";
        if [[ -n $1 ]]; then
            mvar="$1_${mvar}";
            dvar="$1_${dvar}";
        fi;
        if [[ -z ${!mvar} ]]; then
            echo "default";
            return 0;
        fi;
        for x in ${!mvar};
        do
            if [[ ${x} != ${!dvar} ]]; then
                order="${order:+${order} }${x}";
            fi;
        done;
        order="${order:+${order} }${!dvar}";
        echo ${order};
        return 0
    }
    get_all_libdirs () 
    { 
        local libdirs abi;
        for abi in ${MULTILIB_ABIS};
        do
            libdirs+=" $(get_abi_LIBDIR ${abi})";
        done;
        [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";
        echo "${libdirs}"
    }
    get_all_version_components () 
    { 
        eshopts_push -s extglob;
        local ver_str=${1:-${PV}} result;
        result=();
        if [[ ${VERSIONATOR_CACHE_VER_STR} == ${ver_str} ]]; then
            echo ${VERSIONATOR_CACHE_RESULT};
            eshopts_pop;
            return;
        fi;
        export VERSIONATOR_CACHE_VER_STR=${ver_str};
        while [[ -n $ver_str ]]; do
            case "${ver_str::1}" in 
                [[:digit:]])
                    result+=("${ver_str%%[^[:digit:]]*}");
                    ver_str=${ver_str##+([[:digit:]])}
                ;;
                [-_.])
                    result+=("${ver_str::1}");
                    ver_str=${ver_str:1}
                ;;
                [[:alpha:]])
                    local not_match=${ver_str##+([[:alpha:]])*([[:digit:]])};
                    result+=("${ver_str::${#ver_str} - ${#not_match}}");
                    ver_str=${not_match}
                ;;
                *)
                    result+=("${ver_str::1}");
                    ver_str=${ver_str:1}
                ;;
            esac;
        done;
        export VERSIONATOR_CACHE_RESULT=${result[*]};
        echo ${result[@]};
        eshopts_pop
    }
    get_exeext () 
    { 
        case ${CHOST} in 
            *-cygwin* | mingw* | *-mingw*)
                echo ".exe"
            ;;
        esac
    }
    get_install_abis () 
    { 
        local x order="";
        if [[ -z ${MULTILIB_ABIS} ]]; then
            echo "default";
            return 0;
        fi;
        if [[ ${EMULTILIB_PKG} == "true" ]]; then
            for x in ${MULTILIB_ABIS};
            do
                if [[ ${x} != "${DEFAULT_ABI}" ]]; then
                    has ${x} ${ABI_DENY} || order="${order} ${x}";
                fi;
            done;
            has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";
            if [[ -n ${ABI_ALLOW} ]]; then
                local ordera="";
                for x in ${order};
                do
                    if has ${x} ${ABI_ALLOW}; then
                        ordera="${ordera} ${x}";
                    fi;
                done;
                order=${ordera};
            fi;
        else
            order=${DEFAULT_ABI};
        fi;
        if [[ -z ${order} ]]; then
            die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
        fi;
        echo ${order};
        return 0
    }
    get_last_version_component_index () 
    { 
        echo $(($(get_version_component_count "${1:-${PV}}" ) - 1))
    }
    get_libdir () 
    { 
        local libdir_var="LIBDIR_${ABI}";
        local libdir="lib";
        [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var};
        echo "${libdir}"
    }
    get_libname () 
    { 
        local libname;
        local ver=$1;
        case ${CHOST} in 
            *-cygwin*)
                libname="dll.a"
            ;;
            mingw* | *-mingw*)
                libname="dll"
            ;;
            *-darwin*)
                libname="dylib"
            ;;
            *-mint*)
                libname="irrelevant"
            ;;
            hppa*-hpux*)
                libname="sl"
            ;;
            *)
                libname="so"
            ;;
        esac;
        if [[ -z $* ]]; then
            echo ".${libname}";
        else
            for ver in "$@";
            do
                case ${CHOST} in 
                    *-cygwin*)
                        echo ".${ver}.${libname}"
                    ;;
                    *-darwin*)
                        echo ".${ver}.${libname}"
                    ;;
                    *-mint*)
                        echo ".${libname}"
                    ;;
                    *)
                        echo ".${libname}.${ver}"
                    ;;
                esac;
            done;
        fi
    }
    get_major_version () 
    { 
        local c=($(get_all_version_components "${1:-${PV}}"));
        echo ${c[0]}
    }
    get_modname () 
    { 
        local modname;
        local ver=$1;
        case ${CHOST} in 
            *-darwin*)
                modname="bundle"
            ;;
            *)
                modname="so"
            ;;
        esac;
        echo ".${modname}"
    }
    get_nproc () 
    { 
        local nproc;
        if type -P nproc &> /dev/null; then
            nproc=$(nproc);
        fi;
        if [[ -z ${nproc} ]] && type -P sysctl &> /dev/null; then
            nproc=$(sysctl -n hw.ncpu 2>/dev/null);
        fi;
        if [[ -z ${nproc} ]] && type -P python &> /dev/null; then
            nproc=$(python -c 'import multiprocessing; print(multiprocessing.cpu_count());' 2>/dev/null);
        fi;
        if [[ -n ${nproc} ]]; then
            echo "${nproc}";
        else
            echo "${1:-1}";
        fi
    }
    get_version_component_count () 
    { 
        local a=($(get_version_components "${1:-${PV}}"));
        echo ${#a[@]}
    }
    get_version_component_range () 
    { 
        eshopts_push -s extglob;
        local c v="${2:-${PV}}" range="${1}" range_start range_end;
        local -i i=-1 j=0;
        c=($(get_all_version_components "${v}"));
        range_start=${range%-*};
        range_start=${range_start:-1};
        range_end=${range#*-};
        range_end=${range_end:-${#c[@]}};
        while ((j < range_start)); do
            i+=1;
            ((i > ${#c[@]})) && eshopts_pop && return;
            [[ -n "${c[i]//[-._]}" ]] && j+=1;
        done;
        while ((j <= range_end)); do
            echo -n ${c[i]};
            ((i > ${#c[@]})) && eshopts_pop && return;
            [[ -n "${c[i]//[-._]}" ]] && j+=1;
            i+=1;
        done;
        eshopts_pop
    }
    get_version_components () 
    { 
        local c=$(get_all_version_components "${1:-${PV}}");
        echo ${c//[-._]/ }
    }
    gnome2_disable_deprecation_warning () 
    { 
        local retval=0;
        local fails=();
        local makefile;
        ebegin "Disabling deprecation warnings";
        while read makefile; do
            if ! grep -qE "(DISABLE_DEPRECATED|GSEAL_ENABLE)" "${makefile}"; then
                continue;
            fi;
            LC_ALL=C sed -r -i -e 's:-D[A-Z_]+_DISABLE_DEPRECATED:$(/bin/true):g' -e 's:-DGSEAL_ENABLE(=[A-Za-z0-9_]*)?:$(/bin/true):g' -i "${makefile}";
            if [[ $? -ne 0 ]]; then
                fails+=("${makefile}");
                retval=2;
            fi;
        done < <(find "${S}" -name "Makefile.in" 		-o -name "Makefile.am" -o -name "Makefile.decl" 		| sort; [[ -f "${S}"/configure ]] && echo configure);
        eend ${retval};
        for makefile in "${fails[@]}";
        do
            ewarn "Failed to disable deprecation warnings in ${makefile}";
        done
    }
    gnome2_environment_reset () 
    { 
        xdg_environment_reset;
        export G_HOME="${T}";
        export GST_REGISTRY="${T}/registry.xml";
        export GSETTINGS_BACKEND="memory";
        if has ${EAPI:-0} 6 7; then
            export GST_INSPECT="$(type -P true)";
            unset DISPLAY;
        fi
    }
    gnome2_gconf_install () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}${GCONFTOOL_BIN}";
        if [[ ! -x "${updater}" ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        if [[ -z "${GNOME2_ECLASS_SCHEMAS}" ]]; then
            debug-print "No GNOME 2 GConf schemas found";
            return;
        fi;
        unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL;
        export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed "s;:/;:${ROOT};")";
        einfo "Installing GNOME 2 GConf schemas";
        local F;
        for F in ${GNOME2_ECLASS_SCHEMAS};
        do
            if [[ -e "${EROOT}${F}" ]]; then
                debug-print "Installing schema: ${F}";
                "${updater}" --makefile-install-rule "${EROOT}${F}" > /dev/null;
            fi;
        done;
        pids=$(pgrep -x gconfd-2);
        if [[ $? == 0 ]]; then
            ebegin "Reloading GConf schemas";
            kill -HUP ${pids};
            eend $?;
        fi
    }
    gnome2_gconf_savelist () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}";
        pushd "${ED}" > /dev/null || die;
        export GNOME2_ECLASS_SCHEMAS=$(find 'etc/gconf/schemas/' -name '*.schemas' 2> /dev/null);
        popd > /dev/null || die
    }
    gnome2_gconf_uninstall () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}${GCONFTOOL_BIN}";
        if [[ ! -x "${updater}" ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        if [[ -z "${GNOME2_ECLASS_SCHEMAS}" ]]; then
            debug-print "No GNOME 2 GConf schemas found";
            return;
        fi;
        unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL;
        export GCONF_CONFIG_SOURCE="$("${updater}" --get-default-source | sed "s;:/;:${ROOT};")";
        einfo "Uninstalling GNOME 2 GConf schemas";
        local F;
        for F in ${GNOME2_ECLASS_SCHEMAS};
        do
            if [[ -e "${EROOT}${F}" ]]; then
                debug-print "Uninstalling gconf schema: ${F}";
                "${updater}" --makefile-uninstall-rule "${EROOT}${F}" > /dev/null;
            fi;
        done;
        pids=$(pgrep -x gconfd-2);
        if [[ $? == 0 ]]; then
            ebegin "Reloading GConf schemas";
            kill -HUP ${pids};
            eend $?;
        fi
    }
    gnome2_gdk_pixbuf_savelist () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}";
        pushd "${ED}" > /dev/null || die;
        export GNOME2_ECLASS_GDK_PIXBUF_LOADERS=$(find usr/lib*/gdk-pixbuf-2.0 -type f 2>/dev/null);
        popd > /dev/null || die
    }
    gnome2_gdk_pixbuf_update () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}/usr/bin/${CHOST}-gdk-pixbuf-query-loaders";
        if [[ ! -x ${updater} ]]; then
            updater="${EROOT}/usr/bin/gdk-pixbuf-query-loaders";
        fi;
        if [[ ! -x ${updater} ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        if [[ -z ${GNOME2_ECLASS_GDK_PIXBUF_LOADERS} ]]; then
            debug-print "gdk-pixbuf loader cache does not need an update";
            return;
        fi;
        ebegin "Updating gdk-pixbuf loader cache";
        local tmp_file=$(emktemp);
        ${updater} > "${tmp_file}" && chmod 0644 "${tmp_file}" && cp -f "${tmp_file}" "${EROOT}usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache" && rm "${tmp_file}";
        eend $?
    }
    gnome2_giomodule_cache_update () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}/usr/bin/${CHOST}-gio-querymodules";
        if [[ ! -x ${updater} ]]; then
            updater="${EROOT}/usr/bin/gio-querymodules";
        fi;
        if [[ ! -x ${updater} ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        ebegin "Updating GIO modules cache";
        ${updater} "${EROOT%/}"/usr/$(get_libdir)/gio/modules;
        eend $?
    }
    gnome2_icon_cache_update () 
    { 
        xdg_icon_cache_update
    }
    gnome2_icon_savelist () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}";
        pushd "${ED}" > /dev/null || die;
        export GNOME2_ECLASS_ICONS=$(find 'usr/share/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null);
        popd > /dev/null || die
    }
    gnome2_omf_fix () 
    { 
        local omf_makefiles filename;
        omf_makefiles="$@";
        if [[ -f ${S}/omf.make ]]; then
            omf_makefiles="${omf_makefiles} ${S}/omf.make";
        fi;
        if [[ -f ${S}/gnome-doc-utils.make ]]; then
            omf_makefiles="${omf_makefiles} ${S}/gnome-doc-utils.make";
        fi;
        for filename in $(find "${S}" -name "Makefile.in" -o -name "Makefile.am" |sort);
        do
            omf_makefiles="${omf_makefiles} ${filename}";
        done;
        ebegin "Fixing OMF Makefiles";
        local retval=0;
        local fails=();
        for omf in ${omf_makefiles};
        do
            sed -i -e 's:scrollkeeper-update:true:' "${omf}";
            retval=$?;
            if [[ $retval -ne 0 ]]; then
                debug-print "updating of ${omf} failed";
                fails[$(( ${#fails[@]} + 1 ))]=$omf;
                retval=2;
            fi;
        done;
        eend $retval;
        for f in "${fails[@]}";
        do
            eerror "Failed to update OMF Makefile $f";
        done
    }
    gnome2_pkg_postinst () 
    { 
        xdg_pkg_postinst;
        gnome2_gconf_install;
        if [[ -n ${GNOME2_ECLASS_GLIB_SCHEMAS} ]]; then
            gnome2_schemas_update;
        fi;
        gnome2_scrollkeeper_update;
        gnome2_gdk_pixbuf_update;
        if [[ ${#GNOME2_ECLASS_GIO_MODULES[@]} -gt 0 ]]; then
            gnome2_giomodule_cache_update;
        fi
    }
    gnome2_pkg_postrm () 
    { 
        xdg_pkg_postrm;
        if [[ -n ${GNOME2_ECLASS_GLIB_SCHEMAS} ]]; then
            gnome2_schemas_update;
        fi;
        gnome2_scrollkeeper_update;
        if [[ ${#GNOME2_ECLASS_GIO_MODULES[@]} -gt 0 ]]; then
            gnome2_giomodule_cache_update;
        fi
    }
    gnome2_pkg_preinst () 
    { 
        xdg_pkg_preinst;
        gnome2_gconf_savelist;
        gnome2_schemas_savelist;
        gnome2_scrollkeeper_savelist;
        gnome2_gdk_pixbuf_savelist;
        local f;
        GNOME2_ECLASS_GIO_MODULES=();
        while IFS= read -r -d '' f; do
            GNOME2_ECLASS_GIO_MODULES+=(${f});
        done < <(cd "${D}" && find usr/$(get_libdir)/gio/modules -type f -print0 2>/dev/null);
        export GNOME2_ECLASS_GIO_MODULES
    }
    gnome2_query_immodules_gtk2 () 
    { 
        local updater=${EPREFIX}/usr/bin/${CHOST}-gtk-query-immodules-2.0;
        [[ ! -x ${updater} ]] && updater=${EPREFIX}/usr/bin/gtk-query-immodules-2.0;
        ebegin "Updating gtk2 input method module cache";
        GTK_IM_MODULE_FILE="${EROOT}usr/$(get_libdir)/gtk-2.0/2.10.0/immodules.cache" "${updater}" --update-cache;
        eend $?
    }
    gnome2_query_immodules_gtk3 () 
    { 
        local updater=${EPREFIX}/usr/bin/${CHOST}-gtk-query-immodules-3.0;
        [[ ! -x ${updater} ]] && updater=${EPREFIX}/usr/bin/gtk-query-immodules-3.0;
        ebegin "Updating gtk3 input method module cache";
        GTK_IM_MODULE_FILE="${EROOT}usr/$(get_libdir)/gtk-3.0/3.0.0/immodules.cache" "${updater}" --update-cache;
        eend $?
    }
    gnome2_schemas_savelist () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}";
        pushd "${ED}" > /dev/null || die;
        export GNOME2_ECLASS_GLIB_SCHEMAS=$(find 'usr/share/glib-2.0/schemas' -name '*.gschema.xml' 2>/dev/null);
        popd > /dev/null || die
    }
    gnome2_schemas_update () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}${GLIB_COMPILE_SCHEMAS}";
        if [[ ! -x ${updater} ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        ebegin "Updating GSettings schemas";
        ${updater} --allow-any-name "$@" "${EROOT%/}/usr/share/glib-2.0/schemas" &> /dev/null;
        eend $?
    }
    gnome2_scrollkeeper_savelist () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}";
        pushd "${ED}" > /dev/null || die;
        export GNOME2_ECLASS_SCROLLS=$(find 'usr/share/omf' -type f -name "*.omf" 2> /dev/null);
        popd > /dev/null || die
    }
    gnome2_scrollkeeper_update () 
    { 
        has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}";
        local updater="${EROOT}${SCROLLKEEPER_UPDATE_BIN}";
        if [[ ! -x "${updater}" ]]; then
            debug-print "${updater} is not executable";
            return;
        fi;
        if [[ -z "${GNOME2_ECLASS_SCROLLS}" ]]; then
            debug-print "No scroll cache to update";
            return;
        fi;
        ebegin "Updating scrollkeeper database ...";
        "${updater}" -q -p "${EROOT}${SCROLLKEEPER_DIR}";
        eend $?
    }
    gnome2_src_compile () 
    { 
        if has ${EAPI:-0} 4 5; then
            emake;
        else
            default;
        fi
    }
    gnome2_src_configure () 
    { 
        if [[ -n ${G2CONF} ]]; then
            if has ${EAPI:-0} 4 5; then
                eqawarn "G2CONF set, please review documentation at https://wiki.gentoo.org/wiki/Project:GNOME/Gnome_Team_Ebuild_Policies#G2CONF_and_src_configure";
            else
                die "G2CONF set, please review documentation at https://wiki.gentoo.org/wiki/Project:GNOME/Gnome_Team_Ebuild_Policies#G2CONF_and_src_configure";
            fi;
        fi;
        local g2conf=();
        if has ${EAPI:-0} 4 5; then
            if [[ ${GCONF_DEBUG} != 'no' ]]; then
                if use debug; then
                    g2conf+=(--enable-debug=yes);
                fi;
            fi;
        else
            if [[ -n ${GCONF_DEBUG} ]]; then
                die "GCONF_DEBUG is banned since eapi6 in favor of each ebuild taking care of the proper handling of debug configure option";
            fi;
        fi;
        if grep -q "enable-gtk-doc" "${ECONF_SOURCE:-.}"/configure; then
            if has ${EAPI:-0} 4 && in_iuse doc; then
                g2conf+=($(use_enable doc gtk-doc));
            else
                g2conf+=(--disable-gtk-doc);
            fi;
        fi;
        if grep -q "^[[:space:]]*AM_MAINTAINER_MODE(\[enable\])" "${ECONF_SOURCE:-.}"/configure.*; then
            g2conf+=(--disable-maintainer-mode);
        fi;
        if grep -q "disable-scrollkeeper" "${ECONF_SOURCE:-.}"/configure; then
            g2conf+=(--disable-scrollkeeper);
        fi;
        if has ${EAPI:-0} 4; then
            if grep -q "disable-silent-rules" "${ECONF_SOURCE:-.}"/configure; then
                g2conf+=(--disable-silent-rules);
            fi;
        fi;
        if grep -q "disable-schemas-install" "${ECONF_SOURCE:-.}"/configure; then
            g2conf+=(--disable-schemas-install);
        fi;
        if grep -q "disable-schemas-compile" "${ECONF_SOURCE:-.}"/configure; then
            g2conf+=(--disable-schemas-compile);
        fi;
        if grep -q "disable-update-mimedb" "${ECONF_SOURCE:-.}"/configure; then
            g2conf+=(--disable-update-mimedb);
        fi;
        if grep -q "enable-compile-warnings" "${ECONF_SOURCE:-.}"/configure; then
            g2conf+=(--enable-compile-warnings=minimum);
        fi;
        if has ${EAPI:-0} 4 5; then
            if grep -q "^ *--docdir=" "${ECONF_SOURCE:-.}"/configure; then
                g2conf+=(--docdir="${EPREFIX}"/usr/share/doc/${PF});
            fi;
        fi;
        if has ${EAPI:-0} 4 5; then
            addwrite "$(unset HOME; echo ~)/.gnome2";
        else
            addpredict "$(unset HOME; echo ~)/.gnome2";
        fi;
        if has ${EAPI:-0} 4 5; then
            econf ${g2conf[@]} ${G2CONF} "$@";
        else
            econf ${g2conf[@]} "$@";
        fi
    }
    gnome2_src_install () 
    { 
        export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1";
        local sk_tmp_dir="/var/lib/scrollkeeper";
        if has ${EAPI:-0} 4 5; then
            dodir "${sk_tmp_dir}" || die "dodir failed";
            emake DESTDIR="${D}" "scrollkeeper_localstate_dir=${ED}${sk_tmp_dir} " "$@" install || die "install failed";
        else
            default;
        fi;
        unset GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL;
        if has ${EAPI:-0} 4; then
            if [[ -n "${DOCS}" ]]; then
                dodoc ${DOCS} || die "dodoc failed";
            fi;
        else
            if has ${EAPI:-0} 5; then
                einstalldocs;
            else
                local d;
                for d in HACKING MAINTAINERS;
                do
                    [[ -s "${d}" ]] && dodoc "${d}";
                done;
            fi;
        fi;
        rm -rf "${ED}${sk_tmp_dir}";
        rmdir "${ED}/var/lib" 2> /dev/null;
        rmdir "${ED}/var" 2> /dev/null;
        rm -fr "${ED}/usr/share/applications/mimeinfo.cache";
        if has ${EAPI:-0} 4; then
            if [[ "${GNOME2_LA_PUNT}" != "no" ]]; then
                ebegin "Removing .la files";
                if ! use_if_iuse static-libs; then
                    find "${D}" -name '*.la' -exec rm -f {} + || die "la file removal failed";
                fi;
                eend;
            fi;
        else
            case "${GNOME2_LA_PUNT}" in 
                yes)
                    prune_libtool_files --modules
                ;;
                no)
    
                ;;
                *)
                    prune_libtool_files
                ;;
            esac;
        fi
    }
    gnome2_src_prepare () 
    { 
        xdg_src_prepare;
        gnome2_environment_reset;
        has ${EAPI:-0} 4 5 && gnome2_omf_fix;
        gnome2_disable_deprecation_warning;
        if [[ ${GNOME2_EAUTORECONF} == 'yes' ]]; then
            eautoreconf;
        else
            elibtoolize ${ELTCONF};
        fi
    }
    gnome2_src_unpack () 
    { 
        if has ${EAPI:-0} 4 5; then
            unpack ${A};
            cd "${S}";
        else
            die "gnome2_src_unpack is banned from eapi6";
        fi
    }
    has_m32 () 
    { 
        die "${FUNCNAME}: don't use this anymore"
    }
    has_m64 () 
    { 
        die "${FUNCNAME}: don't use this anymore"
    }
    has_multilib_profile () 
    { 
        [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
    }
    host-is-pax () 
    { 
        grep -qs ^PaX: /proc/self/status
    }
    in_iuse () 
    { 
        local use=${1};
        if [[ -z "${use}" ]]; then
            echo "!!! in_iuse() called without a parameter." 1>&2;
            echo "!!! in_iuse <USEFLAG>" 1>&2;
            die "in_iuse() called without a parameter";
        fi;
        local liuse=(${IUSE_EFFECTIVE});
        has "${use}" "${liuse[@]#[+-]}"
    }
    is-flag () 
    { 
        is-flagq "$@" && echo true
    }
    is-flagq () 
    { 
        [[ -n $2 ]] && die "Usage: is-flag <flag>";
        local var;
        for var in $(all-flag-vars);
        do
            _is_flagq ${var} "$1" && return 0;
        done;
        return 1
    }
    is-ldflag () 
    { 
        is-ldflagq "$@" && echo true
    }
    is-ldflagq () 
    { 
        [[ -n $2 ]] && die "Usage: is-ldflag <flag>";
        _is_flagq LDFLAGS $1
    }
    is_final_abi () 
    { 
        has_multilib_profile || return 0;
        set -- $(get_install_abis);
        local LAST_ABI=$#;
        [[ ${!LAST_ABI} == ${ABI} ]]
    }
    isdigit () 
    { 
        local d;
        for d in "$@";
        do
            [[ ${d:-bad} == *[!0-9]* ]] && return 1;
        done;
        return 0
    }
    list-paxables () 
    { 
        file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
    }
    make_desktop_entry () 
    { 
        [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable";
        local exec=${1};
        local name=${2:-${PN}};
        local icon=${3:-${PN}};
        local type=${4};
        local fields=${5};
        if [[ -z ${type} ]]; then
            local catmaj=${CATEGORY%%-*};
            local catmin=${CATEGORY##*-};
            case ${catmaj} in 
                app)
                    case ${catmin} in 
                        accessibility)
                            type="Utility;Accessibility"
                        ;;
                        admin)
                            type=System
                        ;;
                        antivirus)
                            type=System
                        ;;
                        arch)
                            type="Utility;Archiving"
                        ;;
                        backup)
                            type="Utility;Archiving"
                        ;;
                        cdr)
                            type="AudioVideo;DiscBurning"
                        ;;
                        dicts)
                            type="Office;Dictionary"
                        ;;
                        doc)
                            type=Documentation
                        ;;
                        editors)
                            type="Utility;TextEditor"
                        ;;
                        emacs)
                            type="Development;TextEditor"
                        ;;
                        emulation)
                            type="System;Emulator"
                        ;;
                        laptop)
                            type="Settings;HardwareSettings"
                        ;;
                        office)
                            type=Office
                        ;;
                        pda)
                            type="Office;PDA"
                        ;;
                        vim)
                            type="Development;TextEditor"
                        ;;
                        xemacs)
                            type="Development;TextEditor"
                        ;;
                    esac
                ;;
                dev)
                    type="Development"
                ;;
                games)
                    case ${catmin} in 
                        action | fps)
                            type=ActionGame
                        ;;
                        arcade)
                            type=ArcadeGame
                        ;;
                        board)
                            type=BoardGame
                        ;;
                        emulation)
                            type=Emulator
                        ;;
                        kids)
                            type=KidsGame
                        ;;
                        puzzle)
                            type=LogicGame
                        ;;
                        roguelike)
                            type=RolePlaying
                        ;;
                        rpg)
                            type=RolePlaying
                        ;;
                        simulation)
                            type=Simulation
                        ;;
                        sports)
                            type=SportsGame
                        ;;
                        strategy)
                            type=StrategyGame
                        ;;
                    esac;
                    type="Game;${type}"
                ;;
                gnome)
                    type="Gnome;GTK"
                ;;
                kde)
                    type="KDE;Qt"
                ;;
                mail)
                    type="Network;Email"
                ;;
                media)
                    case ${catmin} in 
                        gfx)
                            type=Graphics
                        ;;
                        *)
                            case ${catmin} in 
                                radio)
                                    type=Tuner
                                ;;
                                sound)
                                    type=Audio
                                ;;
                                tv)
                                    type=TV
                                ;;
                                video)
                                    type=Video
                                ;;
                            esac;
                            type="AudioVideo;${type}"
                        ;;
                    esac
                ;;
                net)
                    case ${catmin} in 
                        dialup)
                            type=Dialup
                        ;;
                        ftp)
                            type=FileTransfer
                        ;;
                        im)
                            type=InstantMessaging
                        ;;
                        irc)
                            type=IRCClient
                        ;;
                        mail)
                            type=Email
                        ;;
                        news)
                            type=News
                        ;;
                        nntp)
                            type=News
                        ;;
                        p2p)
                            type=FileTransfer
                        ;;
                        voip)
                            type=Telephony
                        ;;
                    esac;
                    type="Network;${type}"
                ;;
                sci)
                    case ${catmin} in 
                        astro*)
                            type=Astronomy
                        ;;
                        bio*)
                            type=Biology
                        ;;
                        calc*)
                            type=Calculator
                        ;;
                        chem*)
                            type=Chemistry
                        ;;
                        elec*)
                            type=Electronics
                        ;;
                        geo*)
                            type=Geology
                        ;;
                        math*)
                            type=Math
                        ;;
                        physics)
                            type=Physics
                        ;;
                        visual*)
                            type=DataVisualization
                        ;;
                    esac;
                    type="Education;Science;${type}"
                ;;
                sys)
                    type="System"
                ;;
                www)
                    case ${catmin} in 
                        client)
                            type=WebBrowser
                        ;;
                    esac;
                    type="Network;${type}"
                ;;
                *)
                    type=
                ;;
            esac;
        fi;
        local slot=${SLOT%/*};
        if [[ ${slot} == "0" ]]; then
            local desktop_name="${PN}";
        else
            local desktop_name="${PN}-${slot}";
        fi;
        local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
        type=${type%;}${type:+;};
        if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then
            ewarn "As described in the Icon Theme Specification, icon file extensions are not";
            ewarn "allowed in .desktop files if the value is not an absolute path.";
            icon=${icon%.*};
        fi;
        cat <<-EOF > "${desktop}" || 
    [Desktop Entry]
    Name=${name}
    Type=Application
    Comment=${DESCRIPTION}
    Exec=${exec}
    TryExec=${exec%% *}
    Icon=${icon}
    Categories=${type}
    EOF
     die
        if [[ ${fields:-=} != *=* ]]; then
            ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}";
            fields="Path=${fields}";
        fi;
        if [[ -n ${fields} ]]; then
            printf '%b\n' "${fields}" >> "${desktop}" || die;
        fi;
        ( insopts -m 0644;
        insinto /usr/share/applications;
        doins "${desktop}" ) || die "installing desktop file failed"
    }
    make_session_desktop () 
    { 
        [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
        [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
        local title=$1;
        local command=$2;
        local desktop=${T}/${wm:-${PN}}.desktop;
        shift 2;
        cat <<-EOF > "${desktop}" || 
    [Desktop Entry]
    Name=${title}
    Comment=This session logs you into ${title}
    Exec=${command} $*
    TryExec=${command}
    Type=XSession
    EOF
     die
        ( insopts -m 0644;
        insinto /usr/share/xsessions;
        doins "${desktop}" )
    }
    make_wrapper () 
    { 
        local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
        local tmpwrapper=$(emktemp);
        has "${EAPI:-0}" 0 1 2 && local EPREFIX="";
        ( echo '#!/bin/sh';
        if [[ -n ${libdir} ]]; then
            local var;
            if [[ ${CHOST} == *-darwin* ]]; then
                var=DYLD_LIBRARY_PATH;
            else
                var=LD_LIBRARY_PATH;
            fi;
            cat <<-EOF
    if [ "\${${var}+set}" = "set" ] ; then
    export ${var}="\${${var}}:${EPREFIX}${libdir}"
    else
    export ${var}="${EPREFIX}${libdir}"
    fi
    EOF
    
        fi
        [[ -n ${chdir} ]] && printf 'cd "%s" &&\n' "${EPREFIX}${chdir}";
        printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}/}" ) > "${tmpwrapper}";
        chmod go+rx "${tmpwrapper}";
        if [[ -n ${path} ]]; then
            ( exeopts -m 0755;
            exeinto "${path}";
            newexe "${tmpwrapper}" "${wrapper}" ) || die;
        else
            newbin "${tmpwrapper}" "${wrapper}" || die;
        fi
    }
    makeopts_jobs () 
    { 
        [[ $# -eq 0 ]] && set -- "${MAKEOPTS}";
        local jobs=$(echo " $* " | sed -r -n 		-e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' 		-e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p");
        echo ${jobs:-1}
    }
    makeopts_loadavg () 
    { 
        [[ $# -eq 0 ]] && set -- "${MAKEOPTS}";
        local lavg=$(echo " $* " | sed -r -n 		-e 's:.*[[:space:]](-[a-z]*l|--(load-average|max-load)[=[:space:]])[[:space:]]*([0-9]+(\.[0-9]+)?)[[:space:]].*:\3:p' 		-e "s:.*[[:space:]](-[a-z]*l|--(load-average|max-load))[[:space:]].*:${2:-999}:p");
        echo ${lavg:-${2:-999}}
    }
    multilib_env () 
    { 
        local CTARGET=${1:-${CTARGET}};
        local cpu=${CTARGET%%*-};
        case ${cpu} in 
            aarch64*)
                export CFLAGS_arm=${CFLAGS_arm-};
                case ${cpu} in 
                    aarch64*be)
                        export CHOST_arm="armv8b-${CTARGET#*-}"
                    ;;
                    *)
                        export CHOST_arm="armv8l-${CTARGET#*-}"
                    ;;
                esac;
                CHOST_arm=${CHOST_arm/%-gnu/-gnueabi};
                export CTARGET_arm=${CHOST_arm};
                export LIBDIR_arm="lib";
                export CFLAGS_arm64=${CFLAGS_arm64-};
                export CHOST_arm64=${CTARGET};
                export CTARGET_arm64=${CHOST_arm64};
                export LIBDIR_arm64="lib64";
                : ${MULTILIB_ABIS=arm64};
                : ${DEFAULT_ABI=arm64}
            ;;
            x86_64*)
                export CFLAGS_x86=${CFLAGS_x86--m32};
                export CHOST_x86=${CTARGET/x86_64/i686};
                CHOST_x86=${CHOST_x86/%-gnux32/-gnu};
                export CTARGET_x86=${CHOST_x86};
                if [[ ${SYMLINK_LIB} == "yes" ]]; then
                    export LIBDIR_x86="lib32";
                else
                    export LIBDIR_x86="lib";
                fi;
                export CFLAGS_amd64=${CFLAGS_amd64--m64};
                export CHOST_amd64=${CTARGET/%-gnux32/-gnu};
                export CTARGET_amd64=${CHOST_amd64};
                export LIBDIR_amd64="lib64";
                export CFLAGS_x32=${CFLAGS_x32--mx32};
                export CHOST_x32=${CTARGET/%-gnu/-gnux32};
                export CTARGET_x32=${CHOST_x32};
                export LIBDIR_x32="libx32";
                case ${CTARGET} in 
                    *-gnux32)
                        : ${MULTILIB_ABIS=x32 amd64 x86};
                        : ${DEFAULT_ABI=x32}
                    ;;
                    *)
                        : ${MULTILIB_ABIS=amd64 x86};
                        : ${DEFAULT_ABI=amd64}
                    ;;
                esac
            ;;
            mips64* | mipsisa64*)
                export CFLAGS_o32=${CFLAGS_o32--mabi=32};
                export CHOST_o32=${CTARGET/mips64/mips};
                export CHOST_o32=${CHOST_o32/mipsisa64/mipsisa32};
                export CTARGET_o32=${CHOST_o32};
                export LIBDIR_o32="lib";
                export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
                export CHOST_n32=${CTARGET};
                export CTARGET_n32=${CHOST_n32};
                export LIBDIR_n32="lib32";
                export CFLAGS_n64=${CFLAGS_n64--mabi=64};
                export CHOST_n64=${CTARGET};
                export CTARGET_n64=${CHOST_n64};
                export LIBDIR_n64="lib64";
                : ${MULTILIB_ABIS=n64 n32 o32};
                : ${DEFAULT_ABI=n32}
            ;;
            powerpc64*)
                export CFLAGS_ppc=${CFLAGS_ppc--m32};
                export CHOST_ppc=${CTARGET/powerpc64/powerpc};
                export CTARGET_ppc=${CHOST_ppc};
                export LIBDIR_ppc="lib";
                export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
                export CHOST_ppc64=${CTARGET};
                export CTARGET_ppc64=${CHOST_ppc64};
                export LIBDIR_ppc64="lib64";
                : ${MULTILIB_ABIS=ppc64 ppc};
                : ${DEFAULT_ABI=ppc64}
            ;;
            riscv64*)
                export CFLAGS_lp64d=${CFLAGS_lp64d--mabi=lp64d};
                export CHOST_lp64d=${CTARGET};
                export CTARGET_lp64d=${CTARGET};
                export LIBDIR_lp64d="lib64/lp64d";
                export CFLAGS_lp64=${CFLAGS_lp64--mabi=lp64};
                export CHOST_lp64=${CTARGET};
                export CTARGET_lp64=${CTARGET};
                export LIBDIR_lp64="lib64/lp64";
                : ${MULTILIB_ABIS=lp64d lp64};
                : ${DEFAULT_ABI=lp64d}
            ;;
            s390x*)
                export CFLAGS_s390=${CFLAGS_s390--m31};
                export CHOST_s390=${CTARGET/s390x/s390};
                export CTARGET_s390=${CHOST_s390};
                export LIBDIR_s390="lib";
                export CFLAGS_s390x=${CFLAGS_s390x--m64};
                export CHOST_s390x=${CTARGET};
                export CTARGET_s390x=${CHOST_s390x};
                export LIBDIR_s390x="lib64";
                : ${MULTILIB_ABIS=s390x s390};
                : ${DEFAULT_ABI=s390x}
            ;;
            sparc64*)
                export CFLAGS_sparc32=${CFLAGS_sparc32--m32};
                export CHOST_sparc32=${CTARGET/sparc64/sparc};
                export CTARGET_sparc32=${CHOST_sparc32};
                export LIBDIR_sparc32="lib";
                export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
                export CHOST_sparc64=${CTARGET};
                export CTARGET_sparc64=${CHOST_sparc64};
                export LIBDIR_sparc64="lib64";
                : ${MULTILIB_ABIS=sparc64 sparc32};
                : ${DEFAULT_ABI=sparc64}
            ;;
            *)
                : ${MULTILIB_ABIS=default};
                : ${DEFAULT_ABI=default}
            ;;
        esac;
        export MULTILIB_ABIS DEFAULT_ABI
    }
    multilib_toolchain_setup () 
    { 
        local v vv;
        export ABI=$1;
        if [[ ${_DEFAULT_ABI_SAVED} == "true" ]]; then
            for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH};
            do
                vv="_abi_saved_${v}";
                [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v};
                unset ${vv};
            done;
            unset _DEFAULT_ABI_SAVED;
        fi;
        if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
            for v in CHOST CBUILD AS CC CXX F77 FC LD PKG_CONFIG_{LIBDIR,PATH};
            do
                vv="_abi_saved_${v}";
                [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv};
            done;
            export _DEFAULT_ABI_SAVED="true";
            if [[ ${CBUILD} == "${CHOST}" ]]; then
                export CBUILD=$(get_abi_CHOST $1);
            fi;
            export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
            export CC="$(tc-getCC) $(get_abi_CFLAGS)";
            export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
            export F77="$(tc-getF77) $(get_abi_CFLAGS)";
            export FC="$(tc-getFC) $(get_abi_CFLAGS)";
            export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
            export CHOST=$(get_abi_CHOST $1);
            export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig;
            export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig;
        fi
    }
    newicon () 
    { 
        _iconins ${FUNCNAME} "$@"
    }
    newmenu () 
    { 
        ( insopts -m 0644;
        insinto /usr/share/applications;
        newins "$@" )
    }
    no-as-needed () 
    { 
        case $($(tc-getLD) -v 2>&1 </dev/null) in 
            *GNU*)
                echo "-Wl,--no-as-needed"
            ;;
        esac
    }
    number_abis () 
    { 
        set -- `get_install_abis`;
        echo $#
    }
    optfeature () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        local i j msg;
        local desc=$1;
        local flag=0;
        shift;
        for i in "$@";
        do
            for j in ${i};
            do
                if has_version "${j}"; then
                    flag=1;
                else
                    flag=0;
                    break;
                fi;
            done;
            if [[ ${flag} -eq 1 ]]; then
                break;
            fi;
        done;
        if [[ ${flag} -eq 0 ]]; then
            for i in "$@";
            do
                msg=" ";
                for j in ${i};
                do
                    msg+=" ${j} and";
                done;
                msg="${msg:0: -4} for ${desc}";
                elog "${msg}";
            done;
        fi
    }
    path_exists () 
    { 
        eerror "path_exists has been removed.  Please see the following post";
        eerror "for a replacement snippet:";
        eerror "https://blogs.gentoo.org/mgorny/2018/08/09/inlining-path_exists/";
        die "path_exists is banned"
    }
    pax-mark () 
    { 
        local f;
        local flags;
        local ret=0;
        flags="${1//[!zPpEeMmRrSs]}";
        [[ -n "${flags}" ]] || return 0;
        shift;
        local dodefault="";
        [[ -n "${flags//[!z]}" ]] && dodefault="yes";
        if has PT ${PAX_MARKINGS}; then
            for f in "$@";
            do
                if type -p paxctl > /dev/null; then
                    einfo "PT_PAX marking -${flags} ${f} with paxctl";
                    paxctl -q${flags} "${f}" > /dev/null 2>&1 && continue;
                fi;
                if type -p paxctl-ng > /dev/null && paxctl-ng -L; then
                    einfo "PT_PAX marking -${flags} ${f} with paxctl-ng";
                    flags="${flags//z}";
                    [[ ${dodefault} == "yes" ]] && paxctl-ng -L -z "${f}" > /dev/null 2>&1;
                    [[ -n "${flags}" ]] || continue;
                    paxctl-ng -L -${flags} "${f}" > /dev/null 2>&1 && continue;
                fi;
                if type -p scanelf > /dev/null && [[ ${PAX_MARKINGS} != "none" ]]; then
                    einfo "PT_PAX marking -${flags} ${f} with scanelf";
                    scanelf -Xxz ${flags} "$f" > /dev/null 2>&1;
                else
                    if [[ ${PAX_MARKINGS} != "none" ]]; then
                        elog "Failed to set PT_PAX markings -${flags} ${f}.";
                        ret=1;
                    fi;
                fi;
            done;
        fi;
        if has XT ${PAX_MARKINGS}; then
            flags="${flags//z}";
            for f in "$@";
            do
                if type -p paxctl-ng > /dev/null && paxctl-ng -l; then
                    einfo "XATTR_PAX marking -${flags} ${f} with paxctl-ng";
                    [[ ${dodefault} == "yes" ]] && paxctl-ng -d "${f}" > /dev/null 2>&1;
                    [[ -n "${flags}" ]] || continue;
                    paxctl-ng -l -${flags} "${f}" > /dev/null 2>&1 && continue;
                fi;
                if type -p setfattr > /dev/null; then
                    [[ -n "${flags//[!Ee]}" ]] || flags+="e";
                    einfo "XATTR_PAX marking -${flags} ${f} with setfattr";
                    [[ ${dodefault} == "yes" ]] && setfattr -x "user.pax.flags" "${f}" > /dev/null 2>&1;
                    setfattr -n "user.pax.flags" -v "${flags}" "${f}" > /dev/null 2>&1 && continue;
                fi;
                if [[ ${PAX_MARKINGS} != "none" ]]; then
                    elog "Failed to set XATTR_PAX markings -${flags} ${f}.";
                    ret=1;
                fi;
            done;
        fi;
        return ${ret}
    }
    pkg_nofetch () 
    { 
        default
    }
    pkg_postinst () 
    { 
        gnome2_pkg_postinst "$@"
    }
    pkg_postrm () 
    { 
        gnome2_pkg_postrm "$@"
    }
    pkg_preinst () 
    { 
        gnome2_pkg_preinst "$@"
    }
    pkg_pretend () 
    { 
        if [[ ${MERGE_TYPE} != "binary" ]]; then
            if is-flagq "-g*" && ! is-flagq "-g*0"; then
                einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS";
                check-reqs_pkg_pretend;
            fi;
            if ! test-flag-CXX -std=c++11; then
                die "You need at least GCC 4.9.x or Clang >= 3.3 for C++11-specific compiler flags";
            fi;
            if tc-is-gcc && [[ $(gcc-version) < 4.9 ]]; then
                die 'The active compiler needs to be gcc 4.9 (or newer)';
            fi;
        fi;
        if ! use opengl && ! use gles2; then
            ewarn;
            ewarn "You are disabling OpenGL usage (USE=opengl or USE=gles) completely.";
            ewarn "This is an unsupported configuration meant for very specific embedded";
            ewarn "use cases, where there truly is no GL possible (and even that use case";
            ewarn "is very unlikely to come by). If you have GL (even software-only), you";
            ewarn "really really should be enabling OpenGL!";
            ewarn;
        fi
    }
    pkg_setup () 
    { 
        if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0"; then
            check-reqs_pkg_setup;
        fi;
        python-any-r1_pkg_setup
    }
    preserve_old_lib () 
    { 
        if [[ ${EBUILD_PHASE} != "preinst" ]]; then
            eerror "preserve_old_lib() must be called from pkg_preinst() only";
            die "Invalid preserve_old_lib() usage";
        fi;
        [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
        has preserve-libs ${FEATURES} && return 0;
        has "${EAPI:-0}" 0 1 2 && local ED=${D} EROOT=${ROOT};
        local lib dir;
        for lib in "$@";
        do
            [[ -e ${EROOT}/${lib} ]] || continue;
            dir=${lib%/*};
            dodir ${dir} || die "dodir ${dir} failed";
            cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed";
            touch "${ED}"/${lib};
        done
    }
    preserve_old_lib_notify () 
    { 
        if [[ ${EBUILD_PHASE} != "postinst" ]]; then
            eerror "preserve_old_lib_notify() must be called from pkg_postinst() only";
            die "Invalid preserve_old_lib_notify() usage";
        fi;
        has preserve-libs ${FEATURES} && return 0;
        has "${EAPI:-0}" 0 1 2 && local EROOT=${ROOT};
        local lib notice=0;
        for lib in "$@";
        do
            [[ -e ${EROOT}/${lib} ]] || continue;
            if [[ ${notice} -eq 0 ]]; then
                notice=1;
                ewarn "Old versions of installed libraries were detected on your system.";
                ewarn "In order to avoid breaking packages that depend on these old libs,";
                ewarn "the libraries are not being removed.  You need to run revdep-rebuild";
                ewarn "in order to remove these old dependencies.  If you do not have this";
                ewarn "helper program, simply emerge the 'gentoolkit' package.";
                ewarn;
            fi;
            ewarn "  # revdep-rebuild --library '${lib}' && rm '${lib}'";
        done
    }
    prune_libtool_files () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        local removing_all removing_modules opt;
        for opt in "$@";
        do
            case "${opt}" in 
                --all)
                    removing_all=1;
                    removing_modules=1
                ;;
                --modules)
                    removing_modules=1
                ;;
                *)
                    die "Invalid argument to ${FUNCNAME}(): ${opt}"
                ;;
            esac;
        done;
        local f;
        local queue=();
        while IFS= read -r -d '' f; do
            local archivefile=${f/%.la/.a};
            if ! sed -n -e '/^# Generated by .*libtool/q0;4q1' "${f}"; then
                continue;
            fi;
            [[ ${f} != ${archivefile} ]] || die 'regex sanity check failed';
            local reason= pkgconfig_scanned=;
            local snotlink=$(sed -n -e 's:^shouldnotlink=::p' "${f}");
            if [[ ${snotlink} == yes ]]; then
                if [[ -f ${archivefile} ]]; then
                    einfo "Removing unnecessary ${archivefile#${D%/}} (static plugin)";
                    queue+=("${archivefile}");
                fi;
                if [[ -n ${removing_modules} ]]; then
                    reason='module';
                fi;
            else
                if [[ -n ${removing_all} ]]; then
                    reason='requested';
                else
                    if [[ ! -f ${archivefile} ]]; then
                        reason='no static archive';
                    else
                        if [[ ! -n $(sed -nre 					"s/^(dependency_libs|inherited_linker_flags)='(.*)'$/\2/p" 					"${f}") ]]; then
                            reason='no libs & flags';
                        else
                            if [[ ! -n ${pkgconfig_scanned} ]]; then
                                local pc_libs=();
                                if [[ ! -n ${removing_all} ]]; then
                                    local pc;
                                    local tf=${T}/prune-lt-files.pc;
                                    local pkgconf=$(tc-getPKG_CONFIG);
                                    while IFS= read -r -d '' pc; do
                                        local arg libs;
                                        if ${pkgconf} --exists "${pc}" &> /dev/null; then
                                            sed -e '/^Requires:/d' "${pc}" > "${tf}";
                                            libs=$(${pkgconf} --libs "${tf}");
                                        else
                                            libs=$(sed -ne 's/^Libs://p' "${pc}");
                                        fi;
                                        for arg in ${libs};
                                        do
                                            if [[ ${arg} == -l* ]]; then
                                                if [[ ${arg} == '*$*' ]]; then
                                                    eerror "${FUNCNAME}: variable substitution likely failed in ${pc}";
                                                    eerror "(arg: ${arg})";
                                                    eerror "Most likely, you need to add virtual/pkgconfig to DEPEND.";
                                                    die "${FUNCNAME}: unsubstituted variable found in .pc";
                                                fi;
                                                pc_libs+=(lib${arg#-l}.la);
                                            fi;
                                        done;
                                    done < <(find "${D}" -type f -name '*.pc' -print0);
                                    rm -f "${tf}";
                                fi;
                                pkgconfig_scanned=1;
                            fi;
                            has "${f##*/}" "${pc_libs[@]}" && reason='covered by .pc';
                        fi;
                    fi;
                fi;
            fi;
            if [[ -n ${reason} ]]; then
                einfo "Removing unnecessary ${f#${D%/}} (${reason})";
                queue+=("${f}");
            fi;
        done < <(find "${D}" -xtype f -name '*.la' -print0);
        if [[ -n ${queue[@]} ]]; then
            rm -f "${queue[@]}";
        fi
    }
    python-any-r1_pkg_setup () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ ${MERGE_TYPE} != binary ]] && python_setup
    }
    python_abi_depend () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_byte-compile_modules () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_clean_byte-compiled_modules () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_clean_installation_image () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_clean_py-compile_files () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_convert_shebangs () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#python_convert_shebangs"
    }
    python_disable_pyc () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_doexe () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local f;
        for f in "$@";
        do
            python_newexe "${f}" "${f##*/}";
        done
    }
    python_doheader () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).';
        if [[ ${EAPI:-0} == [0123] ]]; then
            die "python_do* and python_new* helpers are banned in EAPIs older than 4.";
        fi;
        local d PYTHON_INCLUDEDIR=${PYTHON_INCLUDEDIR};
        [[ -n ${PYTHON_INCLUDEDIR} ]] || python_export PYTHON_INCLUDEDIR;
        d=${PYTHON_INCLUDEDIR#${EPREFIX}};
        ( insopts -m 0644;
        insinto "${d}";
        doins -r "${@}" || return ${?} )
    }
    python_domodule () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).';
        if [[ ${EAPI:-0} == [0123] ]]; then
            die "python_do* and python_new* helpers are banned in EAPIs older than 4.";
        fi;
        local d;
        if [[ ${python_moduleroot} == /* ]]; then
            d=${python_moduleroot};
        else
            local PYTHON_SITEDIR=${PYTHON_SITEDIR};
            [[ -n ${PYTHON_SITEDIR} ]] || python_export PYTHON_SITEDIR;
            d=${PYTHON_SITEDIR#${EPREFIX}}/${python_moduleroot//.//};
        fi;
        ( insopts -m 0644;
        insinto "${d}";
        doins -r "${@}" || return ${?} );
        python_optimize "${ED%/}/${d}"
    }
    python_doscript () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local _PYTHON_REWRITE_SHEBANG=1;
        python_doexe "${@}"
    }
    python_enable_pyc () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_execute_function () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#python_execute_function"
    }
    python_execute_nosetests () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_execute_py.test () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_execute_trial () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_export () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local impl var;
        case "${1}" in 
            python* | jython*)
                impl=${1/_/.};
                shift
            ;;
            pypy | pypy3)
                impl=${1};
                shift
            ;;
            *)
                impl=${EPYTHON};
                if [[ -z ${impl} ]]; then
                    die "python_export called without a python implementation and EPYTHON is unset";
                fi
            ;;
        esac;
        debug-print "${FUNCNAME}: implementation: ${impl}";
        for var in "$@";
        do
            case "${var}" in 
                EPYTHON)
                    export EPYTHON=${impl};
                    debug-print "${FUNCNAME}: EPYTHON = ${EPYTHON}"
                ;;
                PYTHON)
                    export PYTHON=${EPREFIX}/usr/bin/${impl};
                    debug-print "${FUNCNAME}: PYTHON = ${PYTHON}"
                ;;
                PYTHON_SITEDIR)
                    [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it";
                    PYTHON_SITEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_lib())') || die;
                    export PYTHON_SITEDIR;
                    debug-print "${FUNCNAME}: PYTHON_SITEDIR = ${PYTHON_SITEDIR}"
                ;;
                PYTHON_INCLUDEDIR)
                    [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it";
                    PYTHON_INCLUDEDIR=$("${PYTHON}" -c 'import distutils.sysconfig; print(distutils.sysconfig.get_python_inc())') || die;
                    export PYTHON_INCLUDEDIR;
                    debug-print "${FUNCNAME}: PYTHON_INCLUDEDIR = ${PYTHON_INCLUDEDIR}";
                    if [[ ! -d ${PYTHON_INCLUDEDIR} ]]; then
                        die "${impl} does not install any header files!";
                    fi
                ;;
                PYTHON_LIBPATH)
                    [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it";
                    PYTHON_LIBPATH=$("${PYTHON}" -c 'import os.path, sysconfig; print(os.path.join(sysconfig.get_config_var("LIBDIR"), sysconfig.get_config_var("LDLIBRARY")) if sysconfig.get_config_var("LDLIBRARY") else "")') || die;
                    export PYTHON_LIBPATH;
                    debug-print "${FUNCNAME}: PYTHON_LIBPATH = ${PYTHON_LIBPATH}";
                    if [[ ! -n ${PYTHON_LIBPATH} ]]; then
                        die "${impl} lacks a (usable) dynamic library";
                    fi
                ;;
                PYTHON_CFLAGS)
                    local val;
                    case "${impl}" in 
                        python*)
                            val=$($(tc-getPKG_CONFIG) --cflags ${impl/n/n-}) || die
                        ;;
                        *)
                            die "${impl}: obtaining ${var} not supported"
                        ;;
                    esac;
                    export PYTHON_CFLAGS=${val};
                    debug-print "${FUNCNAME}: PYTHON_CFLAGS = ${PYTHON_CFLAGS}"
                ;;
                PYTHON_LIBS)
                    local val;
                    case "${impl}" in 
                        python*)
                            val=$($(tc-getPKG_CONFIG) --libs ${impl/n/n-}) || die
                        ;;
                        *)
                            die "${impl}: obtaining ${var} not supported"
                        ;;
                    esac;
                    export PYTHON_LIBS=${val};
                    debug-print "${FUNCNAME}: PYTHON_LIBS = ${PYTHON_LIBS}"
                ;;
                PYTHON_CONFIG)
                    local flags val;
                    case "${impl}" in 
                        python*)
                            [[ -n ${PYTHON} ]] || die "PYTHON needs to be set for ${var} to be exported, or requested before it";
                            flags=$("${PYTHON}" -c 'import sysconfig; print(sysconfig.get_config_var("ABIFLAGS") or "")') || die;
                            val=${PYTHON}${flags}-config
                        ;;
                        *)
                            die "${impl}: obtaining ${var} not supported"
                        ;;
                    esac;
                    export PYTHON_CONFIG=${val};
                    debug-print "${FUNCNAME}: PYTHON_CONFIG = ${PYTHON_CONFIG}"
                ;;
                PYTHON_PKG_DEP)
                    local d;
                    case ${impl} in 
                        python2.7)
                            PYTHON_PKG_DEP='>=dev-lang/python-2.7.5-r2:2.7'
                        ;;
                        python3.3)
                            PYTHON_PKG_DEP='>=dev-lang/python-3.3.2-r2:3.3'
                        ;;
                        python*)
                            PYTHON_PKG_DEP="dev-lang/python:${impl#python}"
                        ;;
                        pypy)
                            PYTHON_PKG_DEP='>=virtual/pypy-5:0='
                        ;;
                        pypy3)
                            PYTHON_PKG_DEP='>=virtual/pypy3-5:0='
                        ;;
                        jython2.7)
                            PYTHON_PKG_DEP='dev-java/jython:2.7'
                        ;;
                        *)
                            die "Invalid implementation: ${impl}"
                        ;;
                    esac;
                    if [[ -n ${PYTHON_REQ_USE} ]]; then
                        PYTHON_PKG_DEP+=[${PYTHON_REQ_USE}];
                    fi;
                    export PYTHON_PKG_DEP;
                    debug-print "${FUNCNAME}: PYTHON_PKG_DEP = ${PYTHON_PKG_DEP}"
                ;;
                PYTHON_SCRIPTDIR)
                    local dir;
                    export PYTHON_SCRIPTDIR=${EPREFIX}/usr/lib/python-exec/${impl};
                    debug-print "${FUNCNAME}: PYTHON_SCRIPTDIR = ${PYTHON_SCRIPTDIR}"
                ;;
                *)
                    die "python_export: unknown variable ${var}"
                ;;
            esac;
        done
    }
    python_export_utf8_locale () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        type locale > /dev/null || return 0;
        if [[ $(locale charmap) != UTF-8 ]]; then
            local lang locales="C.UTF-8 en_US.UTF-8 en_GB.UTF-8 $(locale -a)";
            for lang in ${locales};
            do
                if [[ $(LC_ALL=${lang} locale charmap 2>/dev/null) == UTF-8 ]]; then
                    if _python_check_locale_sanity "${lang}"; then
                        export LC_CTYPE=${lang};
                        if [[ -n ${LC_ALL} ]]; then
                            export LC_NUMERIC=${LC_ALL};
                            export LC_TIME=${LC_ALL};
                            export LC_COLLATE=${LC_ALL};
                            export LC_MONETARY=${LC_ALL};
                            export LC_MESSAGES=${LC_ALL};
                            export LC_PAPER=${LC_ALL};
                            export LC_NAME=${LC_ALL};
                            export LC_ADDRESS=${LC_ALL};
                            export LC_TELEPHONE=${LC_ALL};
                            export LC_MEASUREMENT=${LC_ALL};
                            export LC_IDENTIFICATION=${LC_ALL};
                            export LC_ALL=;
                        fi;
                        return 0;
                    fi;
                fi;
            done;
            ewarn "Could not find a UTF-8 locale. This may trigger build failures in";
            ewarn "some python packages. Please ensure that a UTF-8 locale is listed in";
            ewarn "/etc/locale.gen and run locale-gen.";
            return 1;
        fi;
        return 0
    }
    python_fix_shebang () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ -n ${EPYTHON} ]] || die "${FUNCNAME}: EPYTHON unset (pkg_setup not called?)";
        local force quiet;
        while [[ -n ${@} ]]; do
            case "${1}" in 
                -f | --force)
                    force=1;
                    shift
                ;;
                -q | --quiet)
                    quiet=1;
                    shift
                ;;
                --)
                    shift;
                    break
                ;;
                *)
                    break
                ;;
            esac;
        done;
        [[ -n ${1} ]] || die "${FUNCNAME}: no paths given";
        local path f;
        for path in "$@";
        do
            local any_correct any_fixed is_recursive;
            [[ -d ${path} ]] && is_recursive=1;
            while IFS= read -r -d '' f; do
                local shebang i;
                local error= from=;
                IFS= read -r shebang < "${f}";
                if [[ ${shebang} == '#!'* ]]; then
                    local split_shebang=();
                    read -r -a split_shebang <<< ${shebang} || die;
                    for i in "${split_shebang[@]}";
                    do
                        case "${i}" in 
                            *"${EPYTHON}")
                                debug-print "${FUNCNAME}: in file ${f#${D%/}}";
                                debug-print "${FUNCNAME}: shebang matches EPYTHON: ${shebang}";
                                any_correct=1;
                                from=${EPYTHON};
                                break
                            ;;
                            *python | *python[23])
                                debug-print "${FUNCNAME}: in file ${f#${D%/}}";
                                debug-print "${FUNCNAME}: rewriting shebang: ${shebang}";
                                if [[ ${i} == *python2 ]]; then
                                    from=python2;
                                    if [[ ! -n ${force} ]]; then
                                        python_is_python3 "${EPYTHON}" && error=1;
                                    fi;
                                else
                                    if [[ ${i} == *python3 ]]; then
                                        from=python3;
                                        if [[ ! -n ${force} ]]; then
                                            python_is_python3 "${EPYTHON}" || error=1;
                                        fi;
                                    else
                                        from=python;
                                    fi;
                                fi;
                                break
                            ;;
                            *python[23].[0123456789] | *pypy | *pypy3 | *jython[23].[0123456789])
                                if [[ ! -n ${force} ]]; then
                                    error=1;
                                else
                                    case "${i}" in 
                                        *python[23].[0123456789])
                                            from="python[23].[0123456789]"
                                        ;;
                                        *pypy)
                                            from="pypy"
                                        ;;
                                        *pypy3)
                                            from="pypy3"
                                        ;;
                                        *jython[23].[0123456789])
                                            from="jython[23].[0123456789]"
                                        ;;
                                        *)
                                            die "${FUNCNAME}: internal error in 2nd pattern match"
                                        ;;
                                    esac;
                                fi;
                                break
                            ;;
                        esac;
                    done;
                fi;
                if [[ ! -n ${error} && ! -n ${from} ]]; then
                    [[ -n ${is_recursive} ]] && continue;
                    error=1;
                fi;
                if [[ ! -n ${quiet} ]]; then
                    einfo "Fixing shebang in ${f#${D%/}}.";
                fi;
                if [[ ! -n ${error} ]]; then
                    if [[ ${shebang} == *${from}" "* ]]; then
                        sed -i -e "1s:${from} :${EPYTHON} :" "${f}" || die;
                    else
                        sed -i -e "1s:${from}$:${EPYTHON}:" "${f}" || die;
                    fi;
                    any_fixed=1;
                else
                    eerror "The file has incompatible shebang:";
                    eerror "  file: ${f#${D%/}}";
                    eerror "  current shebang: ${shebang}";
                    eerror "  requested impl: ${EPYTHON}";
                    die "${FUNCNAME}: conversion of incompatible shebang requested";
                fi;
            done < <(find -H "${path}" -type f -print0 || die);
            if [[ ! -n ${any_fixed} ]]; then
                local cmd=eerror;
                [[ ${EAPI:-0} == [012345] ]] && cmd=eqawarn;
                "${cmd}" "QA warning: ${FUNCNAME}, ${path#${D%/}} did not match any fixable files.";
                if [[ -n ${any_correct} ]]; then
                    "${cmd}" "All files have ${EPYTHON} shebang already.";
                else
                    "${cmd}" "There are no Python files in specified directory.";
                fi;
                [[ ${cmd} == eerror ]] && die "${FUNCNAME} did not match any fixable files (QA warning fatal in EAPI ${EAPI})";
            fi;
        done
    }
    python_gen_any_dep () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local depstr=${1};
        [[ -n ${depstr} ]] || die "No dependency string provided";
        local i PYTHON_PKG_DEP out=;
        for i in "${_PYTHON_SUPPORTED_IMPLS[@]}";
        do
            local PYTHON_USEDEP="python_targets_${i}(-),python_single_target_${i}(+)";
            python_export "${i}" PYTHON_PKG_DEP;
            local i_depstr=${depstr//\$\{PYTHON_USEDEP\}/${PYTHON_USEDEP}};
            out="( ${PYTHON_PKG_DEP%=} ${i_depstr} ) ${out}";
        done;
        echo "|| ( ${out})"
    }
    python_generate_cffi_modules () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_generate_wrapper_scripts () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_CFLAGS () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_CFLAGS;
        echo "${PYTHON_CFLAGS}"
    }
    python_get_LIBS () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_LIBS;
        echo "${PYTHON_LIBS}"
    }
    python_get_PYTHON_CONFIG () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_CONFIG;
        echo "${PYTHON_CONFIG}"
    }
    python_get_extension_module_suffix () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_implementation () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_implementation_and_version () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_implementational_package () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_includedir () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_INCLUDEDIR;
        echo "${PYTHON_INCLUDEDIR}"
    }
    python_get_libdir () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_library () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_get_library_path () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_LIBPATH;
        echo "${PYTHON_LIBPATH}"
    }
    python_get_scriptdir () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_SCRIPTDIR;
        echo "${PYTHON_SCRIPTDIR}"
    }
    python_get_sitedir () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_export "${@}" PYTHON_SITEDIR;
        echo "${PYTHON_SITEDIR}"
    }
    python_get_version () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_install_executables () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_is_installed () 
    { 
        local impl=${1:-${EPYTHON}};
        [[ -n ${impl} ]] || die "${FUNCNAME}: no impl nor EPYTHON";
        local hasv_args=();
        case ${EAPI:-0} in 
            0 | 1 | 2 | 3 | 4)
                local -x ROOT=/
            ;;
            5 | 6)
                hasv_args+=(--host-root)
            ;;
            *)
                hasv_args+=(-b)
            ;;
        esac;
        case "${impl}" in 
            pypy | pypy3)
                local append=;
                if [[ -n ${PYTHON_REQ_USE} ]]; then
                    append=[${PYTHON_REQ_USE}];
                fi;
                has_version "${hasv_args[@]}" "dev-python/${impl}${append}" || has_version "${hasv_args[@]}" "dev-python/${impl}-bin${append}"
            ;;
            *)
                local PYTHON_PKG_DEP;
                python_export "${impl}" PYTHON_PKG_DEP;
                has_version "${hasv_args[@]}" "${PYTHON_PKG_DEP}"
            ;;
        esac
    }
    python_is_python3 () 
    { 
        local impl=${1:-${EPYTHON}};
        [[ -n ${impl} ]] || die "python_is_python3: no impl nor EPYTHON";
        [[ ${impl} == python3* || ${impl} == pypy3 ]]
    }
    python_merge_intermediate_installation_images () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_mod_cleanup () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Python_byte-code_compilation"
    }
    python_mod_optimize () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#Python_byte-code_compilation"
    }
    python_moduleinto () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_moduleroot=${1}
    }
    python_need_rebuild () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite"
    }
    python_newexe () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).';
        [[ ${#} -eq 2 ]] || die "Usage: ${FUNCNAME} <path> <new-name>";
        if [[ ${EAPI:-0} == [0123] ]]; then
            die "python_do* and python_new* helpers are banned in EAPIs older than 4.";
        fi;
        local wrapd=${python_scriptroot:-/usr/bin};
        local f=${1};
        local newfn=${2};
        local PYTHON_SCRIPTDIR d;
        python_export PYTHON_SCRIPTDIR;
        d=${PYTHON_SCRIPTDIR#${EPREFIX}};
        ( dodir "${wrapd}";
        exeopts -m 0755;
        exeinto "${d}";
        newexe "${f}" "${newfn}" || return ${?} );
        _python_ln_rel "${ED%/}"/usr/lib/python-exec/python-exec2 "${ED%/}/${wrapd}/${newfn}" || die;
        if [[ -n ${_PYTHON_REWRITE_SHEBANG} ]]; then
            python_fix_shebang -q "${ED%/}/${d}/${newfn}";
        fi
    }
    python_newscript () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local _PYTHON_REWRITE_SHEBANG=1;
        python_newexe "${@}"
    }
    python_optimize () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        if [[ ${EBUILD_PHASE} == pre* || ${EBUILD_PHASE} == post* ]]; then
            eerror "The new Python eclasses expect the compiled Python files to";
            eerror "be controlled by the Package Manager. For this reason,";
            eerror "the python_optimize function can be used only during src_* phases";
            eerror "(src_install most commonly) and not during pkg_* phases.";
            echo;
            die "python_optimize is not to be used in pre/post* phases";
        fi;
        [[ -n ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).';
        local PYTHON=${PYTHON};
        [[ -n ${PYTHON} ]] || python_export PYTHON;
        if [[ ${#} -eq 0 ]]; then
            local f;
            while IFS= read -r -d '' f; do
                if [[ ${f} == /* && -d ${D%/}${f} ]]; then
                    set -- "${D%/}${f}" "${@}";
                fi;
            done < <("${PYTHON}" -c 'import sys; print("\0".join(sys.path))' || die);
            debug-print "${FUNCNAME}: using sys.path: ${*/%/;}";
        fi;
        local d;
        for d in "$@";
        do
            local instpath=${d#${D%/}};
            instpath=/${instpath##/};
            case "${EPYTHON}" in 
                python2.7 | python3.[34])
                    "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}";
                    "${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
                ;;
                python* | pypy3)
                    "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}";
                    "${PYTHON}" -O -m compileall -q -f -d "${instpath}" "${d}";
                    "${PYTHON}" -OO -m compileall -q -f -d "${instpath}" "${d}"
                ;;
                *)
                    "${PYTHON}" -m compileall -q -f -d "${instpath}" "${d}"
                ;;
            esac;
        done
    }
    python_pkg_setup () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#pkg_setup"
    }
    python_scriptinto () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        python_scriptroot=${1}
    }
    python_set_active_version () 
    { 
        die "${FUNCNAME}() is invalid for python-r1 suite, please take a look @ https://wiki.gentoo.org/wiki/Project:Python/Python.eclass_conversion#pkg_setup"
    }
    python_setup () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        if [[ -n ${PYTHON_COMPAT_OVERRIDE} ]]; then
            local impls=(${PYTHON_COMPAT_OVERRIDE});
            [[ ${#impls[@]} -eq 1 ]] || die "PYTHON_COMPAT_OVERRIDE must name exactly one implementation for python-any-r1";
            ewarn "WARNING: PYTHON_COMPAT_OVERRIDE in effect. The following Python";
            ewarn "implementation will be used:";
            ewarn;
            ewarn "	${PYTHON_COMPAT_OVERRIDE}";
            ewarn;
            ewarn "Dependencies won't be satisfied, and EPYTHON/eselect-python will be ignored.";
            python_export "${impls[0]}" EPYTHON PYTHON;
            python_wrapper_setup;
            return;
        fi;
        if [[ -n ${EPYTHON} ]]; then
            if _python_EPYTHON_supported "${EPYTHON}"; then
                python_export EPYTHON PYTHON;
                python_wrapper_setup;
                return;
            fi;
        fi;
        local variant i;
        for variant in '' '--python2' '--python3';
        do
            i=$(eselect python --show ${variant} 2>/dev/null);
            if [[ ! -n ${i} ]]; then
                break;
            else
                if _python_EPYTHON_supported "${i}"; then
                    python_export "${i}" EPYTHON PYTHON;
                    python_wrapper_setup;
                    return;
                fi;
            fi;
        done;
        for ((i = ${#_PYTHON_SUPPORTED_IMPLS[@]} - 1; i >= 0; i-- ))
        do
            python_export "${_PYTHON_SUPPORTED_IMPLS[i]}" EPYTHON PYTHON;
            if _python_EPYTHON_supported "${EPYTHON}"; then
                python_wrapper_setup;
                return;
            fi;
        done;
        eerror "No Python implementation found for the build. This is usually";
        eerror "a bug in the ebuild. Please report it to bugs.gentoo.org";
        eerror "along with the build log.";
        echo;
        die "No supported Python implementation installed."
    }
    python_wrapper_setup () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local workdir=${1:-${T}/${EPYTHON}};
        local impl=${2:-${EPYTHON}};
        [[ -n ${workdir} ]] || die "${FUNCNAME}: no workdir specified.";
        [[ -n ${impl} ]] || die "${FUNCNAME}: no impl nor EPYTHON specified.";
        if [[ ! -x ${workdir}/bin/python ]]; then
            _python_check_dead_variables;
            mkdir -p "${workdir}"/{bin,pkgconfig} || die;
            rm -f "${workdir}"/bin/python{,2,3}{,-config} || die;
            rm -f "${workdir}"/bin/2to3 || die;
            rm -f "${workdir}"/pkgconfig/python{,2,3}.pc || die;
            local EPYTHON PYTHON;
            python_export "${impl}" EPYTHON PYTHON;
            local pyver pyother;
            if python_is_python3; then
                pyver=3;
                pyother=2;
            else
                pyver=2;
                pyother=3;
            fi;
            cat > "${workdir}/bin/python" <<-_EOF_ || 
    #!/bin/sh
    exec "${PYTHON}" "\${@}"
    _EOF_
     die
            cp "${workdir}/bin/python" "${workdir}/bin/python${pyver}" || die;
            chmod +x "${workdir}/bin/python" "${workdir}/bin/python${pyver}" || die;
            local nonsupp=("python${pyother}" "python${pyother}-config");
            if [[ ${EPYTHON} == python* ]]; then
                cat > "${workdir}/bin/python-config" <<-_EOF_ || 
    #!/bin/sh
    exec "${PYTHON}-config" "\${@}"
    _EOF_
     die
                cp "${workdir}/bin/python-config" "${workdir}/bin/python${pyver}-config" || die;
                chmod +x "${workdir}/bin/python-config" "${workdir}/bin/python${pyver}-config" || die;
                ln -s "${PYTHON/python/2to3-}" "${workdir}"/bin/2to3 || die;
                ln -s "${EPREFIX}"/usr/$(get_libdir)/pkgconfig/${EPYTHON/n/n-}.pc "${workdir}"/pkgconfig/python.pc || die;
                ln -s python.pc "${workdir}"/pkgconfig/python${pyver}.pc || die;
            else
                nonsupp+=(2to3 python-config "python${pyver}-config");
            fi;
            local x;
            for x in "${nonsupp[@]}";
            do
                cat > "${workdir}"/bin/${x} <<-_EOF_ || 
    #!/bin/sh
    echo "${ECLASS}: ${FUNCNAME}: ${x} is not supported by ${EPYTHON} (PYTHON_COMPAT)" >&2
    exit 127
    _EOF_
     die
                chmod +x "${workdir}"/bin/${x} || die;
            done;
        fi;
        if [[ ${PATH##:*} != ${workdir}/bin ]]; then
            PATH=${workdir}/bin${PATH:+:${PATH}};
        fi;
        if [[ ${PKG_CONFIG_PATH##:*} != ${workdir}/pkgconfig ]]; then
            PKG_CONFIG_PATH=${workdir}/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}};
        fi;
        export PATH PKG_CONFIG_PATH
    }
    raw-ldflags () 
    { 
        local x input="$@";
        [[ -z ${input} ]] && input=${LDFLAGS};
        set --;
        for x in ${input};
        do
            case ${x} in 
                -Wl,*)
                    x=${x#-Wl,};
                    set -- "$@" ${x//,/ }
                ;;
                *)
    
                ;;
            esac;
        done;
        echo "$@"
    }
    replace-cpu-flags () 
    { 
        local newcpu="$#";
        newcpu="${!newcpu}";
        while [ $# -gt 1 ]; do
            replace-flags "-march=${1}" "-march=${newcpu}";
            replace-flags "-mcpu=${1}" "-mcpu=${newcpu}";
            replace-flags "-mtune=${1}" "-mtune=${newcpu}";
            shift;
        done;
        return 0
    }
    replace-flags () 
    { 
        [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>";
        local f var new;
        for var in $(all-flag-vars);
        do
            new=();
            for f in ${!var};
            do
                [[ ${f} == ${1} ]] && f=${2};
                new+=("${f}");
            done;
            export ${var}="${new[*]}";
        done;
        return 0
    }
    replace-sparc64-flags () 
    { 
        local SPARC64_CPUS="ultrasparc3 ultrasparc v9";
        if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then
            for x in ${SPARC64_CPUS};
            do
                CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";
            done;
        else
            for x in ${SPARC64_CPUS};
            do
                CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
            done;
        fi;
        if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then
            for x in ${SPARC64_CPUS};
            do
                CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";
            done;
        else
            for x in ${SPARC64_CPUS};
            do
                CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
            done;
        fi;
        export CFLAGS CXXFLAGS
    }
    replace_all_version_separators () 
    { 
        local c=($(get_all_version_components "${2:-${PV}}"));
        c=${c[@]//[-._]/$1};
        echo ${c// }
    }
    replace_version_separator () 
    { 
        eshopts_push -s extglob;
        local w c v="${3:-${PV}}";
        declare -i i found=0;
        w=${1:-1};
        c=($(get_all_version_components ${v}));
        if [[ ${w} != *[[:digit:]]* ]]; then
            for ((i = 0; i < ${#c[@]}; i++))
            do
                if [[ ${c[i]} == ${w} ]]; then
                    c[i]=${2};
                    break;
                fi;
            done;
        else
            for ((i = 0; i < ${#c[@]}; i++))
            do
                if [[ -n "${c[i]//[^-._]}" ]]; then
                    found+=1;
                    if ((found == w)); then
                        c[i]=${2};
                        break;
                    fi;
                fi;
            done;
        fi;
        c=${c[*]};
        echo ${c// };
        eshopts_pop
    }
    setup-allowed-flags () 
    { 
        ALLOWED_FLAGS=(-pipe -O '-O[12sg]' -mcpu -march -mtune '-fstack-protector*' '-fsanitize*' '-fstack-check*' -fno-stack-check -fbounds-check -fbounds-checking -fno-strict-overflow -fno-PIE -fno-pie -nopie -no-pie -fno-unit-at-a-time -g '-g[0-9]' -ggdb '-ggdb[0-9]' '-gdwarf-*' gstabs -gstabs+ -gz -fno-ident -fpermissive -frecord-gcc-switches '-fdiagnostics*' '-fplugin*' '-W*' -w '-[DUILR]*' '-Wl,*' '-fuse-ld');
        ALLOWED_FLAGS+=('-fno-stack-protector*' '-fabi-version=*' -fno-strict-aliasing -fno-bounds-check -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer '-fno-builtin*');
        ALLOWED_FLAGS+=(-mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt -mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt '-m*-toc' -mfloat-abi -mfix-r10000 -mno-fix-r10000 -mthumb -marm -mno-fma4 -mno-movbe -mno-xop -mno-lwp -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt -mno-fxsr -mno-hle -mno-rtm -mno-xsave -mno-xsaveopt -mno-avx512cd -mno-avx512er -mno-avx512f -mno-avx512pf -mno-sha);
        ALLOWED_FLAGS+=(-mstackrealign)
    }
    src_compile () 
    { 
        cmake-utils_src_compile
    }
    src_configure () 
    { 
        tc-export CC;
        use alpha && append-ldflags "-Wl,--no-relax";
        use ia64 && append-ldflags "-Wl,--no-as-needed";
        use sparc && filter-flags "-mvis";
        use ppc64 && append-flags "-mminimal-toc";
        if ! use ia64; then
            append-ldflags "-Wl,--no-keep-memory";
        fi;
        append-flags $(test-flags -fno-strict-aliasing);
        local rubyimpl;
        local ruby_interpreter="";
        for rubyimpl in ${USE_RUBY};
        do
            if has_version "virtual/rubygems[ruby_targets_${rubyimpl}]"; then
                ruby_interpreter="-DRUBY_EXECUTABLE=$(type -P ${rubyimpl})";
            fi;
        done;
        [[ -z $ruby_interpreter ]] && die "No suitable ruby interpreter found";
        local opengl_enabled;
        if use opengl || use gles2; then
            opengl_enabled=ON;
        else
            opengl_enabled=OFF;
        fi;
        local mycmakeargs=(-DENABLE_QUARTZ_TARGET=$(usex aqua) -DENABLE_API_TESTS=$(usex test) -DENABLE_GTKDOC=$(usex doc) -DENABLE_GEOLOCATION=$(usex geolocation) $(cmake-utils_use_find_package gles2 OpenGLES2) -DENABLE_GLES2=$(usex gles2) -DENABLE_VIDEO=$(usex gstreamer) -DENABLE_WEB_AUDIO=$(usex gstreamer) -DENABLE_INTROSPECTION=$(usex introspection) -DUSE_LIBNOTIFY=$(usex libnotify) -DUSE_LIBSECRET=$(usex gnome-keyring) -DUSE_OPENJPEG=$(usex jpeg2k) -DUSE_WOFF2=ON -DENABLE_BUBBLEWRAP_SANDBOX=$(usex bwrap) -DENABLE_PLUGIN_PROCESS_GTK2=$(usex nsplugin) -DENABLE_SPELLCHECK=$(usex spell) -DENABLE_WAYLAND_TARGET=$(usex wayland) -DENABLE_WEBGL=$(usex webgl) $(cmake-utils_use_find_package egl EGL) $(cmake-utils_use_find_package opengl OpenGL) -DENABLE_X11_TARGET=$(usex X) -DENABLE_OPENGL=${opengl_enabled} -DCMAKE_BUILD_TYPE=Release -DPORT=GTK ${ruby_interpreter});
        cmake-utils_src_configure
    }
    src_install () 
    { 
        cmake-utils_src_install;
        pax-mark m "${ED}usr/libexec/webkit2gtk-4.0/jsc" "${ED}usr/libexec/webkit2gtk-4.0/WebKitWebProcess";
        pax-mark m "${ED}usr/libexec/webkit2gtk-4.0/WebKitPluginProcess";
        use nsplugin && pax-mark m "${ED}usr/libexec/webkit2gtk-4.0/WebKitPluginProcess"2
    }
    src_prepare () 
    { 
        cmake-utils_src_prepare;
        gnome2_src_prepare
    }
    src_test () 
    { 
        pax-mark m $(list-paxables Programs/*[Tt]ests/*);
        cmake-utils_src_test
    }
    src_unpack () 
    { 
        default
    }
    strip-flags () 
    { 
        local x y var;
        local ALLOWED_FLAGS;
        setup-allowed-flags;
        set -f;
        for var in $(all-flag-vars);
        do
            local new=();
            for x in ${!var};
            do
                local flag=${x%%=*};
                for y in "${ALLOWED_FLAGS[@]}";
                do
                    if [[ -z ${flag%%${y}} ]]; then
                        new+=("${x}");
                        break;
                    fi;
                done;
            done;
            if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then
                new+=(-O2);
            fi;
            if [[ ${!var} != "${new[*]}" ]]; then
                einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'";
            fi;
            export ${var}="${new[*]}";
        done;
        set +f;
        return 0
    }
    strip-linguas () 
    { 
        local ls newls nols;
        if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
            local op=$1;
            shift;
            ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
            shift;
            local d f;
            for d in "$@";
            do
                if [[ ${op} == "-u" ]]; then
                    newls=${ls};
                else
                    newls="";
                fi;
                for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
                do
                    if [[ ${op} == "-i" ]]; then
                        has ${f} ${ls} && newls="${newls} ${f}";
                    else
                        has ${f} ${ls} || newls="${newls} ${f}";
                    fi;
                done;
                ls=${newls};
            done;
        else
            ls="$@";
        fi;
        nols="";
        newls="";
        for f in ${LINGUAS};
        do
            if has ${f} ${ls}; then
                newls="${newls} ${f}";
            else
                nols="${nols} ${f}";
            fi;
        done;
        [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
        export LINGUAS=${newls:1}
    }
    strip-unsupported-flags () 
    { 
        export CFLAGS=$(test-flags-CC ${CFLAGS});
        export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});
        export FFLAGS=$(test-flags-F77 ${FFLAGS});
        export FCFLAGS=$(test-flags-FC ${FCFLAGS});
        export LDFLAGS=$(test-flags-CC ${LDFLAGS})
    }
    tc-arch () 
    { 
        tc-ninja_magic_to_arch portage "$@"
    }
    tc-arch-kernel () 
    { 
        tc-ninja_magic_to_arch kern "$@"
    }
    tc-check-openmp () 
    { 
        if ! tc-has-openmp; then
            eerror "Your current compiler does not support OpenMP!";
            if tc-is-gcc; then
                eerror "Enable OpenMP support by building sys-devel/gcc with USE=\"openmp\".";
            else
                if tc-is-clang; then
                    eerror "OpenMP support in sys-devel/clang is provided by sys-libs/libomp.";
                fi;
            fi;
            die "Active compiler does not have required support for OpenMP";
        fi
    }
    tc-cpp-is-true () 
    { 
        local CONDITION=${1};
        shift;
        local RESULT=$($(tc-getTARGET_CPP) "${@}" -P - <<-EOF 2>/dev/null
    			#if ${CONDITION}
    			true
    			#endif
    		EOF
    	);
        [[ ${RESULT} == true ]]
    }
    tc-detect-is-softfloat () 
    { 
        [[ $(tc-getTARGET_CPP) == "gcc -E" ]] && return 1;
        case ${CTARGET:-${CHOST}} in 
            *-newlib | *-elf | *-eabi)
                return 1
            ;;
            arm*)
                if tc-cpp-is-true "defined(__ARM_PCS_VFP)"; then
                    echo "no";
                else
                    if tc-cpp-is-true "defined(__SOFTFP__)"; then
                        echo "yes";
                    else
                        echo "softfp";
                    fi;
                fi;
                return 0
            ;;
            *)
                return 1
            ;;
        esac
    }
    tc-enables-pie () 
    { 
        tc-cpp-is-true "defined(__PIE__)" ${CPPFLAGS} ${CFLAGS}
    }
    tc-enables-ssp () 
    { 
        tc-cpp-is-true "defined(__SSP__) || defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
    }
    tc-enables-ssp-all () 
    { 
        tc-cpp-is-true "defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
    }
    tc-enables-ssp-strong () 
    { 
        tc-cpp-is-true "defined(__SSP_STRONG__) || defined(__SSP_ALL__)" ${CPPFLAGS} ${CFLAGS}
    }
    tc-endian () 
    { 
        local host=$1;
        [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
        host=${host%%-*};
        case ${host} in 
            aarch64*be)
                echo big
            ;;
            aarch64)
                echo little
            ;;
            alpha*)
                echo little
            ;;
            arm*b*)
                echo big
            ;;
            arm*)
                echo little
            ;;
            cris*)
                echo little
            ;;
            hppa*)
                echo big
            ;;
            i?86*)
                echo little
            ;;
            ia64*)
                echo little
            ;;
            m68*)
                echo big
            ;;
            mips*l*)
                echo little
            ;;
            mips*)
                echo big
            ;;
            powerpc*le)
                echo little
            ;;
            powerpc*)
                echo big
            ;;
            riscv*)
                echo little
            ;;
            s390*)
                echo big
            ;;
            sh*b*)
                echo big
            ;;
            sh*)
                echo little
            ;;
            sparc*)
                echo big
            ;;
            x86_64*)
                echo little
            ;;
            *)
                echo wtf
            ;;
        esac
    }
    tc-env_build () 
    { 
        tc-export_build_env;
        CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@"
    }
    tc-export () 
    { 
        local var;
        for var in "$@";
        do
            [[ $(type -t "tc-get${var}") != "function" ]] && die "tc-export: invalid export variable '${var}'";
            "tc-get${var}" > /dev/null;
        done
    }
    tc-export_build_env () 
    { 
        tc-export "$@";
        if tc-is-cross-compiler; then
            : ${BUILD_CFLAGS:=-O1 -pipe};
            : ${BUILD_CXXFLAGS:=-O1 -pipe};
            : ${BUILD_CPPFLAGS:= };
            : ${BUILD_LDFLAGS:= };
        else
            : ${BUILD_CFLAGS:=${CFLAGS}};
            : ${BUILD_CXXFLAGS:=${CXXFLAGS}};
            : ${BUILD_CPPFLAGS:=${CPPFLAGS}};
            : ${BUILD_LDFLAGS:=${LDFLAGS}};
        fi;
        export BUILD_{C,CXX,CPP,LD}FLAGS;
        local v;
        for v in BUILD_{C,CXX,CPP,LD}FLAGS;
        do
            export ${v#BUILD_}_FOR_BUILD="${!v}";
        done
    }
    tc-get-compiler-type () 
    { 
        local code='
    #if defined(__PATHSCALE__)
    	HAVE_PATHCC
    #elif defined(__clang__)
    	HAVE_CLANG
    #elif defined(__GNUC__)
    	HAVE_GCC
    #endif
    ';
        local res=$($(tc-getCPP "$@") -E -P - <<<"${code}");
        case ${res} in 
            *HAVE_PATHCC*)
                echo pathcc
            ;;
            *HAVE_CLANG*)
                echo clang
            ;;
            *HAVE_GCC*)
                echo gcc
            ;;
            *)
                echo unknown
            ;;
        esac
    }
    tc-getAR () 
    { 
        tc-getPROG AR ar "$@"
    }
    tc-getAS () 
    { 
        tc-getPROG AS as "$@"
    }
    tc-getBUILD_AR () 
    { 
        tc-getBUILD_PROG AR ar "$@"
    }
    tc-getBUILD_AS () 
    { 
        tc-getBUILD_PROG AS as "$@"
    }
    tc-getBUILD_CC () 
    { 
        tc-getBUILD_PROG CC gcc "$@"
    }
    tc-getBUILD_CPP () 
    { 
        tc-getBUILD_PROG CPP "$(tc-getBUILD_CC) -E" "$@"
    }
    tc-getBUILD_CXX () 
    { 
        tc-getBUILD_PROG CXX g++ "$@"
    }
    tc-getBUILD_LD () 
    { 
        tc-getBUILD_PROG LD ld "$@"
    }
    tc-getBUILD_NM () 
    { 
        tc-getBUILD_PROG NM nm "$@"
    }
    tc-getBUILD_OBJCOPY () 
    { 
        tc-getBUILD_PROG OBJCOPY objcopy "$@"
    }
    tc-getBUILD_PKG_CONFIG () 
    { 
        tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"
    }
    tc-getBUILD_PROG () 
    { 
        local vars="BUILD_$1 $1_FOR_BUILD HOST$1";
        tc-is-cross-compiler || vars+=" $1";
        _tc-getPROG CBUILD "${vars}" "${@:2}"
    }
    tc-getBUILD_RANLIB () 
    { 
        tc-getBUILD_PROG RANLIB ranlib "$@"
    }
    tc-getBUILD_STRIP () 
    { 
        tc-getBUILD_PROG STRIP strip "$@"
    }
    tc-getCC () 
    { 
        tc-getPROG CC gcc "$@"
    }
    tc-getCPP () 
    { 
        tc-getPROG CPP "${CC:-gcc} -E" "$@"
    }
    tc-getCXX () 
    { 
        tc-getPROG CXX g++ "$@"
    }
    tc-getDLLWRAP () 
    { 
        tc-getPROG DLLWRAP dllwrap "$@"
    }
    tc-getF77 () 
    { 
        tc-getPROG F77 gfortran "$@"
    }
    tc-getFC () 
    { 
        tc-getPROG FC gfortran "$@"
    }
    tc-getGCJ () 
    { 
        tc-getPROG GCJ gcj "$@"
    }
    tc-getGO () 
    { 
        tc-getPROG GO gccgo "$@"
    }
    tc-getLD () 
    { 
        tc-getPROG LD ld "$@"
    }
    tc-getNM () 
    { 
        tc-getPROG NM nm "$@"
    }
    tc-getOBJCOPY () 
    { 
        tc-getPROG OBJCOPY objcopy "$@"
    }
    tc-getOBJDUMP () 
    { 
        tc-getPROG OBJDUMP objdump "$@"
    }
    tc-getPKG_CONFIG () 
    { 
        tc-getPROG PKG_CONFIG pkg-config "$@"
    }
    tc-getPROG () 
    { 
        _tc-getPROG CHOST "$@"
    }
    tc-getRANLIB () 
    { 
        tc-getPROG RANLIB ranlib "$@"
    }
    tc-getRC () 
    { 
        tc-getPROG RC windres "$@"
    }
    tc-getSTRIP () 
    { 
        tc-getPROG STRIP strip "$@"
    }
    tc-getTARGET_CPP () 
    { 
        if [[ -n ${CTARGET} ]]; then
            _tc-getPROG CTARGET TARGET_CPP "gcc -E" "$@";
        else
            tc-getCPP "$@";
        fi
    }
    tc-has-openmp () 
    { 
        local base="${T}/test-tc-openmp";
        cat <<-EOF > "${base}.c"
    #include <omp.h>
    int main() {
    int nthreads, tid, ret = 0;
    #pragma omp parallel private(nthreads, tid)
    {
    tid = omp_get_thread_num();
    nthreads = omp_get_num_threads(); ret += tid + nthreads;
    }
    return ret;
    }
    EOF
    
        $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &> /dev/null;
        local ret=$?;
        rm -f "${base}"*;
        return ${ret}
    }
    tc-has-tls () 
    { 
        local base="${T}/test-tc-tls";
        cat <<-EOF > "${base}.c"
    int foo(int *i) {
    static __thread int j = 0;
    return *i ? j : *i;
    }
    EOF
    
        local flags;
        case $1 in 
            -s)
                flags="-S"
            ;;
            -c)
                flags="-c"
            ;;
            -l)
    
            ;;
            -*)
                die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
            ;;
        esac;
        : ${flags:=-fPIC -shared -Wl,-z,defs};
        [[ $1 == -* ]] && shift;
        $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &> /dev/null;
        local ret=$?;
        rm -f "${base}"*;
        return ${ret}
    }
    tc-is-clang () 
    { 
        [[ $(tc-get-compiler-type) == clang ]]
    }
    tc-is-cross-compiler () 
    { 
        [[ ${CBUILD:-${CHOST}} != ${CHOST} ]]
    }
    tc-is-gcc () 
    { 
        [[ $(tc-get-compiler-type) == gcc ]]
    }
    tc-is-softfloat () 
    { 
        tc-detect-is-softfloat || tc-tuple-is-softfloat
    }
    tc-is-static-only () 
    { 
        local host=${CTARGET:-${CHOST}};
        [[ ${host} == *-mint* ]]
    }
    tc-ld-disable-gold () 
    { 
        if ! tc-ld-is-gold "$@"; then
            return;
        fi;
        ewarn "Forcing usage of the BFD linker instead of GOLD";
        local ld=$(tc-getLD "$@");
        local bfd_ld="${ld%% *}.bfd";
        local path_ld=$(which "${bfd_ld}" 2>/dev/null);
        [[ -e ${path_ld} ]] && export LD=${bfd_ld};
        local fallback="true";
        if tc-is-gcc; then
            local major=$(gcc-major-version "$@");
            local minor=$(gcc-minor-version "$@");
            if [[ ${major} -gt 4 ]] || [[ ${major} -eq 4 && ${minor} -ge 8 ]]; then
                export LDFLAGS="${LDFLAGS} -fuse-ld=bfd";
                fallback="false";
            fi;
        else
            if tc-is-clang; then
                local major=$(clang-major-version "$@");
                local minor=$(clang-minor-version "$@");
                if [[ ${major} -gt 3 ]] || [[ ${major} -eq 3 && ${minor} -ge 5 ]]; then
                    export LDFLAGS="${LDFLAGS} -fuse-ld=bfd";
                    fallback="false";
                fi;
            fi;
        fi;
        if [[ ${fallback} == "true" ]]; then
            if [[ -e ${path_ld} ]]; then
                local d="${T}/bfd-linker";
                mkdir -p "${d}";
                ln -sf "${path_ld}" "${d}"/ld;
                export LDFLAGS="${LDFLAGS} -B${d}";
            else
                die "unable to locate a BFD linker to bypass gold";
            fi;
        fi
    }
    tc-ld-is-gold () 
    { 
        local out;
        out=$($(tc-getLD "$@") --version 2>&1);
        if [[ ${out} == *"GNU gold"* ]]; then
            return 0;
        fi;
        local base="${T}/test-tc-gold";
        cat <<-EOF > "${base}.c"
    int main() { return 0; }
    EOF
    
        out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1);
        rm -f "${base}"*;
        if [[ ${out} == *"GNU gold"* ]]; then
            return 0;
        fi;
        return 1
    }
    tc-ninja_magic_to_arch () 
    { 
        function ninj () 
        { 
            [[ ${type} == "kern" ]] && echo $1 || echo $2
        };
        local type=$1;
        local host=$2;
        [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
        case ${host} in 
            aarch64*)
                echo arm64
            ;;
            alpha*)
                echo alpha
            ;;
            arm*)
                echo arm
            ;;
            avr*)
                ninj avr32 avr
            ;;
            bfin*)
                ninj blackfin bfin
            ;;
            c6x*)
                echo c6x
            ;;
            cris*)
                echo cris
            ;;
            frv*)
                echo frv
            ;;
            hexagon*)
                echo hexagon
            ;;
            hppa*)
                ninj parisc hppa
            ;;
            i?86*)
                if [[ ${type} == "kern" && ${host} == *freebsd* ]]; then
                    echo i386;
                else
                    echo x86;
                fi
            ;;
            ia64*)
                echo ia64
            ;;
            m68*)
                echo m68k
            ;;
            metag*)
                echo metag
            ;;
            microblaze*)
                echo microblaze
            ;;
            mips*)
                echo mips
            ;;
            nios2*)
                echo nios2
            ;;
            nios*)
                echo nios
            ;;
            or1k | or32*)
                echo openrisc
            ;;
            powerpc*)
                if [[ ${type} == "kern" ]]; then
                    echo powerpc;
                else
                    if [[ ${host} == powerpc64* ]]; then
                        echo ppc64;
                    else
                        echo ppc;
                    fi;
                fi
            ;;
            riscv*)
                echo riscv
            ;;
            s390*)
                echo s390
            ;;
            score*)
                echo score
            ;;
            sh64*)
                ninj sh64 sh
            ;;
            sh*)
                echo sh
            ;;
            sparc64*)
                ninj sparc64 sparc
            ;;
            sparc*)
                [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
            ;;
            tile*)
                echo tile
            ;;
            vax*)
                echo vax
            ;;
            x86_64*freebsd*)
                echo amd64
            ;;
            x86_64*)
                if [[ ${type} == "kern" ]]; then
                    echo x86;
                else
                    echo amd64;
                fi
            ;;
            xtensa*)
                echo xtensa
            ;;
            *)
                echo unknown
            ;;
        esac
    }
    tc-stack-grows-down () 
    { 
        case ${ARCH} in 
            hppa | metag)
                return 1
            ;;
        esac;
        return 0
    }
    tc-tuple-is-softfloat () 
    { 
        local CTARGET=${CTARGET:-${CHOST}};
        case ${CTARGET//_/-} in 
            bfin* | h8300*)
                echo "only"
            ;;
            *-softfloat-*)
                echo "yes"
            ;;
            *-softfp-*)
                echo "softfp"
            ;;
            arm*-hardfloat-* | arm*eabihf)
                echo "no"
            ;;
            *-newlib | *-elf | *-eabi)
                echo "no"
            ;;
            arm*)
                echo "yes"
            ;;
            *)
                echo "no"
            ;;
        esac
    }
    test-flag-CC () 
    { 
        test-flag-PROG "CC" c "$@"
    }
    test-flag-CXX () 
    { 
        test-flag-PROG "CXX" c++ "$@"
    }
    test-flag-F77 () 
    { 
        test-flag-PROG "F77" f77 "$@"
    }
    test-flag-FC () 
    { 
        test-flag-PROG "FC" f95 "$@"
    }
    test-flag-PROG () 
    { 
        local comp=$1;
        local lang=$2;
        shift 2;
        [[ -z ${comp} || -z $1 ]] && return 1;
        local cmdline=($(tc-get${comp}) -Werror -c -o /dev/null);
        if "${cmdline[@]}" -x${lang} - < /dev/null &> /dev/null; then
            cmdline+=("$@" -x${lang} -);
        else
            cmdline+=("$@" -c -o /dev/null /dev/null);
        fi;
        if ! "${cmdline[@]}" < /dev/null &> /dev/null; then
            cmdline+=(-Qunused-arguments);
            "${cmdline[@]}" < /dev/null &> /dev/null;
        fi
    }
    test-flags () 
    { 
        test-flags-CC "$@"
    }
    test-flags-CC () 
    { 
        test-flags-PROG "CC" "$@"
    }
    test-flags-CXX () 
    { 
        test-flags-PROG "CXX" "$@"
    }
    test-flags-F77 () 
    { 
        test-flags-PROG "F77" "$@"
    }
    test-flags-FC () 
    { 
        test-flags-PROG "FC" "$@"
    }
    test-flags-PROG () 
    { 
        local comp=$1;
        local flags=();
        local x;
        shift;
        [[ -z ${comp} ]] && return 1;
        while (( $# )); do
            case "$1" in 
                --param)
                    if test-flag-${comp} "$1" "$2"; then
                        flags+=("$1" "$2");
                    fi;
                    shift 2
                ;;
                *)
                    if test-flag-${comp} "$1"; then
                        flags+=("$1");
                    fi;
                    shift 1
                ;;
            esac;
        done;
        echo "${flags[*]}";
        [[ ${#flags[@]} -gt 0 ]]
    }
    test_version_info () 
    { 
        if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then
            return 0;
        else
            return 1;
        fi
    }
    uclibctoolize () 
    { 
        die "Use elibtoolize"
    }
    use_if_iuse () 
    { 
        in_iuse $1 || return 1;
        use $1
    }
    ver_cut () 
    { 
        local range=${1};
        local v=${2:-${PV}};
        local start end;
        local -a comp;
        _ver_split "${v}";
        local max=$((${#comp[@]}/2));
        _ver_parse_range "${range}" "${max}";
        if [[ ${start} -gt 0 ]]; then
            start=$(( start*2 - 1 ));
        fi;
        printf "%s" "${comp[@]:start:end*2-start}" '
    '
    }
    ver_rs () 
    { 
        local v;
        (( ${#} & 1 )) && v=${@: -1} || v=${PV};
        local start end i;
        local -a comp;
        _ver_split "${v}";
        local max=$((${#comp[@]}/2 - 1));
        while [[ ${#} -ge 2 ]]; do
            _ver_parse_range "${1}" "${max}";
            for ((i = start*2; i <= end*2; i+=2 ))
            do
                [[ ${i} -eq 0 && -z ${comp[i]} ]] && continue;
                comp[i]=${2};
            done;
            shift 2;
        done;
        local IFS=;
        echo "${comp[*]}"
    }
    ver_test () 
    { 
        local va op vb;
        if [[ $# -eq 3 ]]; then
            va=${1};
            shift;
        else
            va=${PVR};
        fi;
        [[ $# -eq 2 ]] || die "${FUNCNAME}: bad number of arguments";
        op=${1};
        vb=${2};
        case ${op} in 
            -eq | -ne | -lt | -le | -gt | -ge)
    
            ;;
            *)
                die "${FUNCNAME}: invalid operator: ${op}"
            ;;
        esac;
        _ver_compare "${va}" "${vb}";
        test $? "${op}" 2
    }
    version_compare () 
    { 
        eshopts_push -s extglob;
        local ver_a=${1} ver_b=${2} parts_a parts_b;
        local cur_tok_a cur_tok_b num_part_a num_part_b;
        local -i cur_idx_a=0 cur_idx_b=0 prev_idx_a prev_idx_b;
        parts_a=($(get_all_version_components "${ver_a}" ));
        parts_b=($(get_all_version_components "${ver_b}" ));
        local -i inf_loop=0;
        while true; do
            inf_loop+=1;
            ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
            prev_idx_a=cur_idx_a;
            prev_idx_b=cur_idx_b;
            cur_tok_a=${parts_a[cur_idx_a]};
            cur_tok_b=${parts_b[cur_idx_b]};
            if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then
                cur_idx_a+=1;
                [[ ${parts_a[cur_idx_a]} == . ]] && cur_idx_a+=1;
            else
                cur_tok_a=;
            fi;
            if [[ -n ${cur_tok_b} ]] && [[ -z ${cur_tok_b//[[:digit:]]} ]]; then
                cur_idx_b+=1;
                [[ ${parts_b[cur_idx_b]} == . ]] && cur_idx_b+=1;
            else
                cur_tok_b=;
            fi;
            [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]] && break;
            [[ -z ${cur_tok_a} ]] && eshopts_pop && return 1;
            [[ -z ${cur_tok_b} ]] && eshopts_pop && return 3;
            if (( prev_idx_a != 0 && prev_idx_b != 0 )) && [[ ${cur_tok_a} == 0* || ${cur_tok_b} == 0* ]]; then
                cur_tok_a=${cur_tok_a%%+(0)};
                cur_tok_b=${cur_tok_b%%+(0)};
                [[ ${cur_tok_a} < ${cur_tok_b} ]] && eshopts_pop && return 1;
                [[ ${cur_tok_a} > ${cur_tok_b} ]] && eshopts_pop && return 3;
            else
                cur_tok_a=${cur_tok_a##+(0)};
                cur_tok_b=${cur_tok_b##+(0)};
                : ${cur_tok_a:=0};
                : ${cur_tok_b:=0};
                ((cur_tok_a < cur_tok_b)) && eshopts_pop && return 1;
                ((cur_tok_a > cur_tok_b)) && eshopts_pop && return 3;
            fi;
        done;
        local letter_a=;
        letter_a=${parts_a[cur_idx_a]};
        if [[ ${#letter_a} -eq 1 && -z ${letter_a/[a-z]} ]]; then
            cur_idx_a+=1;
        else
            letter_a=@;
        fi;
        local letter_b=;
        letter_b=${parts_b[cur_idx_b]};
        if [[ ${#letter_b} -eq 1 && -z ${letter_b/[a-z]} ]]; then
            cur_idx_b+=1;
        else
            letter_b=@;
        fi;
        [[ ${letter_a} < ${letter_b} ]] && eshopts_pop && return 1;
        [[ ${letter_a} > ${letter_b} ]] && eshopts_pop && return 3;
        inf_loop=0;
        while true; do
            inf_loop+=1;
            ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
            [[ ${parts_a[cur_idx_a]} == _ ]] && ((cur_idx_a++));
            [[ ${parts_b[cur_idx_b]} == _ ]] && ((cur_idx_b++));
            cur_tok_a=${parts_a[cur_idx_a]};
            cur_tok_b=${parts_b[cur_idx_b]};
            num_part_a=0;
            num_part_b=0;
            if has ${cur_tok_a%%+([0-9])} "alpha" "beta" "pre" "rc" "p"; then
                cur_idx_a+=1;
                num_part_a=${cur_tok_a##+([a-z])};
                num_part_a=${num_part_a##+(0)};
                : ${num_part_a:=0};
                cur_tok_a=${cur_tok_a%%+([0-9])};
            else
                cur_tok_a=;
            fi;
            if has ${cur_tok_b%%+([0-9])} alpha beta pre rc p; then
                cur_idx_b+=1;
                num_part_b=${cur_tok_b##+([a-z])};
                num_part_b=${num_part_b##+(0)};
                : ${num_part_b:=0};
                cur_tok_b=${cur_tok_b%%+([0-9])};
            else
                cur_tok_b=;
            fi;
            if [[ ${cur_tok_a} != ${cur_tok_b} ]]; then
                local suffix;
                for suffix in alpha beta pre rc "" p;
                do
                    [[ ${cur_tok_a} == ${suffix} ]] && eshopts_pop && return 1;
                    [[ ${cur_tok_b} == ${suffix} ]] && eshopts_pop && return 3;
                done;
            else
                if [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]]; then
                    break;
                else
                    ((num_part_a < num_part_b)) && eshopts_pop && return 1;
                    ((num_part_a > num_part_b)) && eshopts_pop && return 3;
                fi;
            fi;
        done;
        [[ ${parts_a[cur_idx_a]} == - ]] && ((cur_idx_a++));
        [[ ${parts_b[cur_idx_b]} == - ]] && ((cur_idx_b++));
        if [[ -n ${parts_a[cur_idx_a]/r+([0-9])} || -n ${parts_b[cur_idx_b]/r+([0-9])} ]]; then
            die "versionator compare bug [revisions, ${ver_a}, ${ver_b}]";
        fi;
        num_part_a=${parts_a[cur_idx_a]#r};
        num_part_a=${num_part_a##+(0)};
        : ${num_part_a:=0};
        num_part_b=${parts_b[cur_idx_b]#r};
        num_part_b=${num_part_b##+(0)};
        : ${num_part_b:=0};
        ((num_part_a < num_part_b)) && eshopts_pop && return 1;
        ((num_part_a > num_part_b)) && eshopts_pop && return 3;
        eshopts_pop;
        return 2
    }
    version_format_string () 
    { 
        local fstr=$1;
        shift;
        set -- $(get_version_components "$@");
        eval echo "${fstr}"
    }
    version_is_at_least () 
    { 
        local want_s="$1" have_s="${2:-${PVR}}" r;
        version_compare "${want_s}" "${have_s}";
        r=$?;
        case $r in 
            1 | 2)
                return 0
            ;;
            3)
                return 1
            ;;
            *)
                die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]"
            ;;
        esac
    }
    version_sort () 
    { 
        eshopts_push -s extglob;
        local items=;
        local -i left=0;
        items=("$@");
        while ((left < ${#items[@]})); do
            local -i lowest_idx=left;
            local -i idx=lowest_idx+1;
            while ((idx < ${#items[@]})); do
                version_compare "${items[lowest_idx]}" "${items[idx]}";
                [[ $? -eq 3 ]] && lowest_idx=idx;
                idx+=1;
            done;
            local tmp=${items[lowest_idx]};
            items[lowest_idx]=${items[left]};
            items[left]=${tmp};
            left+=1;
        done;
        echo ${items[@]};
        eshopts_pop
    }
    virtualmake () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ ${EAPI} == [45] ]] || die "${FUNCNAME} is unsupported in EAPI > 5, please use virtx";
        if [[ -n ${maketype} ]]; then
            [[ ${EAPI} == [45] ]] || die "maketype is banned in EAPI > 5";
            eqawarn "ebuild is exporting \$maketype=${maketype}";
            eqawarn "Ebuild should be migrated to use 'virtx command' instead.";
            VIRTUALX_COMMAND=${maketype};
        fi;
        virtx "${VIRTUALX_COMMAND}" "${@}"
    }
    virtx () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ $# -lt 1 ]] && die "${FUNCNAME} needs at least one argument";
        local i=0;
        local retval=0;
        local OLD_SANDBOX_ON="${SANDBOX_ON}";
        local XVFB XHOST XDISPLAY;
        local xvfbargs="-screen 0 1280x1024x24 +extension RANDR";
        XVFB=$(type -p Xvfb) || die;
        XHOST=$(type -p xhost) || die;
        debug-print "${FUNCNAME}: running Xvfb hack";
        export XAUTHORITY=;
        einfo "Scanning for an open DISPLAY to start Xvfb ...";
        XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo ${i});
        debug-print "${FUNCNAME}: XDISPLAY=${XDISPLAY}";
        export SANDBOX_ON="0";
        debug-print "${FUNCNAME}: ${XVFB} :${XDISPLAY} ${xvfbargs}";
        ${XVFB} :${XDISPLAY} ${xvfbargs} &> /dev/null & sleep 2;
        local start=${XDISPLAY};
        while [[ ! -f /tmp/.X${XDISPLAY}-lock ]]; do
            if ((XDISPLAY - start > 15)); then
                eerror "'${XVFB} :${XDISPLAY} ${xvfbargs}' returns:";
                echo;
                ${XVFB} :${XDISPLAY} ${xvfbargs};
                echo;
                eerror "If possible, correct the above error and try your emerge again.";
                die "Unable to start Xvfb";
            fi;
            ((XDISPLAY++));
            debug-print "${FUNCNAME}: ${XVFB} :${XDISPLAY} ${xvfbargs}";
            ${XVFB} :${XDISPLAY} ${xvfbargs} &> /dev/null & sleep 2;
        done;
        export SANDBOX_ON="${OLD_SANDBOX_ON}";
        einfo "Starting Xvfb on \$DISPLAY=${XDISPLAY} ...";
        export DISPLAY=:${XDISPLAY};
        debug-print "${FUNCNAME}: $@";
        nonfatal "$@";
        retval=$?;
        kill $(cat /tmp/.X${XDISPLAY}-lock);
        [[ ${retval} -ne 0 ]] && die "Failed to run '$@'";
        return 0
    }
    xdg_desktop_database_update () 
    { 
        if [[ ${EBUILD_PHASE} != post* ]]; then
            die "xdg_desktop_database_update must be used in pkg_post* phases.";
        fi;
        if ! type update-desktop-database &> /dev/null; then
            debug-print "update-desktop-database is not found";
            return;
        fi;
        ebegin "Updating .desktop files database";
        update-desktop-database -q "${EROOT%/}${DESKTOP_DATABASE_DIR}";
        eend $?
    }
    xdg_environment_reset () 
    { 
        export XDG_DATA_HOME="${HOME}/.local/share";
        export XDG_CONFIG_HOME="${HOME}/.config";
        export XDG_CACHE_HOME="${HOME}/.cache";
        export XDG_RUNTIME_DIR="${T}/run";
        mkdir -p "${XDG_DATA_HOME}" "${XDG_CONFIG_HOME}" "${XDG_CACHE_HOME}" "${XDG_RUNTIME_DIR}" || die;
        chmod 0700 "${XDG_RUNTIME_DIR}" || die;
        unset DBUS_SESSION_BUS_ADDRESS
    }
    xdg_icon_cache_update () 
    { 
        if [[ ${EBUILD_PHASE} != post* ]]; then
            die "xdg_icon_cache_update must be used in pkg_post* phases.";
        fi;
        if ! type gtk-update-icon-cache &> /dev/null; then
            debug-print "gtk-update-icon-cache is not found";
            return;
        fi;
        ebegin "Updating icons cache";
        local retval=0;
        local fails=();
        for dir in "${EROOT%/}"/usr/share/icons/*;
        do
            if [[ -f "${dir}/index.theme" ]]; then
                local rv=0;
                gtk-update-icon-cache -qf "${dir}";
                rv=$?;
                if [[ ! $rv -eq 0 ]]; then
                    debug-print "Updating cache failed on ${dir}";
                    fails+=("${dir}");
                    retval=2;
                fi;
            else
                if [[ $(ls "${dir}") = "icon-theme.cache" ]]; then
                    rm "${dir}/icon-theme.cache";
                fi;
            fi;
            if [[ -z $(ls "${dir}") ]]; then
                rmdir "${dir}";
            fi;
        done;
        eend ${retval};
        for f in "${fails[@]}";
        do
            eerror "Failed to update cache with icon $f";
        done
    }
    xdg_mimeinfo_database_update () 
    { 
        if [[ ${EBUILD_PHASE} != post* ]]; then
            die "xdg_mimeinfo_database_update must be used in pkg_post* phases.";
        fi;
        if ! type update-mime-database &> /dev/null; then
            debug-print "update-mime-database is not found";
            return;
        fi;
        ebegin "Updating shared mime info database";
        update-mime-database "${EROOT%/}${MIMEINFO_DATABASE_DIR}";
        eend $?
    }
    xdg_pkg_postinst () 
    { 
        if [[ ${#XDG_ECLASS_DESKTOPFILES[@]} -gt 0 ]]; then
            xdg_desktop_database_update;
        else
            debug-print "No .desktop files to add to database";
        fi;
        if [[ ${#XDG_ECLASS_ICONFILES[@]} -gt 0 ]]; then
            xdg_icon_cache_update;
        else
            debug-print "No icon files to add to cache";
        fi;
        if [[ ${#XDG_ECLASS_MIMEINFOFILES[@]} -gt 0 ]]; then
            xdg_mimeinfo_database_update;
        else
            debug-print "No mime info files to add to database";
        fi
    }
    xdg_pkg_postrm () 
    { 
        if [[ ${#XDG_ECLASS_DESKTOPFILES[@]} -gt 0 ]]; then
            xdg_desktop_database_update;
        else
            debug-print "No .desktop files to add to database";
        fi;
        if [[ ${#XDG_ECLASS_ICONFILES[@]} -gt 0 ]]; then
            xdg_icon_cache_update;
        else
            debug-print "No icon files to add to cache";
        fi;
        if [[ ${#XDG_ECLASS_MIMEINFOFILES[@]} -gt 0 ]]; then
            xdg_mimeinfo_database_update;
        else
            debug-print "No mime info files to add to database";
        fi
    }
    xdg_pkg_preinst () 
    { 
        local f;
        XDG_ECLASS_DESKTOPFILES=();
        while IFS= read -r -d '' f; do
            XDG_ECLASS_DESKTOPFILES+=(${f});
        done < <(cd "${ED}" && find 'usr/share/applications' -type f -print0 2>/dev/null);
        XDG_ECLASS_ICONFILES=();
        while IFS= read -r -d '' f; do
            XDG_ECLASS_ICONFILES+=(${f});
        done < <(cd "${ED}" && find 'usr/share/icons' -type f -print0 2>/dev/null);
        XDG_ECLASS_MIMEINFOFILES=();
        while IFS= read -r -d '' f; do
            XDG_ECLASS_MIMEINFOFILES+=(${f});
        done < <(cd "${ED}" && find 'usr/share/mime' -type f -print0 2>/dev/null)
    }
    xdg_src_prepare () 
    { 
        xdg_environment_reset;
        [[ ${EAPI:-0} != [45] ]] && default
    }

     

     

    + Thanks a lot for your time.

     

     

     

  2. emerge -pqv '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'
     

    [ebuild   R   ] sys-apps/xdg-desktop-portal-gtk-1.4.0  USE="X wayland"


    emerge --info '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'
     

    Portage 2.3.68 (python 2.7.15-final-0, funtoo/1.0/linux-gnu/arch/x86-64bit, gcc-9.2.0, glibc-2.29-r3, 4.19.27-gentoo-r1 x86_64)
    =================================================================
                             System Settings
    =================================================================
    System uname: Linux-4.19.27-gentoo-r1-x86_64-Intel-R-_Core-TM-_i7_CPU_920_@_2.67GHz-with-gentoo-1.4
    KiB Mem:    12281744 total,   3360456 free
    KiB Swap:   18874364 total,  18874364 free
    sh bash 5.0_p7
    ld GNU ld (Gentoo 2.32 p2) 2.32.0
    app-shells/bash:          5.0_p7::core-kit
    dev-lang/perl:            5.28.2-r1::perl-kit
    dev-lang/python:          2.7.15::python-kit, 3.6.8::python-kit, 3.7.3::python-kit
    dev-util/cmake:           3.14.5::core-kit
    sys-apps/baselayout:      2.6.1-r1::core-kit
    sys-apps/openrc:          0.41.2-r2::core-kit
    sys-apps/sandbox:         2.17::core-kit
    sys-devel/autoconf:       2.13-r1::core-kit, 2.69-r4::core-kit
    sys-devel/automake:       1.11.6-r3::core-kit, 1.16.1-r1::core-kit
    sys-devel/binutils:       2.32-r1::core-kit
    sys-devel/gcc:            9.2.0::core-kit
    sys-devel/gcc-config:     2.0::core-kit
    sys-devel/libtool:        2.4.6-r5::core-kit
    sys-devel/make:           4.2.1-r4::core-kit
    sys-kernel/linux-headers: 4.14::core-kit (virtual/os-headers)
    sys-libs/glibc:           2.29-r3::core-kit
    Repositories:
    
    nokit
        location: /var/git/meta-repo/kits/nokit
        masters: core-kit
        priority: -500
    
    core-gl-kit
        location: /var/git/meta-repo/kits/core-gl-kit
        masters: core-kit
        priority: 1
    
    core-hw-kit
        location: /var/git/meta-repo/kits/core-hw-kit
        masters: core-kit
        priority: 1
    
    core-kit
        location: /var/git/meta-repo/kits/core-kit
        masters: core-kit
        priority: 1
        aliases: gentoo
    
    core-server-kit
        location: /var/git/meta-repo/kits/core-server-kit
        masters: core-kit
        priority: 1
    
    core-ui-kit
        location: /var/git/meta-repo/kits/core-ui-kit
        masters: core-kit
        priority: 1
    
    desktop-kit
        location: /var/git/meta-repo/kits/desktop-kit
        masters: core-kit
        priority: 1
    
    dev-kit
        location: /var/git/meta-repo/kits/dev-kit
        masters: core-kit
        priority: 1
    
    editors-kit
        location: /var/git/meta-repo/kits/editors-kit
        masters: core-kit
        priority: 1
    
    games-kit
        location: /var/git/meta-repo/kits/games-kit
        masters: core-kit
        priority: 1
    
    gnome-kit
        location: /var/git/meta-repo/kits/gnome-kit
        masters: core-kit
        priority: 1
    
    haskell-kit
        location: /var/git/meta-repo/kits/haskell-kit
        masters: core-kit
        priority: 1
    
    java-kit
        location: /var/git/meta-repo/kits/java-kit
        masters: core-kit
        priority: 1
    
    kde-kit
        location: /var/git/meta-repo/kits/kde-kit
        masters: core-kit
        priority: 1
    
    lang-kit
        location: /var/git/meta-repo/kits/lang-kit
        masters: core-kit
        priority: 1
    
    lisp-scheme-kit
        location: /var/git/meta-repo/kits/lisp-scheme-kit
        masters: core-kit
        priority: 1
    
    llvm-kit
        location: /var/git/meta-repo/kits/llvm-kit
        masters: core-kit
        priority: 1
    
    media-kit
        location: /var/git/meta-repo/kits/media-kit
        masters: core-kit
        priority: 1
    
    ml-lang-kit
        location: /var/git/meta-repo/kits/ml-lang-kit
        masters: core-kit
        priority: 1
    
    net-kit
        location: /var/git/meta-repo/kits/net-kit
        masters: core-kit
        priority: 1
    
    perl-kit
        location: /var/git/meta-repo/kits/perl-kit
        masters: core-kit
        priority: 1
    
    python-kit
        location: /var/git/meta-repo/kits/python-kit
        masters: core-kit
        priority: 1
    
    python-modules-kit
        location: /var/git/meta-repo/kits/python-modules-kit
        masters: core-kit
        priority: 1
    
    ruby-kit
        location: /var/git/meta-repo/kits/ruby-kit
        masters: core-kit
        priority: 1
    
    rust-kit
        location: /var/git/meta-repo/kits/rust-kit
        masters: core-kit
        priority: 1
    
    science-kit
        location: /var/git/meta-repo/kits/science-kit
        masters: core-kit
        priority: 1
    
    security-kit
        location: /var/git/meta-repo/kits/security-kit
        masters: core-kit
        priority: 1
    
    text-kit
        location: /var/git/meta-repo/kits/text-kit
        masters: core-kit
        priority: 1
    
    xfce-kit
        location: /var/git/meta-repo/kits/xfce-kit
        masters: core-kit
        priority: 1
    
    xorg-kit
        location: /var/git/meta-repo/kits/xorg-kit
        masters: core-kit
        priority: 1
    
    flatpak-overlay
        location: /var/lib/layman/flatpak-overlay
        sync-type: laymansync
        sync-uri: https://github.com/fosero/flatpak-overlay.git
        masters: core-kit
        priority: 50
    
    ACCEPT_KEYWORDS="amd64 ~amd64"
    ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE"
    CBUILD="x86_64-pc-linux-gnu"
    CFLAGS="-march=nehalem -O2 -pipe"
    CHOST="x86_64-pc-linux-gnu"
    CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
    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="-march=nehalem -O2 -pipe"
    DISTDIR="/var/cache/portage/distfiles"
    FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
    FFLAGS="-march=nehalem -O2 -pipe"
    GENTOO_MIRRORS="https://fastpull-us.funtoo.org"
    LANG="en_US.UTF-8"
    LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    LINGUAS="en_US"
    PKGDIR="/var/cache/portage/packages"
    PORTAGE_CONFIGROOT="/"
    PORTAGE_TMPDIR="/var/tmp"
    USE="X a52 aac acl alsa amd64 apng berkdb bluray bzip2 cdda cddb cdio cdr colord consolekit cracklib crypt curl cxx dbus declarative dnssd dri dts dvd dvdread eds egl elogind encode evo exif faac faad ffmpeg flac gdbm gif glamor glvnd gnome-keyring gnome-online-accounts gpm gstreamer gtk gtk3 gtkstyle ico iconv icu ieee1394 introspection ios ipod ipv6 jpeg jpeg2k kde kipi lame libass libguess libmpeg2 libnotify mad matroska mjpeg mmx modules mp3 mpeg mtp mudflap nautilus ncurses networkmanager nls nptl nsplugin ogg opengl openmp openrc-force pam pcre pdf phonon plasma png policykit postproc pppd pulseaudio python qml qt5 quicktime readline resolvconf sdl sdl1 semantic-desktop sndfile sse sse2 ssl startup-notification svg taglib tcpd theora tiff tracker truetype twolame udev udisks unicode v4l vaapi vdpau vorbis vpx vulkan wav wavpack wayland webp widgets win32codecs wmf x264 x265 xa xattr xcomposite xml xscreensaver xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel ice1724 intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias authn_core authz_core socache_shmcb unixd" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" 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="efi-64 pc" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" L10N="en_US" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python3_7 python2_7" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby25 ruby26" USERLAND="GNU" VIDEO_CARDS="xa xvmc vaapi vdpau fbdev amdgpu gallium-radeonsi osmesa radeon radeonsi swrast vulkan-amdgpu" 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:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, ENV_UNSET, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
    
    =================================================================
                            Package Settings
    =================================================================
    
    sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay was built with the following:
    USE="X wayland"

     

  3. Hi falling asleep in front of the PC while trying to fix this . . .

    It is my first time dealing with Overlays, Layman and Flatpak sry in advance if I made some obvious mistakes.

    I'm currently trying to install Flatpak thru layman to install Steam from the Flathub

    + What I did so far was:

    nano /etc/portage/package.use/app-portage

    app-portage/layman git sync-plugin-portage

    # ego sync

    # emerge -auvDN layman

     

    https://github.com/fosero/flatpak-overlay
    https://wiki.gentoo.org/wiki/Layman#Adding_custom_repositories

    # layman -o https://raw.githubusercontent.com/fosero/flatpak-overlay/master/repositories.xml -f -a flatpak-overlay

     

    nano /etc/portage/categories

    acct-group
    acct-user

     

    After all that I get the following errors in the next contexts:

    +  When I issue "ego sync" I get:

    Updating /etc/portage/repos.conf...
    Updating profiles at /etc/portage/make.profile/parent...
    Updating non-funtoo repositories...
    !!! Repository 'flatpak-overlay' has sync-type attribute set to unsupported value: 'laymansync'
    !!! Installed sync-types are: '['cvs', 'git', 'rsync', 'svn', 'webrsync']'

    ? I searched man layman for that value but found no results, added the sublime-text overlay to test but I could not find how to change that. Or should I just leave it as it is?.

     

     

    + When I issue " equery u flatpak" I get:

    Unavailable repository 'gentoo' referenced by masters entry in '/var/lib/layman/flatpak-overlay/metadata/layout.conf'

    The contents of layout.conf can be seen here https://github.com/fosero/flatpak-overlay/blob/master/metadata/layout.conf

     

     

    + When I issue " eix xdg-desktop-portal" I get:

    [I] kde-plasma/xdg-desktop-portal-kde [2]
         Available versions:  (5) 5.15.5-r1 (~)5.16.1
           {debug test}
         Installed versions:  5.16.1(5)(12:15:03 08/29/19)(-debug -test)
         Homepage:            https://kde.org/
         Description:         Backend implementation for xdg-desktop-portal that is using Qt/KDE Frameworks
    
    [I] sys-apps/xdg-desktop-portal
         Available versions:  1.2.0[1] 1.2.0[3] 1.4.2-r1[3] {doc geolocation screencast}
         Installed versions:  1.4.2-r1[3](06:00:04 11/09/19)(-doc -geolocation -screencast)
         Homepage:            http://flatpak.org/
         Description:         A portal frontend service for Flatpak and possibly other desktop containment frameworks
    
    [I] sys-apps/xdg-desktop-portal-gtk [3]
         Available versions:  1.2.0 1.4.0 {X wayland}
         Installed versions:  1.4.0(06:03:13 11/09/19)(X wayland)
         Homepage:            https://github.com/flatpak/xdg-desktop-portal-gtk
         Description:         GTK/GNOME backend for xdg-desktop-portal
    
    [1] "nokit" /var/git/meta-repo/kits/nokit
    [2] "kde-kit" /var/git/meta-repo/kits/kde-kit
    [3] "flatpak-overlay" /var/lib/layman/flatpak-overlay

     

     

    + And onto the main course, when I issue "emerge -av sys-apps/flatpak" I get:

            * ERROR: sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay failed (compile phase):
            *   emake failed
            * 
            * If you need support, post the output of `emerge --info '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'`,
            * the complete build log and the output of `emerge -pqv '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'`.
            * The complete build log is located at '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/build.log'.
            * The ebuild environment file is located at '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/environment'.
            * Working directory: '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/work/xdg-desktop-portal-gtk-1.4.0'
            * S: '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/work/xdg-desktop-portal-gtk-1.4.0'
            /var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/environment: line 104: warning: setlocale: LC_TIME: cannot change locale (en_GB.UTF-8)
    
            >>> Failed to emerge sys-apps/xdg-desktop-portal-gtk-1.4.0, Log file:
    
            >>>  '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/build.log'
    
            * Messages for package sys-apps/xdg-desktop-portal-gtk-1.4.0:
    
            * ERROR: sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay failed (compile phase):
            *   emake failed
            * 
            * If you need support, post the output of `emerge --info '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'`,
            * the complete build log and the output of `emerge -pqv '=sys-apps/xdg-desktop-portal-gtk-1.4.0::flatpak-overlay'`.
            * The complete build log is located at '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/build.log'.
            * The ebuild environment file is located at '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/temp/environment'.
            * Working directory: '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/work/xdg-desktop-portal-gtk-1.4.0'
            * S: '/var/tmp/portage/sys-apps/xdg-desktop-portal-gtk-1.4.0/work/xdg-desktop-portal-gtk-1.4.0'
    
            * GNU info directory index is up-to-date.

     

     

    + Side questions:

    - Do I need to add the Gentoo layman overlay? (layman -a gentoo)
    - Is sublime-text layman overlay needed? since I can install it directly thru emerge with out adding the overlay, thou the version is a bit older or I only get updates if I use the overlay?.

     

     

    + Thanks

    As always thanks a lot for your time and help.

     

  4. My main misconception was thinking that awesome was being closed when I swapped among ttys I failed to notice that AwesomeWM was a child of the selected tty and was being displayed on the first tty unused by agetty, the messages I was getting were the result of its execution.

    Generally speaking X sessions are expected to be spawned on tty7+.

    So my the "tidying" up was:

    /etc/inittab
    Auto login to tty6.
     

    # TERMINALS
    c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
    c2:2345:respawn:/sbin/agetty 38400 tty2 linux
    c3:2345:respawn:/sbin/agetty 38400 tty3 linux
    c4:2345:respawn:/sbin/agetty 38400 tty4 linux
    c5:2345:respawn:/sbin/agetty 38400 tty5 linux
    c6:2345:respawn:/sbin/agetty -a freefog 38400 tty6 linux

     

    .bash_profile
    .bashrc call to the end of file.
    I prefer bash notation so [[ and == were used.
    No "exec" before xinit so that I stay logged in the event I decide to quit Awesome.
    If I wanted to run X on the same tty and screen that I autologged:

    [[ -t 0 && $(tty) == "/dev/tty6" && ! $DISPLAY ]] && xinit -- :0 tty6
    # /etc/skel/.bash_profile 
    
    [[ -t 0 && $(tty) == "/dev/tty6" && ! $DISPLAY ]] && xinit
    
    # This file is sourced by bash for login shells.  The following line 
    # runs your .bashrc and is recommended by the bash info pages. 
    [[ -f ~/.bashrc ]] && . ~/.bashrc 
    Quote

    W: awesome: a_dbus_connect:613: Could not connect to D-Bus system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory


    Fixed by:
     

    # emerge -av sys-apps/dbus
    # rc-update add dbus boot


    If d-bus error persisted try:

    # groupadd dbus
    # useradd --system -g dbus dbus

     

    Additionally I installed:
     

    # emerge -av sys-auth/consolekit
    # rc-update add consolekit boot

    And added the use flags to make.conf.

    USE="dbus consolekit"

    Trying to disable AIGLX thru xorg.conf files only resulted on radeonsi re enabling it.
    http://fedoraproject.org/wiki/RenderingProject/aiglx

    Section "ServerFlags"
      Option  "AIGLX" "off"
    EndSection
    
    Section "Extensions"
      Option "Composite" "Disable"
    EndSection

     

    Quote

    W: Cannot reliably detect EOF on an GIOInputStream with this LGI version

    Is an internal AwesomeWM problem with LGI.

     

    I'm yet to test if I need extra compositor, would Unagi make a good choice? (https://projects.mini-dweeb.org/projects/unagi)


    Pointers to any possible mistakes or better practices are welcomed.

    Case Closed unless I missed something.

  5. Hi:

    I been trying to set up my box to auto-login and start awesome wm but I come across the following problems:

    2018-06-16 13:10:53 W: awesome: a_dbus_connect:613: Could not connect to D-Bus system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
    2018-06-16 13:10:53 W: Cannot reliably detect EOF on an GIOInputStream with this LGI version
    (II) AIGLX: Suspending AIGLX clients for VT switch

    The sequence : boot > awesome starts > then I switch tty with Ctrl + Alt + Fx > then return to tt7.

    The first 2 errors happen on Awesome launch (thou I can't normaly see the text I can manually run xinit afterwards to see it happen).

    Then the machine stays waiting, I can still switch to any tty but for tty7 to be unlocked I have to press Ctrl + C, which results in losing my Awesome session and all programs opened in it.

     

    I am unsure what am I doing wrong or how should I proceed any help would be greatly appreciated.

     

    Hi:

    I been trying to set up my box to auto-login and start awesome wm but I come across the following problems:

    >2018-06-16 13:10:53 W: awesome: a_dbus_connect:613: Could not connect to D-Bus system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
    2018-06-16 13:10:53 W: Cannot reliably detect EOF on an GIOInputStream with this LGI version
    (II) AIGLX: Suspending AIGLX clients for VT switch

    The sequence : boot > awesome starts > then I switch tty with Ctrl + Alt + Fx > then return to tt7.

    The first 2 errors happen on Awesome launch (thou I can't normaly see the text I can manually run xinit afterwards to see it happen).

    Then the machine stays waiting, I can still switch to any tty but for tty7 to be unlocked I have to press Ctrl + C, which results in losing my Awesome session and all programs opened in it.


    I am unsure what am I doing wrong or how should I proceed any help would be greatly appreciated.

     

    /etc/inittab

    Quote

    "c7:2345:respawn:/sbin/agetty -a freefog 38400 tty7 linux"

    #
    # /etc/inittab:  This file describes how the INIT process should set up
    #                the system in a certain run-level.
    #
    # Author:  Miquel van Smoorenburg, <miquels@cistron.nl>
    # Modified by:  Patrick J. Volkerding, <volkerdi@ftp.cdrom.com>
    # Modified by:  Daniel Robbins, <drobbins@funtoo.org>
    # Modified by:  Martin Schlemmer, <azarah@gentoo.org>
    # Modified by:  Mike Frysinger, <vapier@gentoo.org>
    # Modified by:  Robin H. Johnson, <robbat2@gentoo.org>
    
    # Default runlevel.
    id:3:initdefault:
    
    # System initialization, mount local filesystems, etc.
    si::sysinit:/sbin/openrc sysinit
    
    # Further system initialization, brings up the boot runlevel.
    rc::bootwait:/sbin/openrc boot
    
    l0:0:wait:/sbin/openrc shutdown 
    l0s:0:wait:/sbin/halt -dhp
    l1:1:wait:/sbin/openrc single
    l2:2:wait:/sbin/openrc nonetwork
    l3:3:wait:/sbin/openrc default
    l4:4:wait:/sbin/openrc default
    l5:5:wait:/sbin/openrc default
    l6:6:wait:/sbin/openrc reboot
    l6r:6:wait:/sbin/reboot -dk
    #z6:6:respawn:/sbin/sulogin
    
    # new-style single-user
    su0:S:wait:/sbin/openrc single
    su1:S:wait:/sbin/sulogin
    
    # TERMINALS
    c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
    c2:2345:respawn:/sbin/agetty 38400 tty2 linux
    c3:2345:respawn:/sbin/agetty 38400 tty3 linux
    c4:2345:respawn:/sbin/agetty 38400 tty4 linux
    c5:2345:respawn:/sbin/agetty 38400 tty5 linux
    c6:2345:respawn:/sbin/agetty 38400 tty6 linux
    c7:2345:respawn:/sbin/agetty -a freefog 38400 tty7 linux
    
    # SERIAL CONSOLES
    #s0:12345:respawn:/sbin/agetty -L 115200 ttyS0 vt100
    #s1:12345:respawn:/sbin/agetty -L 115200 ttyS1 vt100
    
    # What to do at the "Three Finger Salute".
    ca:12345:ctrlaltdel:/sbin/shutdown -r now
    
    # Halt system on power failures
    pf:12345:powerwait:/sbin/halt
     
    # Used by /etc/init.d/xdm to control DM startup.
    # Read the comments in /etc/init.d/xdm for more
    # info. Do NOT remove, as this will start nothing
    # extra at boot if /etc/init.d/xdm is not added
    # to the "default" runlevel.
    x:a:once:/etc/X11/startDM.sh

     

    .bash_profile

    # /etc/skel/.bash_profile
    
    # This file is sourced by bash for login shells.  The following line
    # runs your .bashrc and is recommended by the bash info pages.
    [[ -f ~/.bashrc ]] && . ~/.bashrc
    
    [[ -t 0 && $(tty) == "/dev/tty7" && ! $DISPLAY ]] && xinit

     

    .xinitrc

    setxkbmap es
    exec ck-launch-session dbus-launch --sh-syntax --exit-with-session awesome

    Byobu Screen Text Capture

     >>> Release:                       stage3-intel64-nehalem-funtoo-current-2018-03-22
     >>> Version:                       2018-03-22
     >>> Created by:                    Daniel Robbins <drobbins@funtoo.org>
    
     >>> Send suggestions, improvements, bug reports relating to...
    
     >>> This release:                  Daniel Robbins <drobbins@funtoo.org>
     >>> Funtoo Linux (general):        Funtoo Linux (http://www.funtoo.org)
     >>> Gentoo Linux (general):        Gentoo Linux (http://www.gentoo.org)
    
     NOTE: This message can be removed by deleting /etc/motd.
    
    freefog@pc101 ~ $ clear
    freefog@pc101 ~ $ xinit
    
    
    X.Org X Server 1.19.3
    Release Date: 2017-03-15
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 4.14.12-2 x86_64 Gentoo
    Current Operating System: Linux pc101 4.16.2-gentoo #1 SMP Thu Apr 19 21:20:11 -03 2018 x86_64
    Kernel command line: \kernel-genkernel-x86_64-4.16.2-gentoo rootfstype=auto real_root=UUID=5e8d91ee-4cc6-4769-a6aa-979faa63d455 real_rootflags=errors=remount-ro rootfstype=ext4 initrd=\initramfs-genkernel-x86_64-4.16.2-gentoo
    Build Date: 28 March 2018  08:40:28AM
    
    Current version of pixman: 0.34.0
            Before reporting problems, check http://wiki.x.org
            to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
            (++) from command line, (!!) notice, (II) informational,
            (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Sat Jun 16 13:10:52 2018
    (==) Using config directory: "/etc/X11/xorg.conf.d"
    (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    (II) [KMS] Kernel modesetting enabled.
    2018-06-16 13:10:53 W: awesome: a_dbus_connect:613: Could not connect to D-Bus system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
    2018-06-16 13:10:53 W: Cannot reliably detect EOF on an GIOInputStream with this LGI version
    (II) AIGLX: Suspending AIGLX clients for VT switch
    ^Cxinit: connection to X server lost
    
    waiting for X server to shut down
    (process:27778): GLib-WARNING **: poll(2) failed due to: Resource temporarily unavailable.
    ..........
    xinit: X server slow to shut down, sending KILL signal
    
    waiting for server to die 2018-06-16 13:11:11 E: awesome: main:656: cannot open display (error 1)
    
    xinit: unexpected signal 2

    Xorg.0.log

    [   484.900] 
    X.Org X Server 1.19.3
    Release Date: 2017-03-15
    [   484.900] X Protocol Version 11, Revision 0
    [   484.900] Build Operating System: Linux 4.14.12-2 x86_64 Gentoo
    [   484.900] Current Operating System: Linux pc101 4.16.2-gentoo #1 SMP Thu Apr 19 21:20:11 -03 2018 x86_64
    [   484.900] Kernel command line: \kernel-genkernel-x86_64-4.16.2-gentoo rootfstype=auto real_root=UUID=5e8d91ee-4cc6-4769-a6aa-979faa63d455 real_rootflags=errors=remount-ro rootfstype=ext4 initrd=\initramfs-genkernel-x86_64-4.16.2-gentoo
    [   484.900] Build Date: 28 March 2018  08:40:28AM
    [   484.900]  
    [   484.900] Current version of pixman: 0.34.0
    [   484.900]     Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
    [   484.900] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    [   484.908] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Jun 16 12:53:42 2018
    [   484.911] (==) Using config directory: "/etc/X11/xorg.conf.d"
    [   484.913] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    [   484.913] (==) ServerLayout "Layout1"
    [   484.913] (**) |-->Screen "Screen-HDMI" (0)
    [   484.913] (**) |   |-->Monitor "LG-HDMI"
    [   484.913] (**) |   |-->Device "AMD-R9-290"
    [   484.913] (==) Automatically adding devices
    [   484.913] (==) Automatically enabling devices
    [   484.913] (==) Automatically adding GPU devices
    [   484.913] (==) Max clients allowed: 256, resource mask: 0x1fffff
    [   484.913] (==) FontPath set to:
        /usr/share/fonts/misc/,
        /usr/share/fonts/TTF/,
        /usr/share/fonts/OTF/,
        /usr/share/fonts/Type1/,
        /usr/share/fonts/100dpi/,
        /usr/share/fonts/75dpi/
    [   484.913] (==) ModulePath set to "/usr/lib64/xorg/modules"
    [   484.913] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
    [   484.913] (II) Loader magic: 0x804c80
    [   484.913] (II) Module ABI versions:
    [   484.913]     X.Org ANSI C Emulation: 0.4
    [   484.913]     X.Org Video Driver: 23.0
    [   484.913]     X.Org XInput driver : 24.1
    [   484.913]     X.Org Server Extension : 10.0
    [   484.914] (II) xfree86: Adding drm device (/dev/dri/card0)
    [   484.921] (--) PCI:*(0:2:0:0) 1002:67b1:1462:3081 rev 0, Mem @ 0xe0000000/268435456, 0xf0000000/8388608, 0xd0100000/262144, I/O @ 0x00001000/256, BIOS @ 0x????????/131072
    [   484.922] (II) LoadModule: "glx"
    [   484.922] (II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
    [   484.923] (II) Module glx: vendor="X.Org Foundation"
    [   484.923]     compiled for 1.19.3, module version = 1.0.0
    [   484.923]     ABI class: X.Org Server Extension, version 10.0
    [   484.923] (II) LoadModule: "amdgpu"
    [   484.923] (II) Loading /usr/lib64/xorg/modules/drivers/amdgpu_drv.so
    [   484.923] (II) Module amdgpu: vendor="X.Org Foundation"
    [   484.923]     compiled for 1.19.3, module version = 1.3.0
    [   484.923]     Module class: X.Org Video Driver
    [   484.923]     ABI class: X.Org Video Driver, version 23.0
    [   484.923] (II) AMDGPU: Driver for AMD Radeon:
        All GPUs supported by the amdgpu kernel driver
    [   484.923] (--) using VT number 8
    
    [   484.923] (II) [KMS] Kernel modesetting enabled.
    [   484.934] (**) AMDGPU(0): Depth 24, (--) framebuffer bpp 32
    [   484.934] (II) AMDGPU(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
    [   484.934] (==) AMDGPU(0): Default visual is TrueColor
    [   484.934] (**) AMDGPU(0): Option "AccelMethod" "glamor"
    [   484.934] (**) AMDGPU(0): Option "TearFree" "true"
    [   484.934] (==) AMDGPU(0): RGB weight 888
    [   484.934] (II) AMDGPU(0): Using 8 bits per RGB (8 bit DAC)
    [   484.934] (--) AMDGPU(0): Chipset: "AMD Radeon R9 200 Series" (ChipID = 0x67b1)
    [   484.934] (II) Loading sub module "fb"
    [   484.934] (II) LoadModule: "fb"
    [   484.934] (II) Loading /usr/lib64/xorg/modules/libfb.so
    [   484.934] (II) Module fb: vendor="X.Org Foundation"
    [   484.934]     compiled for 1.19.3, module version = 1.0.0
    [   484.934]     ABI class: X.Org ANSI C Emulation, version 0.4
    [   484.934] (II) Loading sub module "dri2"
    [   484.934] (II) LoadModule: "dri2"
    [   484.934] (II) Module "dri2" already built-in
    [   485.012] (II) Loading sub module "glamoregl"
    [   485.012] (II) LoadModule: "glamoregl"
    [   485.012] (II) Loading /usr/lib64/xorg/modules/libglamoregl.so
    [   485.018] (II) Module glamoregl: vendor="X.Org Foundation"
    [   485.018]     compiled for 1.19.3, module version = 1.0.0
    [   485.018]     ABI class: X.Org ANSI C Emulation, version 0.4
    [   485.018] (II) glamor: OpenGL accelerated X.org driver based.
    [   485.020] (II) glamor: EGL version 1.5 (DRI2):
    [   485.022] (II) AMDGPU(0): glamor detected, initialising EGL layer.
    [   485.022] (**) AMDGPU(0): TearFree property default: on
    [   485.022] (II) AMDGPU(0): KMS Pageflipping: enabled
    [   485.022] (II) AMDGPU(0): Output DisplayPort-0 using monitor section LG-HDMI
    [   485.022] (II) AMDGPU(0): Output HDMI-A-0 has no monitor section
    [   485.022] (II) AMDGPU(0): Output DVI-D-0 has no monitor section
    [   485.022] (II) AMDGPU(0): Output DVI-D-1 has no monitor section
    [   485.022] (II) AMDGPU(0): EDID for output DisplayPort-0
    [   485.023] (II) AMDGPU(0): EDID for output HDMI-A-0
    [   485.023] (II) AMDGPU(0): Manufacturer: GSM  Model: 59a9  Serial#: 16843009
    [   485.023] (II) AMDGPU(0): Year: 2012  Week: 5
    [   485.023] (II) AMDGPU(0): EDID Version: 1.3
    [   485.023] (II) AMDGPU(0): Digital Display Input
    [   485.023] (II) AMDGPU(0): Max Image Size [cm]: horiz.: 51  vert.: 29
    [   485.023] (II) AMDGPU(0): Gamma: 2.20
    [   485.023] (II) AMDGPU(0): DPMS capabilities: StandBy Suspend Off
    [   485.023] (II) AMDGPU(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
    [   485.023] (II) AMDGPU(0): First detailed timing is preferred mode
    [   485.023] (II) AMDGPU(0): redX: 0.638 redY: 0.334   greenX: 0.309 greenY: 0.627
    [   485.023] (II) AMDGPU(0): blueX: 0.153 blueY: 0.073   whiteX: 0.313 whiteY: 0.329
    [   485.023] (II) AMDGPU(0): Supported established timings:
    [   485.023] (II) AMDGPU(0): 640x480@60Hz
    [   485.023] (II) AMDGPU(0): 800x600@60Hz
    [   485.023] (II) AMDGPU(0): 1024x768@60Hz
    [   485.023] (II) AMDGPU(0): Manufacturer's mask: 0
    [   485.023] (II) AMDGPU(0): Supported standard timings:
    [   485.023] (II) AMDGPU(0): #0: hsize: 1152  vsize 864  refresh: 60  vid: 16497
    [   485.023] (II) AMDGPU(0): #1: hsize: 1280  vsize 720  refresh: 60  vid: 49281
    [   485.023] (II) AMDGPU(0): #2: hsize: 1280  vsize 800  refresh: 60  vid: 129
    [   485.023] (II) AMDGPU(0): #3: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
    [   485.023] (II) AMDGPU(0): #4: hsize: 1440  vsize 900  refresh: 60  vid: 149
    [   485.023] (II) AMDGPU(0): #5: hsize: 1400  vsize 1050  refresh: 60  vid: 16528
    [   485.023] (II) AMDGPU(0): #6: hsize: 1600  vsize 900  refresh: 60  vid: 49321
    [   485.023] (II) AMDGPU(0): #7: hsize: 1680  vsize 1050  refresh: 60  vid: 179
    [   485.023] (II) AMDGPU(0): Supported detailed timing:
    [   485.023] (II) AMDGPU(0): clock: 148.5 MHz   Image Size:  510 x 290 mm
    [   485.023] (II) AMDGPU(0): h_active: 1920  h_sync: 2008  h_sync_end 2052 h_blank_end 2200 h_border: 0
    [   485.023] (II) AMDGPU(0): v_active: 1080  v_sync: 1084  v_sync_end 1089 v_blanking: 1125 v_border: 0
    [   485.023] (II) AMDGPU(0): Ranges: V min: 56 V max: 61 Hz, H min: 30 H max: 83 kHz, PixClock max 155 MHz
    [   485.023] (II) AMDGPU(0): Monitor name: 23EA53
    [   485.023] (II) AMDGPU(0): Serial No: 
    [   485.023] (II) AMDGPU(0): Supported detailed timing:
    [   485.023] (II) AMDGPU(0): clock: 148.5 MHz   Image Size:  510 x 290 mm
    [   485.023] (II) AMDGPU(0): h_active: 1920  h_sync: 2008  h_sync_end 2052 h_blank_end 2200 h_border: 0
    [   485.023] (II) AMDGPU(0): v_active: 1080  v_sync: 1084  v_sync_end 1089 v_blanking: 1125 v_border: 0
    [   485.023] (II) AMDGPU(0): Supported detailed timing:
    [   485.023] (II) AMDGPU(0): clock: 74.2 MHz   Image Size:  510 x 290 mm
    [   485.023] (II) AMDGPU(0): h_active: 1920  h_sync: 2008  h_sync_end 2052 h_blank_end 2200 h_border: 0
    [   485.023] (II) AMDGPU(0): v_active: 540  v_sync: 542  v_sync_end 547 v_blanking: 562 v_border: 0
    [   485.023] (II) AMDGPU(0): Supported detailed timing:
    [   485.023] (II) AMDGPU(0): clock: 74.2 MHz   Image Size:  510 x 290 mm
    [   485.023] (II) AMDGPU(0): h_active: 1280  h_sync: 1390  h_sync_end 1430 h_blank_end 1650 h_border: 0
    [   485.023] (II) AMDGPU(0): v_active: 720  v_sync: 725  v_sync_end 730 v_blanking: 750 v_border: 0
    [   485.023] (II) AMDGPU(0): Supported detailed timing:
    [   485.023] (II) AMDGPU(0): clock: 27.0 MHz   Image Size:  510 x 290 mm
    [   485.023] (II) AMDGPU(0): h_active: 720  h_sync: 736  h_sync_end 798 h_blank_end 858 h_border: 0
    [   485.023] (II) AMDGPU(0): v_active: 480  v_sync: 489  v_sync_end 495 v_blanking: 525 v_border: 0
    [   485.023] (II) AMDGPU(0): Number of EDID sections to follow: 1
    [   485.023] (II) AMDGPU(0): EDID (in hex):
    [   485.023] (II) AMDGPU(0):     00ffffffffffff001e6da95901010101
    [   485.023] (II) AMDGPU(0):     0516010380331d78ea6275a3554fa027
    [   485.023] (II) AMDGPU(0):     125054210800714081c0810081809500
    [   485.023] (II) AMDGPU(0):     9040a9c0b300023a801871382d40582c
    [   485.023] (II) AMDGPU(0):     4500fe221100001e000000fd00383d1e
    [   485.023] (II) AMDGPU(0):     530f000a202020202020000000fc0032
    [   485.023] (II) AMDGPU(0):     33454135330a202020202020000000ff
    [   485.023] (II) AMDGPU(0):     000a202020202020202020202020010a
    [   485.023] (II) AMDGPU(0):     02031df14a900403011412051f101323
    [   485.023] (II) AMDGPU(0):     0907078301000065030c001000023a80
    [   485.023] (II) AMDGPU(0):     1871382d40582c4500fe221100001e01
    [   485.023] (II) AMDGPU(0):     1d8018711c1620582c2500fe22110000
    [   485.023] (II) AMDGPU(0):     9e011d007251d01e206e285500fe2211
    [   485.023] (II) AMDGPU(0):     00001e8c0ad08a20e02d10103e9600fe
    [   485.023] (II) AMDGPU(0):     22110000180000000000000000000000
    [   485.023] (II) AMDGPU(0):     000000000000000000000000000000e6
    [   485.023] (II) AMDGPU(0): Printing probed modes for output HDMI-A-0
    [   485.023] (II) AMDGPU(0): Modeline "1920x1080"x60.0  148.50  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.5 kHz eP)
    [   485.023] (II) AMDGPU(0): Modeline "1920x1080"x50.0  148.50  1920 2448 2492 2640  1080 1084 1089 1125 +hsync +vsync (56.2 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1920x1080"x59.9  148.35  1920 2008 2052 2200  1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1680x1050"x59.9  119.00  1680 1728 1760 1840  1050 1053 1059 1080 +hsync -vsync (64.7 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1400x1050"x59.9  101.00  1400 1448 1480 1560  1050 1053 1057 1080 +hsync -vsync (64.7 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1600x900"x60.0  108.00  1600 1624 1704 1800  900 901 904 1000 +hsync +vsync (60.0 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1440x900"x59.9   88.75  1440 1488 1520 1600  900 903 909 926 +hsync -vsync (55.5 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1280x800"x59.9   71.00  1280 1328 1360 1440  800 803 809 823 +hsync -vsync (49.3 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1152x864"x60.0   81.58  1152 1216 1336 1520  864 865 868 895 -hsync +vsync (53.7 kHz)
    [   485.023] (II) AMDGPU(0): Modeline "1280x720"x60.0   74.25  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1280x720"x50.0   74.25  1280 1720 1760 1980  720 725 730 750 +hsync +vsync (37.5 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1280x720"x59.9   74.18  1280 1390 1430 1650  720 725 730 750 +hsync +vsync (45.0 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "720x576"x50.0   27.00  720 732 796 864  576 581 586 625 -hsync -vsync (31.2 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "720x480"x60.0   27.03  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "720x480"x59.9   27.00  720 736 798 858  480 489 495 525 -hsync -vsync (31.5 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "640x480"x60.0   25.20  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
    [   485.023] (II) AMDGPU(0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
    [   485.023] (II) AMDGPU(0): EDID for output DVI-D-0
    [   485.023] (II) AMDGPU(0): EDID for output DVI-D-1
    [   485.023] (II) AMDGPU(0): Output DisplayPort-0 disconnected
    [   485.023] (II) AMDGPU(0): Output HDMI-A-0 connected
    [   485.023] (II) AMDGPU(0): Output DVI-D-0 disconnected
    [   485.023] (II) AMDGPU(0): Output DVI-D-1 disconnected
    [   485.023] (II) AMDGPU(0): Using exact sizes for initial modes
    [   485.023] (II) AMDGPU(0): Output HDMI-A-0 using initial mode 1920x1080 +0+0
    [   485.023] (II) AMDGPU(0): mem size init: gart size :ffeca000 vram size: s:ff3f0000 visible:f3f0000
    [   485.023] (==) AMDGPU(0): DPI set to (96, 96)
    [   485.023] (==) AMDGPU(0): Using gamma correction (1.0, 1.0, 1.0)
    [   485.024] (II) Loading sub module "ramdac"
    [   485.024] (II) LoadModule: "ramdac"
    [   485.024] (II) Module "ramdac" already built-in
    [   485.024] (--) Depth 24 pixmap format is 32 bpp
    [   485.024] (II) AMDGPU(0): [DRI2] Setup complete
    [   485.024] (II) AMDGPU(0): [DRI2]   DRI driver: radeonsi
    [   485.024] (II) AMDGPU(0): [DRI2]   VDPAU driver: radeonsi
    [   485.024] (II) AMDGPU(0): Front buffer pitch: 7680 bytes
    [   485.024] (II) AMDGPU(0): SYNC extension fences enabled
    [   485.024] (II) AMDGPU(0): Present extension enabled
    [   485.024] (==) AMDGPU(0): DRI3 enabled
    [   485.024] (==) AMDGPU(0): Backing store enabled
    [   485.024] (II) AMDGPU(0): Direct rendering enabled
    [   485.048] (II) AMDGPU(0): Use GLAMOR acceleration.
    [   485.048] (II) AMDGPU(0): Acceleration enabled
    [   485.048] (==) AMDGPU(0): DPMS enabled
    [   485.048] (==) AMDGPU(0): Silken mouse enabled
    [   485.048] (II) AMDGPU(0): Set up textured video (glamor)
    [   485.048] (II) AMDGPU(0): RandR 1.2 enabled, ignore the following RandR disabled message.
    [   485.067] (WW) AMDGPU(0): Option "Monitor-HDMI-0" is not used
    [   485.067] (--) RandR disabled
    [   485.068] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
    [   485.068] (II) AIGLX: enabled GLX_ARB_create_context
    [   485.068] (II) AIGLX: enabled GLX_ARB_create_context_profile
    [   485.068] (II) AIGLX: enabled GLX_EXT_create_context_es{,2}_profile
    [   485.068] (II) AIGLX: enabled GLX_INTEL_swap_event
    [   485.068] (II) AIGLX: enabled GLX_SGI_swap_control
    [   485.068] (II) AIGLX: enabled GLX_EXT_framebuffer_sRGB
    [   485.068] (II) AIGLX: enabled GLX_ARB_fbconfig_float
    [   485.068] (II) AIGLX: enabled GLX_EXT_fbconfig_packed_float
    [   485.068] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer objects
    [   485.068] (II) AIGLX: enabled GLX_ARB_create_context_robustness
    [   485.069] (II) AIGLX: Loaded and initialized radeonsi
    [   485.069] (II) GLX: Initialized DRI2 GL provider for screen 0
    [   485.071] (II) AMDGPU(0): Setting screen physical size to 508 x 285
    [   485.192] (II) config/udev: Adding input device Power Button (/dev/input/event5)
    [   485.192] (**) Power Button: Applying InputClass "evdev keyboard catchall"
    [   485.192] (II) LoadModule: "evdev"
    [   485.192] (II) Loading /usr/lib64/xorg/modules/input/evdev_drv.so
    [   485.193] (II) Module evdev: vendor="X.Org Foundation"
    [   485.193]     compiled for 1.19.3, module version = 2.10.5
    [   485.193]     Module class: X.Org XInput Driver
    [   485.193]     ABI class: X.Org XInput driver, version 24.1
    [   485.193] (II) Using input driver 'evdev' for 'Power Button'
    [   485.193] (**) Power Button: always reports core events
    [   485.193] (**) evdev: Power Button: Device: "/dev/input/event5"
    [   485.193] (--) evdev: Power Button: Vendor 0 Product 0x1
    [   485.193] (--) evdev: Power Button: Found keys
    [   485.193] (II) evdev: Power Button: Configuring as keyboard
    [   485.193] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input5/event5"
    [   485.193] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
    [   485.193] (**) Option "xkb_rules" "evdev"
    [   485.194] (II) config/udev: Adding input device Sleep Button (/dev/input/event4)
    [   485.194] (**) Sleep Button: Applying InputClass "evdev keyboard catchall"
    [   485.194] (II) Using input driver 'evdev' for 'Sleep Button'
    [   485.194] (**) Sleep Button: always reports core events
    [   485.194] (**) evdev: Sleep Button: Device: "/dev/input/event4"
    [   485.194] (--) evdev: Sleep Button: Vendor 0 Product 0x3
    [   485.194] (--) evdev: Sleep Button: Found keys
    [   485.194] (II) evdev: Sleep Button: Configuring as keyboard
    [   485.194] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input4/event4"
    [   485.194] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 7)
    [   485.194] (**) Option "xkb_rules" "evdev"
    [   485.195] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=9 (/dev/input/event10)
    [   485.195] (II) No input driver specified, ignoring this device.
    [   485.195] (II) This device may have been added with another device file.
    [   485.195] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=10 (/dev/input/event11)
    [   485.195] (II) No input driver specified, ignoring this device.
    [   485.195] (II) This device may have been added with another device file.
    [   485.195] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=11 (/dev/input/event12)
    [   485.195] (II) No input driver specified, ignoring this device.
    [   485.195] (II) This device may have been added with another device file.
    [   485.196] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=3 (/dev/input/event7)
    [   485.196] (II) No input driver specified, ignoring this device.
    [   485.196] (II) This device may have been added with another device file.
    [   485.196] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=7 (/dev/input/event8)
    [   485.196] (II) No input driver specified, ignoring this device.
    [   485.196] (II) This device may have been added with another device file.
    [   485.196] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=8 (/dev/input/event9)
    [   485.196] (II) No input driver specified, ignoring this device.
    [   485.196] (II) This device may have been added with another device file.
    [   485.197] (II) config/udev: Adding input device Dell Dell Multimedia Pro Keyboard (/dev/input/event0)
    [   485.197] (**) Dell Dell Multimedia Pro Keyboard: Applying InputClass "evdev keyboard catchall"
    [   485.197] (II) Using input driver 'evdev' for 'Dell Dell Multimedia Pro Keyboard'
    [   485.197] (**) Dell Dell Multimedia Pro Keyboard: always reports core events
    [   485.197] (**) evdev: Dell Dell Multimedia Pro Keyboard: Device: "/dev/input/event0"
    [   485.197] (--) evdev: Dell Dell Multimedia Pro Keyboard: Vendor 0x413c Product 0x2011
    [   485.197] (--) evdev: Dell Dell Multimedia Pro Keyboard: Found keys
    [   485.197] (II) evdev: Dell Dell Multimedia Pro Keyboard: Configuring as keyboard
    [   485.197] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.1/3-2.1:1.0/0003:413C:2011.0001/input/input0/event0"
    [   485.197] (II) XINPUT: Adding extended input device "Dell Dell Multimedia Pro Keyboard" (type: KEYBOARD, id 8)
    [   485.197] (**) Option "xkb_rules" "evdev"
    [   485.197] (II) config/udev: Adding input device Dell Dell Multimedia Pro Keyboard (/dev/input/event1)
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: Applying InputClass "evdev keyboard catchall"
    [   485.198] (II) Using input driver 'evdev' for 'Dell Dell Multimedia Pro Keyboard'
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: always reports core events
    [   485.198] (**) evdev: Dell Dell Multimedia Pro Keyboard: Device: "/dev/input/event1"
    [   485.198] (--) evdev: Dell Dell Multimedia Pro Keyboard: Vendor 0x413c Product 0x2011
    [   485.198] (--) evdev: Dell Dell Multimedia Pro Keyboard: Found absolute axes
    [   485.198] (II) evdev: Dell Dell Multimedia Pro Keyboard: Forcing absolute x/y axes to exist.
    [   485.198] (--) evdev: Dell Dell Multimedia Pro Keyboard: Found keys
    [   485.198] (II) evdev: Dell Dell Multimedia Pro Keyboard: Forcing relative x/y axes to exist.
    [   485.198] (II) evdev: Dell Dell Multimedia Pro Keyboard: Configuring as mouse
    [   485.198] (II) evdev: Dell Dell Multimedia Pro Keyboard: Configuring as keyboard
    [   485.198] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.1/3-2.1:1.1/0003:413C:2011.0002/input/input1/event1"
    [   485.198] (II) XINPUT: Adding extended input device "Dell Dell Multimedia Pro Keyboard" (type: KEYBOARD, id 9)
    [   485.198] (**) Option "xkb_rules" "evdev"
    [   485.198] (II) evdev: Dell Dell Multimedia Pro Keyboard: initialized for absolute axes.
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: (accel) keeping acceleration scheme 1
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: (accel) acceleration profile 0
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: (accel) acceleration factor: 2.000
    [   485.198] (**) Dell Dell Multimedia Pro Keyboard: (accel) acceleration threshold: 4
    [   485.199] (II) config/udev: Adding input device Logitech Gaming Mouse G600 (/dev/input/event2)
    [   485.199] (**) Logitech Gaming Mouse G600: Applying InputClass "evdev pointer catchall"
    [   485.199] (II) Using input driver 'evdev' for 'Logitech Gaming Mouse G600'
    [   485.199] (**) Logitech Gaming Mouse G600: always reports core events
    [   485.199] (**) evdev: Logitech Gaming Mouse G600: Device: "/dev/input/event2"
    [   485.256] (--) evdev: Logitech Gaming Mouse G600: Vendor 0x46d Product 0xc24a
    [   485.256] (--) evdev: Logitech Gaming Mouse G600: Found 20 mouse buttons
    [   485.256] (--) evdev: Logitech Gaming Mouse G600: Found scroll wheel(s)
    [   485.256] (--) evdev: Logitech Gaming Mouse G600: Found relative axes
    [   485.256] (--) evdev: Logitech Gaming Mouse G600: Found x and y relative axes
    [   485.256] (II) evdev: Logitech Gaming Mouse G600: Configuring as mouse
    [   485.256] (II) evdev: Logitech Gaming Mouse G600: Adding scrollwheel support
    [   485.256] (**) evdev: Logitech Gaming Mouse G600: YAxisMapping: buttons 4 and 5
    [   485.256] (**) evdev: Logitech Gaming Mouse G600: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    [   485.256] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.0/0003:046D:C24A.0003/input/input2/event2"
    [   485.256] (II) XINPUT: Adding extended input device "Logitech Gaming Mouse G600" (type: MOUSE, id 10)
    [   485.256] (II) evdev: Logitech Gaming Mouse G600: initialized for relative axes.
    [   485.256] (**) Logitech Gaming Mouse G600: (accel) keeping acceleration scheme 1
    [   485.256] (**) Logitech Gaming Mouse G600: (accel) acceleration profile 0
    [   485.256] (**) Logitech Gaming Mouse G600: (accel) acceleration factor: 2.000
    [   485.256] (**) Logitech Gaming Mouse G600: (accel) acceleration threshold: 4
    [   485.257] (II) config/udev: Adding input device Logitech Gaming Mouse G600 (/dev/input/mouse0)
    [   485.257] (II) No input driver specified, ignoring this device.
    [   485.257] (II) This device may have been added with another device file.
    [   485.257] (II) config/udev: Adding input device Logitech Gaming Mouse G600 (/dev/input/event3)
    [   485.257] (**) Logitech Gaming Mouse G600: Applying InputClass "evdev keyboard catchall"
    [   485.257] (II) Using input driver 'evdev' for 'Logitech Gaming Mouse G600'
    [   485.257] (**) Logitech Gaming Mouse G600: always reports core events
    [   485.257] (**) evdev: Logitech Gaming Mouse G600: Device: "/dev/input/event3"
    [   485.257] (--) evdev: Logitech Gaming Mouse G600: Vendor 0x46d Product 0xc24a
    [   485.257] (--) evdev: Logitech Gaming Mouse G600: Found absolute axes
    [   485.257] (--) evdev: Logitech Gaming Mouse G600: Found absolute multitouch axes
    [   485.257] (II) evdev: Logitech Gaming Mouse G600: No buttons found, faking one.
    [   485.257] (--) evdev: Logitech Gaming Mouse G600: Fake MT device detected
    [   485.257] (--) evdev: Logitech Gaming Mouse G600: Found keys
    [   485.257] (II) evdev: Logitech Gaming Mouse G600: Forcing relative x/y axes to exist.
    [   485.257] (II) evdev: Logitech Gaming Mouse G600: Configuring as mouse
    [   485.257] (II) evdev: Logitech Gaming Mouse G600: Configuring as keyboard
    [   485.257] (**) evdev: Logitech Gaming Mouse G600: YAxisMapping: buttons 4 and 5
    [   485.257] (**) evdev: Logitech Gaming Mouse G600: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    [   485.257] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.1/usb4/4-2/4-2:1.1/0003:046D:C24A.0004/input/input3/event3"
    [   485.258] (II) XINPUT: Adding extended input device "Logitech Gaming Mouse G600" (type: KEYBOARD, id 11)
    [   485.258] (**) Option "xkb_rules" "evdev"
    [   485.258] (II) evdev: Logitech Gaming Mouse G600: initialized for absolute axes.
    [   485.258] (**) Logitech Gaming Mouse G600: (accel) keeping acceleration scheme 1
    [   485.258] (**) Logitech Gaming Mouse G600: (accel) acceleration profile 0
    [   485.258] (**) Logitech Gaming Mouse G600: (accel) acceleration factor: 2.000
    [   485.258] (**) Logitech Gaming Mouse G600: (accel) acceleration threshold: 4
    [   485.258] (II) config/udev: Adding input device HDA Digital PCBeep (/dev/input/event13)
    [   485.258] (II) No input driver specified, ignoring this device.
    [   485.258] (II) This device may have been added with another device file.
    [   485.259] (II) config/udev: Adding input device HDA Intel Front Mic (/dev/input/event14)
    [   485.259] (II) No input driver specified, ignoring this device.
    [   485.259] (II) This device may have been added with another device file.
    [   485.259] (II) config/udev: Adding input device HDA Intel Rear Mic (/dev/input/event15)
    [   485.259] (II) No input driver specified, ignoring this device.
    [   485.259] (II) This device may have been added with another device file.
    [   485.259] (II) config/udev: Adding input device HDA Intel Line (/dev/input/event16)
    [   485.259] (II) No input driver specified, ignoring this device.
    [   485.259] (II) This device may have been added with another device file.
    [   485.260] (II) config/udev: Adding input device HDA Intel Line Out Front (/dev/input/event17)
    [   485.260] (II) No input driver specified, ignoring this device.
    [   485.260] (II) This device may have been added with another device file.
    [   485.260] (II) config/udev: Adding input device HDA Intel Line Out Surround (/dev/input/event18)
    [   485.260] (II) No input driver specified, ignoring this device.
    [   485.260] (II) This device may have been added with another device file.
    [   485.260] (II) config/udev: Adding input device HDA Intel Line Out CLFE (/dev/input/event19)
    [   485.260] (II) No input driver specified, ignoring this device.
    [   485.260] (II) This device may have been added with another device file.
    [   485.261] (II) config/udev: Adding input device HDA Intel Front Headphone (/dev/input/event20)
    [   485.261] (II) No input driver specified, ignoring this device.
    [   485.261] (II) This device may have been added with another device file.
    [   485.261] (II) config/udev: Adding input device PC Speaker (/dev/input/event6)
    [   485.261] (II) No input driver specified, ignoring this device.
    [   485.261] (II) This device may have been added with another device file.
    

     

     

    byobu screen capture.txt

    inittab

    bash_profile

    Xorg.0.log

    xinitrc

  6. Hi another new Funtoo  user here :

    https://www.funtoo.org/Package:Awesome_(Window_Manager) for KDE Funtoo has the kde mix-in and in Gentoo's wiki they recommend gnome, doc, dbusluajit USE flags , I was wondering :

    Q1 - Is there an equivalent or recommended mix-in for this or other Windows Managers? X?

    Q2 - I don't understand why they recommend gnome and dbus as a USE flags for this app.

    Q3 - I'm mostly interested in seting luajit flag. a) Does Funtoo support it? ; b) How do I check this on my own so I don't bother anyone? ; c) is there a way to see which flags a package is using, really using and not just theoretical? ; d) Can I use /etc/portage/package.use as a directory with different files inside for each package or in Funtoo package.use is always a file?.

    Thanks for your time.

    Hello Funtoo !!!.

×
×
  • Create New...