Jump to content
Read the Funtoo Newsletter: Summer 2023 ×

delgado

Members
  • Posts

    9
  • Joined

  • Last visited

Posts posted by delgado

  1. Here is the output Sandro asked for.

    sysresccd / # eselect kernel list
    Available kernel symlink targets:
      [1]   linux-debian-sources-3.19.3 *
    sysresccd / # ls -l /etc/kernels/
    ls: cannot access /etc/kernels/: No such file or directory
    sysresccd / # emerge -pv debian-sources
    
    These are the packages that would be merged, in order:
    
    Calculating dependencies... done!
    [ebuild   R    ] sys-kernel/debian-sources-3.19.3:3.19.3::gentoo  USE="binary -rt" 81293 KiB
    
    Total: 1 package (1 reinstall), Size of downloads: 81293 KiB
    
     * IMPORTANT: 3 news items need reading for repository 'gentoo'.
     * Use eselect news read to view new items.
    
    sysresccd / #
    
    

    Here is the output for cardinal

    sysresccd / # cd /var/cache/genkernel/src
    bash: cd: /var/cache/genkernel/src: No such file or directory
    sysresccd / # mkdir /var/cache/genkernel
    sysresccd / # mkdir /var/cache/genkernel/src
    sysresccd / # cd /var/cache/genkernel/src
    sysresccd src # wget http://distfiles.gentoo.org/distfiles/busybox-1.21.1.tar.bz2
    --2015-10-30 12:32:56--  http://distfiles.gentoo.org/distfiles/busybox-1.21.1.tar.bz2
    Resolving distfiles.gentoo.org... 137.226.34.42, 156.56.247.195, 64.50.233.100, ...
    Connecting to distfiles.gentoo.org|137.226.34.42|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2201917 (2.1M) [application/octet-stream]
    Saving to: 'busybox-1.21.1.tar.bz2'
    
    busybox-1.21.1.tar.bz2           100%[============================================================>]   2.10M  --.-KB/s   in 0.04s
    
    2015-10-30 12:33:09 (49.8 MB/s) - 'busybox-1.21.1.tar.bz2' saved [2201917/2201917]
    

    Running emerge debian-sources again.

    Could not find source tarball /var/cache/genkernel/src/dmraid-1.0.0.rc16-3.tar.bz2. Please refetch.
     * ERROR: sys-kernel/debian-sources-3.19.3::gentoo failed (compile phase):
     *   genkernel failed
     *
     * Call stack:
     *     ebuild.sh, line  93:  Called src_compile
     *   environment, line 2211:  Called die
     * The specific snippet of code:
     *       genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
     *
     * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'`,
     * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-3.19.3::gentoo'`.
     * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/environment'.
     * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
     * S: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
    
    >>> Failed to emerge sys-kernel/debian-sources-3.19.3, Log file:
    
    >>>  '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'
    
     * Messages for package sys-kernel/debian-sources-3.19.3:
    
     * ERROR: sys-kernel/debian-sources-3.19.3::gentoo failed (compile phase):
     *   genkernel failed
     *
     * Call stack:
     *     ebuild.sh, line  93:  Called src_compile
     *   environment, line 2211:  Called die
     * The specific snippet of code:
     *       genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
     *
     * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'`,
     * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-3.19.3::gentoo'`.
     * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/environment'.
     * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
     * S: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
    
  2. environment log

    declare -x ABI="amd64"
    declare -x 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"
    declare -x ASFLAGS_x86="--32"
    declare -x BOOTSTRAP_USE="cxx unicode internal-glib python_targets_python3_4 python_targets_python2_7"
    declare -x CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author"
    declare -x CAMERAS="ptp2"
    declare -x CBUILD="x86_64-pc-linux-gnu"
    declare -x CDEFINE_amd64="__x86_64__"
    declare -x CDEFINE_x86="__i386__"
    declare -x CFLAGS="-mtune=generic -O2 -pipe"
    declare -x CFLAGS_default
    declare -x CFLAGS_x86="-m32"
    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 -- CKV="3.19.3"
    declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
    declare -x CPU_FLAGS_X86="mmx mmxext sse sse2"
    declare -x CTARGET_default="x86_64-pc-linux-gnu"
    declare -x CXXFLAGS="-mtune=generic -O2 -pipe"
    declare -x DEBUGBUILD="1"
    declare -x DEFAULT_ABI="amd64"
    declare -x DEFINED_PHASES=" compile install postinst postrm preinst prepare prerm pretend setup"
    declare DEPEND="binary? ( >=sys-kernel/genkernel-3.4.40.7 ) "
    declare DESCRIPTION="Debian Sources (and optional binary kernel)"
    declare -x DESTTREE="/usr"
    declare -x DIROPTIONS="-m0755"
    declare -x EAPI="5"
    declare -x ELIBC="glibc"
    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/sys-kernel/debian-sources-3.19.3/work/patch"
    declare -- EPATCH_SUFFIX="patch.bz2"
    declare -- EPATCH_USER_SOURCE="/etc/portage/patches"
    declare -x EXEOPTIONS="-m0755"
    declare -- EXTRAVERSION="-1~exp1"
    declare -x FCFLAGS="-mtune=generic -O2 -pipe"
    declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
    declare -x FFLAGS="-mtune=generic -O2 -pipe"
    declare -x GCC_SPECS=""
    declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx"
    declare -x GRUB_PLATFORMS="efi-64 pc"
    declare HDEPEND=""
    declare HOMEPAGE="http://www.debian.org"
    declare -x INHERITED=" multilib toolchain-funcs eutils check-reqs mount-boot"
    declare -x INPUT_DEVICES="evdev synaptics"
    declare -x INSDESTTREE=""
    declare -x INSOPTIONS="-m0644"
    declare IUSE="binary rt "
    declare -x IUSE_EFFECTIVE="alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 binary elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_glibc elibc_mintlib elibc_musl elibc_uclibc hppa hppa-hpux ia64 ia64-hpux ia64-linux kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux m68k m68k-mint mips nios2 ppc ppc-aix ppc-macos ppc-openbsd ppc64 ppc64-linux prefix prefix-guest riscv rt s390 sh sparc sparc-fbsd sparc-solaris sparc64-freebsd sparc64-solaris userland_BSD userland_GNU x64-cygwin x64-freebsd x64-macos x64-openbsd x64-solaris x86 x86-cygwin x86-fbsd x86-freebsd x86-interix x86-linux x86-macos x86-netbsd x86-openbsd x86-solaris x86-winnt"
    declare -x IUSE_IMPLICIT="prefix prefix-guest"
    declare -x KERNEL="linux"
    declare -x KERNEL_ABI="amd64"
    declare -- KERNEL_ARCHIVE="linux_3.19.3.orig.tar.xz"
    declare -x KEYWORDS="*"
    declare -- KV_FULL="debian-sources-3.19.3"
    declare -x LANG="en_US.UTF-8"
    declare -x LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text"
    declare -x LC_COLLATE="POSIX"
    declare -x LC_MESSAGES="C"
    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="presenter-console presenter-minimizer"
    declare -x LICENSE="GPL-2"
    declare -x MAKEOPTS="-j4"
    declare -x MULTILIB_ABIS="amd64 x86"
    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 -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
    declare -x OFFICE_IMPLEMENTATION="libreoffice"
    declare -- PATCH_ARCHIVE="linux_3.19.3-1~exp1.debian.tar.xz"
    declare -x PATH="/usr/lib/portage/python2.7/ebuild-helpers/xattr:/usr/lib/portage/python2.7/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3"
    declare PDEPEND=""
    declare -x PHP_TARGETS="php5-5"
    declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig"
    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/debian-sources-3.19.3/html")'
    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 PROVIDE=""
    declare -x PYTHONDONTWRITEBYTECODE="1"
    declare -x PYTHON_ABIS="2.7 3.3"
    declare -x PYTHON_SINGLE_TARGET="python3_3"
    declare -x PYTHON_TARGETS="python2_7 python3_3"
    declare -x QEMU_SOFTMMU_TARGETS="i386 x86_64"
    declare -x QEMU_USER_TARGETS="i386 x86_64"
    declare RDEPEND=""
    declare -x REAL_ARCH="amd64"
    declare REPOSITORY
    declare REQUIRED_USE=""
    declare -x RESTRICT="binchecks mirror strip"
    declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\""
    declare -x RUBY_TARGETS="ruby19 ruby20 ruby21 ruby22"
    declare -x S="/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3"
    declare -x SANDBOX_DEBUG="0"
    declare -x SANDBOX_DENY=""
    declare -x SANDBOX_PREDICT="/var/tmp/portage/sys-kernel/debian-sources-3.19.3/homedir:/dev/crypto"
    declare -x SANDBOX_READ="/:/var/tmp"
    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/:/var/tmp/portage/sys-kernel/debian-sources-3.19.3/homedir/.bash_history"
    declare -- SHELL="/bin/bash"
    declare -x SLOT="3.19.3"
    declare SRC_URI="mirror://funtoo/linux_3.19.3.orig.tar.xz mirror://funtoo/linux_3.19.3-1~exp1.debian.tar.xz"
    declare -x STAGE1_USE="multilib nptl nptlonly unicode"
    declare -x SYMLINK_LIB="yes"
    declare -x USE="amd64 binary elibc_glibc kernel_linux userland_GNU"
    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 hppa-hpux ia64 ia64-hpux ia64-linux m68k m68k-mint mips nios2 ppc ppc64 ppc64-linux ppc-aix ppc-macos ppc-openbsd riscv s390 sh sparc sparc64-freebsd sparc64-solaris sparc-fbsd sparc-solaris x64-cygwin x64-freebsd x64-macos x64-openbsd x64-solaris x86 x86-cygwin x86-fbsd x86-freebsd x86-interix x86-linux x86-macos x86-netbsd x86-openbsd x86-solaris x86-winnt"
    declare -x USE_EXPAND_VALUES_ELIBC="AIX Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix 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 -x 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"
    declare -- _EUTILS_ECLASS="1"
    declare -x _E_DOCDESTTREE_=""
    declare -x _E_EXEDESTTREE_=""
    declare -- _MULTILIB_ECLASS="1"
    declare -- _TOOLCHAIN_FUNCS_ECLASS="1"
    declare -- conf="debian-sources-3.19.3-r0"
    declare -- debpatch="features/all/efi-expose-underlying-uefi-firmware-platform-size-to.patch"
    declare -- phase_func
    __bashpid () 
    { 
        sh -c 'echo ${PPID}'
    }
    __eapi6_src_install () 
    { 
        if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
            emake DESTDIR="${D}" install;
        fi;
        einstalldocs
    }
    __eapi6_src_prepare () 
    { 
        if [[ $(declare -p PATCHES) == "declare -a"* ]]; then
            eapply "${PATCHES[@]}";
        else
            if [[ -n ${PATCHES} ]]; then
                eapply ${PATCHES};
            fi;
        fi;
        eapply_user
    }
    __start_distcc () 
    { 
        if has distcc $FEATURES && has distcc-pump $FEATURES; then
            if [[ -z $INCLUDE_SERVER_PORT ]] || [[ ! -w $INCLUDE_SERVER_PORT ]]; then
                eval $(pump --startup | grep -v PATH);
                trap "pump --shutdown >/dev/null" EXIT;
            fi;
        fi
    }
    _epatch_draw_line () 
    { 
        [[ -z $1 ]] && set "$(printf "%65s" '')";
        echo "${1//?/=}"
    }
    _eutils_eprefix_init () 
    { 
        has "${EAPI:-0}" 0 1 2 && : ${ED:=${D}} ${EPREFIX:=} ${EROOT:=${ROOT}}
    }
    _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 () 
    { 
        ( 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
    }
    _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}");
        [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}");
        [[ -n ${search} ]] && prog=${search##*/};
        export ${var}=${prog};
        echo "${!var}"
    }
    built_with_use () 
    { 
        _eutils_eprefix_init;
        local hidden="no";
        if [[ $1 == "--hidden" ]]; then
            hidden="yes";
            shift;
        fi;
        local missing_action="die";
        if [[ $1 == "--missing" ]]; then
            missing_action=$2;
            shift;
            shift;
            case ${missing_action} in 
                true | false | die)
    
                ;;
                *)
                    die "unknown action '${missing_action}'"
                ;;
            esac;
        fi;
        local opt=$1;
        [[ ${opt:0:1} = "-" ]] && shift || opt="-a";
        local PKG=$(best_version $1);
        [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package";
        shift;
        local USEFILE=${EROOT}/var/db/pkg/${PKG}/USE;
        local IUSEFILE=${EROOT}/var/db/pkg/${PKG}/IUSE;
        if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then
            case ${missing_action} in 
                true)
                    return 0
                ;;
                false)
                    return 1
                ;;
                die)
                    die "Unable to determine what USE flags $PKG was built with"
                ;;
            esac;
        fi;
        if [[ ${hidden} == "no" ]]; then
            local IUSE_BUILT=($(<"${IUSEFILE}"));
            local expand;
            for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]');
            do
                if [[ $1 == ${expand}_* ]]; then
                    expand="";
                    break;
                fi;
            done;
            if [[ -n ${expand} ]]; then
                if ! has $1 ${IUSE_BUILT[@]#[-+]}; then
                    case ${missing_action} in 
                        true)
                            return 0
                        ;;
                        false)
                            return 1
                        ;;
                        die)
                            die "$PKG does not actually support the $1 USE flag!"
                        ;;
                    esac;
                fi;
            fi;
        fi;
        local USE_BUILT=$(<${USEFILE});
        while [[ $# -gt 0 ]]; do
            if [[ ${opt} = "-o" ]]; then
                has $1 ${USE_BUILT} && return 0;
            else
                has $1 ${USE_BUILT} || return 1;
            fi;
            shift;
        done;
        [[ ${opt} = "-a" ]]
    }
    check-reqs_disk () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${2} ]] && die "Usage: ${FUNCNAME} [path] [size]";
        local path=${1};
        local size=${2};
        local space_megs;
        check-reqs_start_phase ${size} "disk space at \"${path}\"";
        space_megs=$(df -Pm "${1}" 2>/dev/null | awk 'FNR == 2 {print $4}');
        if [[ $? == 0 && -n ${space_megs} ]]; then
            if [[ ${space_megs} -lt $(check-reqs_get_mebibytes ${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_mebibytes () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local unit=${1:(-1)};
        local size=${1%[GMT]};
        case ${unit} in 
            G)
                echo $((1024 * size))
            ;;
            [M0-9])
                echo ${size}
            ;;
            T)
                echo $((1024 * 1024 * size))
            ;;
            *)
                die "${FUNCNAME}: Unknown unit: ${unit}"
            ;;
        esac
    }
    check-reqs_get_number () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local unit=${1:(-1)};
        local size=${1%[GMT]};
        if [[ ${size} == ${1} ]]; then
            ewarn "QA: Package does not specify unit for the size check";
            ewarn "QA: Assuming mebibytes.";
            ewarn "QA: File bug against the package. It should specify the unit.";
        fi;
        echo ${size}
    }
    check-reqs_get_unit () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        [[ -z ${1} ]] && die "Usage: ${FUNCNAME} [size]";
        local unit=${1:(-1)};
        case ${unit} in 
            G)
                echo "GiB"
            ;;
            [M0-9])
                echo "MiB"
            ;;
            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 $((1024 * $(check-reqs_get_mebibytes ${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;
        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_license () 
    { 
        die "you no longer need this as portage supports ACCEPT_LICENSE itself"
    }
    check_reqs () 
    { 
        debug-print-function ${FUNCNAME} "$@";
        echo;
        ewarn "QA: Package calling old ${FUNCNAME} function.";
        ewarn "QA: Please file a bug against the package.";
        ewarn "QA: It should call check-reqs_pkg_pretend and check-reqs_pkg_setup";
        ewarn "QA: and possibly use EAPI=4 or later.";
        echo;
        check-reqs_pkg_setup "$@"
    }
    doicon () 
    { 
        _iconins ${FUNCNAME} "$@"
    }
    domenu () 
    { 
        ( local i j ret=0;
        insinto /usr/share/applications;
        for i in "$@";
        do
            if [[ -f ${i} ]]; then
                doins "${i}";
                ((ret+=$?));
            else
                if [[ -d ${i} ]]; then
                    for j in "${i}"/*.desktop;
                    do
                        doins "${j}";
                        ((ret+=$?));
                    done;
                else
                    ((++ret));
                fi;
            fi;
        done;
        exit ${ret} )
    }
    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 () 
    { 
        [[ -z $* ]] && set -- .;
        find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf;
        find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
    }
    edos2unix () 
    { 
        [[ $# -eq 0 ]] && return 0;
        sed -i 's/\r$//' -- "$@" || die
    }
    einstalldocs () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        local dodoc_opts=-r;
        has ${EAPI} 0 1 2 3 && dodoc_opts=;
        if ! declare -p DOCS &> /dev/null; then
            local d;
            for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG;
            do
                if [[ -s ${d} ]]; then
                    dodoc "${d}" || die;
                fi;
            done;
        else
            if [[ $(declare -p DOCS) == "declare -a"* ]]; then
                if [[ -n ${DOCS[@]} ]]; then
                    dodoc ${dodoc_opts} "${DOCS[@]}" || die;
                fi;
            else
                if [[ -n ${DOCS} ]]; then
                    dodoc ${dodoc_opts} ${DOCS} || die;
                fi;
            fi;
        fi;
        if [[ $(declare -p HTML_DOCS 2>/dev/null) == "declare -a"* ]]; then
            if [[ -n ${HTML_DOCS[@]} ]]; then
                dohtml -r "${HTML_DOCS[@]}" || die;
            fi;
        else
            if [[ -n ${HTML_DOCS} ]]; then
                dohtml -r ${HTML_DOCS} || die;
            fi;
        fi;
        return 0
    }
    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
    }
    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
                eshopts_push -o noglob;
                local ex;
                for ex in ${EPATCH_EXCLUDE};
                do
                    if [[ ${patchname} == ${ex} ]]; then
                        einfo "  Skipping ${patchname} due to EPATCH_EXCLUDE ...";
                        eshopts_pop;
                        continue 2;
                    fi;
                done;
                for ex in ${EPATCH_USER_EXCLUDE};
                do
                    if [[ ${patchname} == ${ex} ]]; then
                        einfo "  Skipping ${patchname} due to EPATCH_USER_EXCLUDE ...";
                        eshopts_pop;
                        continue 2;
                    fi;
                done;
                eshopts_pop;
            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} < '${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;
                    _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;
            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 >> "${T}/epatch.log"  <<-EOF
    PATCH: ${x}
    CMD: ${patch_cmd}
    PWD: ${PWD}
    
    EOF
    
            eend 0;
        done;
        [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
        :
    }
    epatch_user () 
    { 
        [[ $# -ne 0 ]] && die "epatch_user takes no options";
        local applied="${T}/epatch_user.log";
        [[ -e ${applied} ]] && return 2;
        local EPATCH_SOURCE check;
        for check in ${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT}};
        do
            EPATCH_SOURCE=${EPATCH_USER_SOURCE}/${CTARGET}/${check};
            [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${EPATCH_USER_SOURCE}/${CHOST}/${check};
            [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${EPATCH_USER_SOURCE}/${check};
            if [[ -d ${EPATCH_SOURCE} ]]; then
                EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch;
                echo "${EPATCH_SOURCE}" > "${applied}";
                has epatch_user_death_notice ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" epatch_user_death_notice";
                return 0;
            fi;
        done;
        echo "none" > "${applied}";
        return 1
    }
    epatch_user_death_notice () 
    { 
        ewarn "!!! User patches were applied to this build!"
    }
    epause () 
    { 
        ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at https://bugs.gentoo.org"
    }
    epunt_cxx () 
    { 
        local dir=$1;
        [[ -z ${dir} ]] && dir=${S};
        ebegin "Removing useless C++ checks";
        local f p any_found;
        while IFS= read -r -d '' f; do
            for p in "${PORTDIR}"/eclass/ELT-patches/nocxx/*.patch;
            do
                if patch --no-backup-if-mismatch -p1 "${f}" "${p}" > /dev/null; then
                    any_found=1;
                    break;
                fi;
            done;
        done < <(find "${dir}" -name configure -print0);
        if [[ -z ${any_found} ]]; then
            eqawarn "epunt_cxx called unnecessarily (no C++ checks to punt).";
        fi;
        eend 0
    }
    eshopts_pop () 
    { 
        local s;
        estack_pop eshopts s || die "${FUNCNAME}: unbalanced push";
        if [[ ${s} == "shopt -"* ]]; then
            eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}";
        else
            set +$- || die "${FUNCNAME}: sanity: invalid shell settings: $-";
            set -${s} || die "${FUNCNAME}: sanity: unable to restore saved shell settings: ${s}";
        fi
    }
    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 $-;
            [[ $# -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 () 
    { 
        [[ -z $* ]] && set -- .;
        find "$@" -type d -name '.svn' -prune -print0 | xargs -0 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
    }
    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;
        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_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_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_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_libdir () 
    { 
        local CONF_LIBDIR;
        if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
            echo ${CONF_LIBDIR_OVERRIDE};
        else
            get_abi_LIBDIR;
        fi
    }
    get_libname () 
    { 
        local libname;
        local ver=$1;
        case ${CHOST} in 
            *-cygwin | 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 
                    *-darwin*)
                        echo ".${ver}.${libname}"
                    ;;
                    *-mint*)
                        echo ".${libname}"
                    ;;
                    *)
                        echo ".${libname}.${ver}"
                    ;;
                esac;
            done;
        fi
    }
    get_modname () 
    { 
        local modname;
        local ver=$1;
        case ${CHOST} in 
            *-darwin*)
                modname="bundle"
            ;;
            *)
                modname="so"
            ;;
        esac;
        echo ".${modname}"
    }
    get_patch_list () 
    { 
        [[ -z "${1}" ]] && die "No patch series file specified";
        local patch_series="${1}";
        while read line; do
            if [[ "${line:0:1}" != "#" ]]; then
                echo "${line}";
            fi;
        done < "${patch_series}"
    }
    has_multilib_profile () 
    { 
        [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
    }
    in_iuse () 
    { 
        debug-print-function ${FUNCNAME} "${@}";
        [[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()";
        local flag=${1};
        local liuse=(${IUSE});
        has "${flag}" "${liuse[@]#[+-]}"
    }
    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
    }
    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:+;};
        eshopts_push -s extglob;
        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%.@(xpm|png|svg)};
        fi;
        eshopts_pop;
        cat > "${desktop}"  <<-EOF
    [Desktop Entry]
    Name=${name}
    Type=Application
    Comment=${DESCRIPTION}
    Exec=${exec}
    TryExec=${exec%% *}
    Icon=${icon}
    Categories=${type}
    EOF
    
        if [[ ${fields:-=} != *=* ]]; then
            ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}";
            fields="Path=${fields}";
        fi;
        [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}";
        ( 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 > "${desktop}"  <<-EOF
    [Desktop Entry]
    Name=${title}
    Comment=This session logs you into ${title}
    Exec=${command} $*
    TryExec=${command}
    Type=XSession
    EOF
    
        ( insinto /usr/share/xsessions;
        doins "${desktop}" )
    }
    make_wrapper () 
    { 
        _eutils_eprefix_init;
        local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
        local tmpwrapper=$(emktemp);
        ( echo '#!/bin/sh';
        [[ -n ${chdir} ]] && printf 'cd "%s"\n' "${EPREFIX}${chdir}";
        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
        printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}/}" ) > "${tmpwrapper}";
        chmod go+rx "${tmpwrapper}";
        if [[ -n ${path} ]]; then
            ( exeinto "${path}";
            newexe "${tmpwrapper}" "${wrapper}" ) || die;
        else
            newbin "${tmpwrapper}" "${wrapper}" || die;
        fi
    }
    mount-boot_mount_boot_partition () 
    { 
        if [[ -n ${DONT_MOUNT_BOOT} ]]; then
            return;
        else
            elog;
            elog "To avoid automounting and auto(un)installing with /boot,";
            elog "just export the DONT_MOUNT_BOOT variable.";
            elog;
        fi;
        if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
            einfo "You are chrooted. Not touching /boot -- assuming you have it mounted if you have one.";
            return;
        fi;
        local fstabstate=$(awk '!/^#|^[[:blank:]]+#|^\/dev\/BOOT/ {print $2}' /etc/fstab | egrep "^/boot$" );
        local procstate=$(awk '$2 ~ /^\/boot$/ {print $2}' /proc/mounts);
        local proc_ro=$(awk '{ print $2 " ," $4 "," }' /proc/mounts | sed -n '/\/boot .*,ro,/p');
        if [ -n "${fstabstate}" ] && [ -n "${procstate}" ]; then
            if [ -n "${proc_ro}" ]; then
                einfo;
                einfo "Your boot partition, detected as being mounted as /boot, is read-only.";
                einfo "Remounting it in read-write mode ...";
                einfo;
                mount -o remount,rw /boot;
                if [ "$?" -ne 0 ]; then
                    eerror;
                    eerror "Unable to remount in rw mode. Please do it manually!";
                    eerror;
                    die "Can't remount in rw mode. Please do it manually!";
                fi;
                touch /boot/.e.remount;
            else
                einfo;
                einfo "Your boot partition was detected as being mounted as /boot.";
                einfo "Files will be installed there for ${PN} to function correctly.";
                einfo;
            fi;
        else
            if [ -n "${fstabstate}" ] && [ -z "${procstate}" ]; then
                mount /boot -o rw;
                if [ "$?" -eq 0 ]; then
                    einfo;
                    einfo "Your boot partition was not mounted as /boot, but portage";
                    einfo "was able to mount it without additional intervention.";
                    einfo "Files will be installed there for ${PN} to function correctly.";
                    einfo;
                else
                    eerror;
                    eerror "Cannot automatically mount your /boot partition.";
                    eerror "Your boot partition has to be mounted rw before the installation";
                    eerror "can continue. ${PN} needs to install important files there.";
                    eerror;
                    die "Please mount your /boot partition manually!";
                fi;
                touch /boot/.e.mount;
            else
                einfo;
                einfo "Assuming you do not have a separate /boot partition.";
                einfo;
            fi;
        fi
    }
    mount-boot_pkg_postinst () 
    { 
        mount-boot_umount_boot_partition
    }
    mount-boot_pkg_postrm () 
    { 
        mount-boot_umount_boot_partition
    }
    mount-boot_pkg_preinst () 
    { 
        mount-boot_mount_boot_partition
    }
    mount-boot_pkg_prerm () 
    { 
        touch "${ROOT}"/boot/.keep 2> /dev/null;
        mount-boot_mount_boot_partition;
        touch "${ROOT}"/boot/.keep 2> /dev/null
    }
    mount-boot_umount_boot_partition () 
    { 
        if [[ -n ${DONT_MOUNT_BOOT} ]]; then
            return;
        fi;
        if [ -e /boot/.e.remount ]; then
            einfo;
            einfo "Automatically remounting /boot as ro";
            einfo;
            rm -f /boot/.e.remount;
            mount -o remount,ro /boot;
        else
            if [ -e /boot/.e.mount ]; then
                einfo;
                einfo "Automatically unmounting /boot";
                einfo;
                rm -f /boot/.e.mount;
                umount /boot;
            fi;
        fi
    }
    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*)
                export CFLAGS_o32=${CFLAGS_o32--mabi=32};
                export CHOST_o32=${CTARGET/mips64/mips};
                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}
            ;;
            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";
            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 CBUILD=$(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 () 
    { 
        ( insinto /usr/share/applications;
        newins "$@" )
    }
    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 () 
    { 
        local opt=$1;
        [[ ${opt} == -[ao] ]] && shift || opt="-a";
        [[ $# -eq 0 ]] && return 1;
        local p r=0;
        for p in "$@";
        do
            [[ -e ${p} ]];
            : $(( r += $? ));
        done;
        case ${opt} in 
            -a)
                return $(( r != 0 ))
            ;;
            -o)
                return $(( r == $# ))
            ;;
        esac
    }
    pkg_nofetch () 
    { 
        default
    }
    pkg_postinst () 
    { 
        if use binary && [[ -h "${ROOT}"usr/src/linux ]]; then
            rm "${ROOT}"usr/src/linux;
        fi;
        if use binary && [[ ! -e "${ROOT}"usr/src/linux ]]; then
            ewarn "With binary use flag enabled /usr/src/linux";
            ewarn "symlink automatically set to debian kernel";
            ln -sf linux-${P} "${ROOT}"usr/src/linux;
        fi;
        if [ -e ${ROOT}lib/modules ]; then
            depmod -a ${ROOT}lib/modules;
        fi
    }
    pkg_postrm () 
    { 
        mount-boot_pkg_postrm "$@"
    }
    pkg_preinst () 
    { 
        mount-boot_pkg_preinst "$@"
    }
    pkg_prerm () 
    { 
        mount-boot_pkg_prerm "$@"
    }
    pkg_pretend () 
    { 
        if use binary; then
            CHECKREQS_DISK_BUILD="14G";
            check-reqs_pkg_setup;
        fi
    }
    pkg_setup () 
    { 
        export REAL_ARCH="$ARCH";
        unset ARCH;
        unset LDFLAGS
    }
    preserve_old_lib () 
    { 
        _eutils_eprefix_init;
        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;
        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;
        _eutils_eprefix_init;
        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;
        _eutils_eprefix_init;
        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
                                                    eqawarn "${FUNCNAME}: variable substitution likely failed in ${pc}";
                                                    eqawarn "(arg: ${arg})";
                                                    eqawarn "Most likely, you need to add virtual/pkgconfig to DEPEND.";
                                                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 "${ED}" -xtype f -name '*.la' -print0);
        if [[ -n ${queue[@]} ]]; then
            rm -f "${queue[@]}";
        fi
    }
    src_compile () 
    { 
        ! use binary && return;
        install -d "${WORKDIR}"/out/{lib,boot};
        install -d "${T}"/{cache,twork};
        install -d "${WORKDIR}"/build "${WORKDIR}"/out/lib/firmware;
        genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
    }
    src_configure () 
    { 
        default
    }
    src_install () 
    { 
        dodir /usr/src;
        cp -a "${S}" "${D}"/usr/src/linux-${P} || die;
        cd "${D}"/usr/src/linux-${P};
        make mrproper || die;
        cp "${T}"/config .config || die;
        cp -a "${T}"/debian debian || die;
        yes "" | make oldconfig || die;
        use binary || return;
        make prepare || die;
        make scripts || die;
        cp -a "${WORKDIR}"/out/* "${D}"/ || die "couldn't copy output files into place";
        rm -f "${D}"/lib/modules/*/source || die;
        rm -f "${D}"/lib/modules/*/build || die;
        cd "${D}"/lib/modules;
        find -iname *.ko -exec strip --strip-debug {} \;;
        local moddir="$(ls -d [23]*)";
        ln -s /usr/src/linux-${P} "${D}"/lib/modules/${moddir}/source || die;
        ln -s /usr/src/linux-${P} "${D}"/lib/modules/${moddir}/build || die;
        cp "${WORKDIR}/build/System.map" "${D}/usr/src/linux-${P}/" || die;
        cp "${WORKDIR}/build/Module.symvers" "${D}/usr/src/linux-${P}/" || die
    }
    src_prepare () 
    { 
        cd "${S}";
        for debpatch in $( get_patch_list "${WORKDIR}/debian/patches/series" );
        do
            epatch -p1 "${WORKDIR}/debian/patches/${debpatch}";
        done;
        if use rt; then
            for rtpatch in $( get_patch_list "${WORKDIR}/debian/patches/series-rt" );
            do
                epatch -p1 "${WORKDIR}/debian/patches/${rtpatch}";
            done;
        fi;
        sed -i -e "s:^\(EXTRAVERSION =\).*:\1 ${EXTRAVERSION}:" Makefile || die;
        sed -i -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' Makefile || die;
        rm -f .config > /dev/null;
        cp -a "${WORKDIR}"/debian "${T}";
        make -s mrproper || die "make mrproper failed";
        cd "${S}";
        cp -aR "${WORKDIR}"/debian "${S}"/debian;
        epatch "${FILESDIR}"/debian-sources-3.14.4-xfs-libcrc32c-fix.patch;
        local opts;
        use rt && opts="rt" || opts="standard";
        local myarch="amd64";
        [ "$REAL_ARCH" = "x86" ] && myarch="i386" && opts="$opts 686-pae";
        cp "${FILESDIR}"/config-extract . || die;
        chmod +x config-extract || die;
        ./config-extract ${myarch} ${opts} || die;
        cp .config "${T}"/config || die;
        make -s mrproper || die "make mrproper failed"
    }
    src_test () 
    { 
        default
    }
    src_unpack () 
    { 
        default
    }
    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}
    }
    tc-arch () 
    { 
        tc-ninja_magic_to_arch portage "$@"
    }
    tc-arch-kernel () 
    { 
        tc-ninja_magic_to_arch kern "$@"
    }
    tc-endian () 
    { 
        local host=$1;
        [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
        host=${host%%-*};
        case ${host} in 
            aarch64*be)
                echo big
            ;;
            aarch64)
                echo little
            ;;
            alpha*)
                echo big
            ;;
            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
            ;;
            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}'";
            eval tc-get${var} > /dev/null;
        done
    }
    tc-export_build_env () 
    { 
        tc-export "$@";
        : ${BUILD_CFLAGS:=-O1 -pipe};
        : ${BUILD_CXXFLAGS:=-O1 -pipe};
        : ${BUILD_CPPFLAGS:= };
        : ${BUILD_LDFLAGS:= };
        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-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 cpp "$@"
    }
    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 () 
    { 
        _tc-getPROG CBUILD "BUILD_$1 $1_FOR_BUILD HOST$1" "${@: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 cpp "$@"
    }
    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-has-openmp () 
    { 
        local base="${T}/test-tc-openmp";
        cat > "${base}.c"  <<-EOF
    #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 > "${base}.c"  <<-EOF
    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-cross-compiler () 
    { 
        [[ ${CBUILD:-${CHOST}} != ${CHOST} ]]
    }
    tc-is-softfloat () 
    { 
        local CTARGET=${CTARGET:-${CHOST}};
        case ${CTARGET} in 
            bfin* | h8300*)
                echo "only"
            ;;
            *)
                if [[ ${CTARGET//_/-} == *-softfloat-* ]]; then
                    echo "yes";
                else
                    if [[ ${CTARGET//_/-} == *-softfp-* ]]; then
                        echo "softfp";
                    else
                        echo "no";
                    fi;
                fi
            ;;
        esac
    }
    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 major=$(gcc-major-version "$@");
        local minor=$(gcc-minor-version "$@");
        if [[ ${major} -lt 4 ]] || [[ ${major} -eq 4 && ${minor} -lt 8 ]]; 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;
        else
            export LDFLAGS="${LDFLAGS} -fuse-ld=bfd";
        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 > "${base}.c"  <<-EOF
    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}};
        local KV=${KV:-${KV_FULL}};
        [[ ${type} == "kern" ]] && [[ -z ${KV} ]] && ewarn "QA: Kernel version could not be determined, please inherit kernel-2 or linux-info";
        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" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${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
            ;;
            or32*)
                echo openrisc
            ;;
            powerpc*)
                if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then
                    echo powerpc;
                else
                    if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then
                        if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                            echo powerpc;
                        else
                            echo ppc;
                        fi;
                    else
                        if [[ ${host} == powerpc64* ]]; then
                            echo ppc64;
                        else
                            if [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                                ninj ppc64 ppc;
                            else
                                echo ppc;
                            fi;
                        fi;
                    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" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then
                    echo x86;
                else
                    ninj x86_64 amd64;
                fi
            ;;
            xtensa*)
                echo xtensa
            ;;
            *)
                echo unknown
            ;;
        esac
    }
    use_if_iuse () 
    { 
        in_iuse $1 || return 1;
        use $1
    }
    validate_desktop_entries () 
    { 
        _eutils_eprefix_init;
        if [[ -x "${EPREFIX}"/usr/bin/desktop-file-validate ]]; then
            einfo "Checking desktop entry validity";
            local directories="";
            for d in /usr/share/applications $@;
            do
                [[ -d ${ED}${d} ]] && directories="${directories} ${ED}${d}";
            done;
            if [[ -n ${directories} ]]; then
                for FILE in $(find ${directories} -name "*\.desktop" 							-not -path '*.hidden*' | sort -u 2>/dev/null);
                do
                    local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | 								sed -e "s|error: ||" -e "s|${FILE}:|--|g" );
                    [[ -n $temp ]] && elog ${temp/--/${FILE/${ED}/}:};
                done;
            fi;
            echo "";
        else
            einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo.";
        fi
    }
    
    
  3. Hello,

     

    I am trying to install debian-sources on a new pc using the funtoo-current setup and when I try to emerge debian-sources I keep getting errors.

    Could not find source tarball /var/cache/genkernel/src/busybox-1.21.1.tar.bz2. Please refetch.
     * ERROR: sys-kernel/debian-sources-3.19.3::gentoo failed (compile phase):
     *   genkernel failed
     *
     * Call stack:
     *     ebuild.sh, line  93:  Called src_compile
     *   environment, line 2211:  Called die
     * The specific snippet of code:
     *       genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
     *
     * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'`,
     * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-3.19.3::gentoo'`.
     * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/environment'.
     * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
     * S: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
    
    >>> Failed to emerge sys-kernel/debian-sources-3.19.3, Log file:
    
    >>>  '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'
    
     * Messages for package sys-kernel/debian-sources-3.19.3:
    
     * ERROR: sys-kernel/debian-sources-3.19.3::gentoo failed (compile phase):
     *   genkernel failed
     *
     * Call stack:
     *     ebuild.sh, line  93:  Called src_compile
     *   environment, line 2211:  Called die
     * The specific snippet of code:
     *       genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
     *
     * If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'`,
     * the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-3.19.3::gentoo'`.
     * The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'.
     * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/environment'.
     * Working directory: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
     * S: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
    

     emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'

    Portage 2.2.20.1 (python 2.7.10-final-0, funtoo/1.0/linux-gnu/arch/x86-64bit, gcc-4.9.3, glibc-2.20-r2, 3.14.31-std450-amd64 x86_64)
    =================================================================
                             System Settings
    =================================================================
    System uname: Linux-3.14.31-std450-amd64-x86_64-Intel-R-_Xeon-R-_CPU_X5650_@_2.67GHz-with-gentoo-2.2.0
    KiB Mem:     4047104 total,    147220 free
    KiB Swap:    2097148 total,   2097148 free
    sh bash 4.3_p39-r1
    ld GNU ld (Funtoo 2.25) 2.25.0
    app-shells/bash:          4.3_p39-r1::gentoo
    dev-lang/perl:            5.22.0::gentoo
    dev-lang/python:          2.7.10::gentoo, 3.3.5-r2::gentoo
    sys-apps/baselayout:      2.2.0-r6::gentoo
    sys-apps/openrc:          0.18-r2::gentoo
    sys-apps/sandbox:         2.9::gentoo
    sys-devel/autoconf:       2.69-r1::gentoo
    sys-devel/automake:       1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
    sys-devel/binutils:       2.25-r2::gentoo
    sys-devel/gcc:            4.9.3::gentoo
    sys-devel/gcc-config:     1.8::gentoo
    sys-devel/libtool:        2.4.6-r1::gentoo
    sys-devel/make:           4.1-r1::gentoo
    sys-kernel/linux-headers: 4.0::gentoo (virtual/os-headers)
    sys-libs/glibc:           2.20-r2::gentoo
    Repositories:
    
    gentoo
        location: /usr/portage
        sync-type: git
        sync-uri: git://github.com/funtoo/ports-2012.git
        priority: -1000
    
    ACCEPT_KEYWORDS="amd64 ~amd64"
    ACCEPT_LICENSE="* -@EULA Oracle-BCLA-JavaSE"
    CBUILD="x86_64-pc-linux-gnu"
    CFLAGS="-mtune=generic -O2 -pipe"
    CHOST="x86_64-pc-linux-gnu"
    CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
    CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
    CXXFLAGS="-mtune=generic -O2 -pipe"
    DISTDIR="/usr/portage/distfiles"
    FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
    FFLAGS="-mtune=generic -O2 -pipe"
    GENTOO_MIRRORS="http://distfiles.gentoo.org"
    LANG="en_US.UTF-8"
    LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed"
    PKGDIR="/usr/portage/packages"
    PORTAGE_CONFIGROOT="/"
    PORTAGE_TMPDIR="/var/tmp"
    USE="acl amd64 berkdb bzip2 cracklib crypt cxx gdbm iconv icu ipv6 mmx modules mudflap multilib ncurses nls nptl openmp pam pcre python readline resolvconf sse sse2 ssl tcpd unicode xattr xml zlib" ABI_X86="64" 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" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="evdev synaptics keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_ABIS="2.7 3.3" PYTHON_SINGLE_TARGET="python3_3" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="i386 x86_64" QEMU_USER_TARGETS="i386 x86_64" RUBY_TARGETS="ruby20 ruby21 ruby22" USERLAND="GNU" 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, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
    
    =================================================================
                            Package Settings
    =================================================================
    
    

    build.log

    [32;01m * [39;49;00mPackage:    sys-kernel/debian-sources-3.19.3
    [32;01m * [39;49;00mRepository: gentoo
    [32;01m * [39;49;00mMaintainer: funtoo-dev@googlegroups.com funtoo
    [32;01m * [39;49;00mUSE:        amd64 binary elibc_glibc kernel_linux userland_GNU
    [32;01m * [39;49;00mFEATURES:   preserve-libs sandbox userpriv usersandbox
    >>> Unpacking source...
    >>> Unpacking linux_3.19.3.orig.tar.xz to /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work
    >>> Unpacking linux_3.19.3-1~exp1.debian.tar.xz to /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work
    >>> Source unpacked in /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work
    >>> Preparing source in /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3 ...
     [32;01m*[0m Applying version.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying kernelvariables.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying gitignore.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying ia64-hardcode-arch-script-output.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying mips-disable-werror.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying arch-sh4-fix-uimage-build.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying powerpcspe-omit-uimage.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying Kbuild-kconfig-Verbose-version-of-listnewconfig.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying drivers-media-dvb-usb-af9005-request_firmware.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying iwlwifi-do-not-request-unreleased-firmware.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying firmware_class-return-specific-errors-from-file-read.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying firmware_class-log-every-success-and-failure.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying firmware-remove-redundant-log-messages-from-drivers.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying radeon-firmware-is-required-for-drm-and-kms-on-r600-onward.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying af_802154-Disable-auto-loading-as-mitigation-against.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying rds-Disable-auto-loading-as-mitigation-against-local.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying decnet-Disable-auto-loading-as-mitigation-against-lo.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying fs-enable-link-security-restrictions-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying sched-autogroup-disabled.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying cgroups-Allow-memory-cgroup-support-to-be-included-b.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying cgroups-Document-the-Debian-memory-resource-controll.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying yama-disable-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying add-sysctl-to-disallow-unprivileged-CLONE_NEWUSER-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying cirrus-disable-modeset-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying mgag200-disable-autoload.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying cdc_ncm-cdc_mbim-use-ncm-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying snd-pcsp-disable-autoload.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying viafb-autoload-on-olpc-xo1.5-only.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying qxl-disable-modeset-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying disable-advansys.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying ethernat-kconfig.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying arm64-add-missing-dts-entry-for-X-Gene-platform.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying arm64-removed-using-of-the-mask-attribute-in-the-dts.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying acpi-video-add-disable_native_backlight-quirk-for-samsung-730u3e-740u3e.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying acpi-video-add-disable_native_backlight-quirk-for-samsung-510r.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying acpi-video-disable-native-backlight-on-samsung-series-9.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying drm-i915-quietly-reject-attempts-to-create-non-pagealigned-stolen-objects.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying MIPS-Loongson-3-Add-Loongson-LS3A-RS780E-1-way-machi.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying MIPS-octeon-Add-support-for-the-UBNT-E200-board.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying x86-memtest-WARN-if-bad-RAM-found.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying x86-make-x32-syscall-support-conditional.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying deb-pkg-add-automatic-support-for-armhf-architecture.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying dts-sun7i-Add-dts-file-for-Bananapro-board.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying ARM-dts-sunxi-Add-simplefb-nodes-for-de_be0-lcd0-de_.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying misc-bmp085-Enable-building-as-a-module.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying kbuild-use-nostdinc-in-compile-tests.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying disable-some-marvell-phys.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying i2o-disable-i2o_ext_adaptec-on-64bit.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying net-mv643xx-disable-tso-by-default.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying vfs-read-file_handle-only-once-in-handle_to_path.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying efi-autoload-efi-pstore.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying efi-expose-underlying-uefi-firmware-platform-size-to.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
     [32;01m*[0m Applying debian-sources-3.14.4-xfs-libcrc32c-fix.patch ...
    [A[124C [34;01m[ [32;01mok[34;01m ][0m
    Wrote amd64_none_amd64 kernel configuration to /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3/.config.
    >>> Source prepared.
    >>> Configuring source in /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3 ...
    >>> Source configured.
    >>> Compiling source in /var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3 ...
    [32;01m*[32;01m Funtoo Linux Genkernel; Version 3.4.40.7-funtoo[0m
    [32;01m*[0m Running with options: --no-save-config --kernel-config=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/config --kernname=debian-sources --build-src=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3 --build-dst=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/build --makeopts=-j4 --firmware-dst=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/out/lib/firmware --cachedir=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/cache --tempdir=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/twork --logfile=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/genkernel.log --bootdir=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/out/boot --lvm --luks --mdadm --iscsi --module-prefix=/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/out all
    
    Could not find source tarball /var/cache/genkernel/src/busybox-1.21.1.tar.bz2. Please refetch.
     [31;01m*[0m ERROR: sys-kernel/debian-sources-3.19.3::gentoo failed (compile phase):
     [31;01m*[0m   genkernel failed
     [31;01m*[0m 
     [31;01m*[0m Call stack:
     [31;01m*[0m     ebuild.sh, line  93:  Called src_compile
     [31;01m*[0m   environment, line 2211:  Called die
     [31;01m*[0m The specific snippet of code:
     [31;01m*[0m       genkernel --no-save-config --kernel-config="${T}"/config --kernname="${PN}" --build-src="${S}" --build-dst="${WORKDIR}"/build --makeopts="${MAKEOPTS}" --firmware-dst="${WORKDIR}"/out/lib/firmware --cachedir="${T}"/cache --tempdir="${T}"/twork --logfile="${WORKDIR}"/genkernel.log --bootdir="${WORKDIR}"/out/boot --lvm --luks --mdadm --iscsi --module-prefix="${WORKDIR}"/out all || die "genkernel failed"
     [31;01m*[0m 
     [31;01m*[0m If you need support, post the output of `emerge --info '=sys-kernel/debian-sources-3.19.3::gentoo'`,
     [31;01m*[0m the complete build log and the output of `emerge -pqv '=sys-kernel/debian-sources-3.19.3::gentoo'`.
     [31;01m*[0m The complete build log is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/build.log'.
     [31;01m*[0m The ebuild environment file is located at '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/temp/environment'.
     [31;01m*[0m Working directory: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
     [31;01m*[0m S: '/var/tmp/portage/sys-kernel/debian-sources-3.19.3/work/linux-3.19.3'
    
    

    Any help would be much appreciated

     

    Thanks! 

  4. I also did a find for xorg.conf on my system and the only places where it was found was  /usr/share/portage/config/sets/xorg.conf and it contained the following.

    # Rebuild all X11 modules (mostly useful after xorg-server ABI change).
    [x11-module-rebuild]
    class = portage.sets.dbapi.VariableSet
    world-candidate = false
    variable = CATEGORY
    includes = x11-drivers
    
  5. Hello Philipp,

     

    The video card I am using is the following as listed by lspci -v

    00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
            Subsystem: Dell Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
            Flags: bus master, fast devsel, latency 0, IRQ 30
            Memory at f0000000 (64-bit, non-prefetchable) [size=4M]
            Memory at e0000000 (64-bit, prefetchable) [size=256M]
            I/O ports at f000 [size=64]
            Expansion ROM at <unassigned> [disabled]
            Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
            Capabilities: [d0] Power Management version 2
            Capabilities: [a4] PCI Advanced Features
            Kernel driver in use: i915
            Kernel modules: i915
    
    

    I also use lightdm to start my x session and I do not believe I am using a custom xorg.conf at least I did not edit one when setting up this system.

     

    Thanks for your help!

  6. Good afternoon,

     

    I just started using Funtoo about a week ago and I am loving it but I had a question about my desktop that I can't seem to fix. I am running the MATE desktop environment with two monitors. When I double click on the title bar in a window to make it go full screen be it Youtube, Chromium, xterm etc it makes the window full screen but spans both monitors. What I would like to know is if it is possible when I double click the title bar can I make the program go full screen on only one monitor.

     

     

    Thanks in advanced!

    post-750-0-78652800-1445277473_thumb.png

×
×
  • Create New...