All pastes #2836251 Raw Edit

root

public unlisted text v1 · immutable
#2836251 ·published 2014-08-28 01:34 UTC
rendered paste body
declare -x ABI="amd64"declare -x ABI_X86="64"declare -a ALL_AUTOTOOLS_MACROS='([0]="AC_PROG_LIBTOOL" [1]="AM_PROG_LIBTOOL" [2]="LT_INIT" [3]="AC_CONFIG_HEADERS" [4]="AC_CONFIG_HEADER" [5]="AM_CONFIG_HEADERS" [6]="AM_CONFIG_HEADER" [7]="AC_CONFIG_SUBDIRS" [8]="AC_CONFIG_AUX_DIR" [9]="AC_CONFIG_MACRO_DIR" [10]="AM_INIT_AUTOMAKE" [11]="AM_GLIB_GNU_GETTEXT" [12]="AM_GNU_GETTEXT_VERSION" [13]="AC_PROG_INTLTOOL" [14]="IT_PROG_INTLTOOL" [15]="GTK_DOC_CHECK" [16]="GNOME_DOC_INIT")'declare -x ALSA_CARDS=""declare -x ANT_HOME="/usr/share/ant"declare -x APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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 ARCH="amd64"declare -- AT_M4DIR=""declare -- AT_SYS_M4DIR=""declare -- AUTOTOOLS_AUTO_DEPEND="yes"declare -- AUTOTOOLS_DEPEND="!<sys-devel/gettext-0.18.1.1-r3	|| ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.14:1.14  )	>=sys-devel/autoconf-2.69	sys-devel/libtool"declare -x BOOTSTRAP_USE="cxx unicode internal-glib python_targets_python3_3 python_targets_python2_7 multilib"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 CFLAGS="-O2 -pipe -march=native -flto=3 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block -fno-lto -fno-use-linker-plugin"declare -x CFLAGS_amd64="-m64"declare -x CFLAGS_defaultdeclare -x CFLAGS_x32="-mx32"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_x32="x86_64-pc-linux-gnux32"declare -x CHOST_x86="i686-pc-linux-gnu"declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"declare -x CONF_PREFIX="/usr"declare -x CTARGET_default="x86_64-pc-linux-gnu"declare -x CXXFLAGS="-O2 -pipe -march=native -flto=3 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block -fno-lto -fno-use-linker-plugin"declare -x DEFAULT_ABI="amd64"declare -x DEFINED_PHASES=" configure install postinst preinst prepare setup"declare DEPEND="sys-libs/zlib	>=dev-libs/cyrus-sasl-2.1.13	afs? ( net-fs/openafs )	berkdb? ( >=sys-libs/db-3.2 )	kerberos? ( virtual/krb5 )	mysql? ( virtual/mysql )	nntp? ( !net-nntp/leafnode )	pam? (			virtual/pam			>=net-mail/mailbase-1		)	postgres? ( dev-db/postgresql-base )	snmp? ( >=net-analyzer/net-snmp-5.2.2-r1 )	sqlite? ( dev-db/sqlite )	ssl? ( >=dev-libs/openssl-0.9.6 )	tcpd? ( >=sys-apps/tcp-wrappers-7.6 snmp? ( net-analyzer/net-snmp[tcpd=] ) ) !<sys-devel/gettext-0.18.1.1-r3	|| ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.14:1.14  )	>=sys-devel/autoconf-2.69	sys-devel/libtool ssl? ( dev-libs/openssl )"declare DESCRIPTION="The Cyrus IMAP Server"declare -x DESTTREE="/usr"declare -x DIROPTIONS="-m0755"declare -x DRACUT_MODULES="plymouth"declare -x EAPI="4"declare -- EBUILD_DEATH_HOOKS=" "declare -- ECONF_SOURCE="."declare -x ELIBC="glibc"declare -x ELT_APPLIED_PATCHES=""declare -- EPATCH_COMMON_OPTS="-g0 -E --no-backup-if-mismatch"declare -- EPATCH_EXCLUDE=""declare -- EPATCH_FORCE="no"declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..."declare -- EPATCH_OPTS=""declare -- EPATCH_SINGLE_MSG=""declare -- EPATCH_SOURCE="/var/tmp/portage/net-mail/cyrus-imapd-2.4.17-r1/work/patch"declare -- EPATCH_SUFFIX="patch.bz2"declare -x EXEOPTIONS="-m0755"declare -x FCFLAGS="-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="-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 GRAPHITE="-floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block"declare -x GRUB_PLATFORMS=""declare -x GSETTINGS_BACKEND="gconf"declare -x GUILE_LOAD_PATH="/usr/share/guile/1.8"declare HDEPEND=""declare -x HG="/usr/bin/hg"declare HOMEPAGE="http://www.cyrusimap.org/"declare -x INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH="10"declare -x INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS="true"declare -x INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT="100"declare -x INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH="25"declare -x INFINALITY_FT_BOLD_EMBOLDEN_X_VALUE="0"declare -x INFINALITY_FT_BOLD_EMBOLDEN_Y_VALUE="0"declare -x INFINALITY_FT_BRIGHTNESS="0"declare -x INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH="0"declare -x INFINALITY_FT_CONTRAST="0"declare -x INFINALITY_FT_FILTER_PARAMS="11 22 38 22 11"declare -x INFINALITY_FT_FRINGE_FILTER_STRENGTH="0"declare -x INFINALITY_FT_GAMMA_CORRECTION="0 100"declare -x INFINALITY_FT_GLOBAL_EMBOLDEN_X_VALUE="0"declare -x INFINALITY_FT_GLOBAL_EMBOLDEN_Y_VALUE="0"declare -x INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH="0"declare -x INFINALITY_FT_STEM_ALIGNMENT_STRENGTH="25"declare -x INFINALITY_FT_STEM_FITTING_STRENGTH="25"declare -x INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE="40"declare -x INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS="true"declare -x INFINALITY_FT_USE_VARIOUS_TWEAKS="true"declare -x INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH="5"declare -x INHERITED=" multilib toolchain-funcs libtool multiprocessing autotools eutils versionator db-use flag-o-matic pam ssl-cert user"declare -x INPUT_DEVICES="evdev"declare -x INSDESTTREE=""declare -x INSOPTIONS="-m0644"declare IUSE="afs berkdb kerberos mysql nntp pam postgres replication sieve snmp sqlite ssl tcpd ssl"declare -x IUSE_IMPLICIT="abi_x86_64 prefix"declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac"declare -x JAVA_HOME="/etc/java-config-2/current-system-vm"declare -x JDK_HOME="/etc/java-config-2/current-system-vm"declare -x KERNEL="linux"declare -x KERNEL_ABI="amd64"declare -x KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"declare -x LANG="ru_RU.UTF-8"declare -x LCD_DEVICES=""declare -x LC_ALL="ru_RU.UTF-8"declare -x LC_MESSAGE="ru_RU.UTF-8"declare -x LC_MESSAGES="ru_RU.UTF-8"declare -x LDFLAGS="-O2 -pipe -march=native -flto=3 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fuse-linker-plugin -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block -fno-lto -fno-use-linker-plugin"declare -x LDFLAGS_amd64="-m elf_x86_64"declare -x LDFLAGS_defaultdeclare -x LDFLAGS_x32="-m elf32_x86_64"declare -x LDFLAGS_x86="-m elf_i386"declare -x LIBDIR_amd64="lib64"declare -x LIBDIR_amd64_fbsd="lib64"declare -x LIBDIR_arm="lib"declare -x LIBDIR_arm64="lib64"declare -x LIBDIR_default="lib"declare -x LIBDIR_n32="lib32"declare -x LIBDIR_n64="lib64"declare -x LIBDIR_o32="lib"declare -x LIBDIR_ppc="lib32"declare -x LIBDIR_ppc64="lib64"declare -x LIBDIR_s390="lib32"declare -x LIBDIR_s390x="lib64"declare -x LIBDIR_sparc32="lib32"declare -x LIBDIR_sparc64="lib64"declare -x LIBDIR_x32="libx32"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="BSD-with-attribution"declare -x LINGUAS="ru en en_US ru_RU"declare -x MAIL="/var/mail/root"declare -x MAKEOPTS="-j3"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|udev|systemd|clang|python-exec)"declare -- MY_P="cyrus-imapd-2.4.17"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 -x OPENGL_PROFILE="xorg-x11"declare -x PATH="/usr/lib64/ccache/bin:/usr/lib64/portage/bin/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.8.3"declare PDEPEND=""declare -x PHP_TARGETS=""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/cyrus-imapd-2.4.17-r1/html")'declare -x PRELINK_PATH_MASK="/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so:/opt/bin/skype"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_SINGLE_TARGET=""declare -x PYTHON_TARGETS=""declare -x QT_GRAPHICSSYSTEM="raster"declare -x QT_PLUGIN_PATH="/usr/lib64/kde4/plugins"declare RDEPEND="sys-libs/zlib	>=dev-libs/cyrus-sasl-2.1.13	afs? ( net-fs/openafs )	berkdb? ( >=sys-libs/db-3.2 )	kerberos? ( virtual/krb5 )	mysql? ( virtual/mysql )	nntp? ( !net-nntp/leafnode )	pam? (			virtual/pam			>=net-mail/mailbase-1		)	postgres? ( dev-db/postgresql-base )	snmp? ( >=net-analyzer/net-snmp-5.2.2-r1 )	sqlite? ( dev-db/sqlite )	ssl? ( >=dev-libs/openssl-0.9.6 )	tcpd? ( >=sys-apps/tcp-wrappers-7.6 snmp? ( net-analyzer/net-snmp[tcpd=] ) )	!mail-mta/courier	!net-mail/bincimap	!net-mail/courier-imap	!net-mail/uw-imap "declare REPOSITORYdeclare REQUIRED_USE="afs? ( kerberos ) "declare -x RESTRICT=""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 RUBYOPT="-rauto_gem"declare -x RUBY_TARGETS=""declare -x S="/var/tmp/portage/net-mail/cyrus-imapd-2.4.17-r1/work/cyrus-imapd-2.4.17"declare -x SANDBOX_DEBUG="0"declare -x SANDBOX_DENY=""declare -x SANDBOX_PID="25460"declare -x SANDBOX_PREDICT="/var/tmp/portage/net-mail/cyrus-imapd-2.4.17-r1/homedir:/dev/crypto:/proc/self/coredump_filter:/dev/random:/proc/self/coredump_filter:/var/cache/fontconfig"declare -x SANDBOX_READ="/:/var/tmp:/var/tmp/ccache"declare -x SANDBOX_VERBOSE="1"declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/lib/cf:/usr/lib/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp:/var/tmp/:/var/tmp/ccache:/var/tmp/portage/net-mail/cyrus-imapd-2.4.17-r1/homedir/.bash_history"declare -x SHELL="/bin/bash"declare -x SLOT="0"declare SRC_URI="ftp://ftp.cyrusimap.org/cyrus-imapd/cyrus-imapd-2.4.17.tar.gz"declare -x SSH_CLIENT="192.168.1.76 54992 22"declare -x SSH_CONNECTION="192.168.1.76 54992 192.168.20.6 22"declare -x SSH_TTY="/dev/pts/3"declare -- SSL_CERT_MANDATORY="0"declare -- SSL_CERT_USE="ssl"declare -x SYMLINK_LIB="yes"declare -x UBUNTU_MENUPROXY="libappmenu.so"declare -x USE="abi_x86_64 afs amd64 elibc_glibc kerberos kernel_linux pam policykit sieve ssl tcpd 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 ppc ppc64 ppc64-linux ppc-aix ppc-macos ppc-openbsd s390 sh sparc sparc64-freebsd sparc64-solaris sparc-fbsd sparc-solaris 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 Cygwin Darwin FreeBSD freemint HPUX Interix linux NetBSD OpenBSD SunOS Winnt"declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU"declare -x USE_PYTHON="2.7 3.3"declare -x VBOX_APP_HOME="/usr/lib64/virtualbox"declare -x VIDEO_CARDS=""declare -x WANT_AUTOCONF="2.5"declare -x WANT_AUTOMAKE="1.14"declare -x WANT_LIBTOOL="latest"declare -x XDG_CONFIG_DIRS="/etc/xdg"declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share"declare -x XDG_SESSION_COOKIE="66ec494631fb57c7d3181621514ecbf2-1409188421.530079-1564557320"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 -- _AUTOTOOLS_ECLASS="1"declare -- _ELT_NOTED_TMP="true"declare -- _EUTILS_ECLASS="1"declare -x _E_DOCDESTTREE_=""declare -x _E_EXEDESTTREE_=""declare -- _FLAG_O_MATIC_ECLASS="1"declare -a _LATEST_AUTOMAKE='([0]="1.13:1.13" [1]="1.14:1.14")'declare -- _LIBTOOL_ECLASS="1"declare -- _LIBTOOL_ECLASSDIR_LOCAL="/usr/portage/eclass"declare -- _MULTILIB_ECLASS="1"declare -- _MULTIPROCESSING_ECLASS="1"declare -- _PAM_ECLASS="1"declare -- _TOOLCHAIN_FUNCS_ECLASS="1"declare -- _USER_ECLASS="1"declare -- _VERSIONATOR_ECLASS="1"declare -- _libtool_atom="sys-devel/libtool"declare -- i="/var/tmp/portage/net-mail/cyrus-imapd-2.4.17-r1/work/cyrus-imapd-2.4.17/doc/text/man"declare -- mj_max_jobs="3"declare -- mj_num_jobs="0"declare -- mj_read_fd="11"declare -- mj_write_fd="10"declare -- phase_funcELT_libtool_version () {     ( unset VERSION;    eval $(grep -e '^[[:space:]]*VERSION=' "$1");    echo "${VERSION:-0}" )}ELT_try_and_apply_patch () {     local ret=0;    local file=$1;    local patch=$2;    local src=$3;    local disp="${src} patch";    local log="${T}/elibtool.log";    if [[ -z ${_ELT_NOTED_TMP} ]]; then        _ELT_NOTED_TMP=true;        printf 'temp patch: %s\n' "${patch}" > "${log}";    fi;    printf '\nTrying %s\n' "${disp}" >> "${log}";    if [[ ! -e ${file} ]]; then        echo "File not found: ${file}" >> "${log}";        return 1;    fi;    local perms="$(find ${file} -maxdepth 0 -printf '%m')";    if patch -p0 --dry-run "${file}" "${patch}" >> "${log}" 2>&1; then        einfo "  Applying ${disp} ...";        patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" >> "${log}" 2>&1;        ret=$?;        export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${src}";    else        ret=1;    fi;    chmod "${perms}" "${file}";    return "${ret}"}ELT_walk_patches () {     local patch tmp;    local ret=1;    local file=$1;    local patch_set=$2;    local patch_dir="$(elt_patch_dir)/${patch_set}";    local rem_int_dep=$3;    [[ -z ${patch_set} ]] && return 1;    [[ ! -d ${patch_dir} ]] && return 1;    local sed_args=(-e "s:@GENTOO_LIBDIR@:$(get_libdir):g");    if [[ -n ${rem_int_dep} ]]; then        sed_args+=(-e "s|@REM_INT_DEP@|${rem_int_dep}|g");    fi;    pushd "$(elt_patch_dir)" > /dev/null || die;    for patch in $(find "${patch_set}" -maxdepth 1 -type f | LC_ALL=C sort -r);    do        tmp="${T}/libtool-elt.patch";        sed "${sed_args[@]}" "${patch}" > "${tmp}" || die;        if ELT_try_and_apply_patch "${file}" "${tmp}" "${patch}"; then            ret=0;            break;        fi;    done;    popd > /dev/null;    return ${ret}}VER_major () {     [[ -z $1 ]] && return 1;    local VER=$@;    echo "${VER%%[^[:digit:]]*}"}VER_micro () {     [[ -z $1 ]] && return 1;    local VER=$@;    VER=${VER#*.*.};    echo "${VER%%[^[:digit:]]*}"}VER_minor () {     [[ -z $1 ]] && return 1;    local VER=$@;    VER=${VER#*.};    echo "${VER%%[^[:digit:]]*}"}VER_to_int () {     [[ -z $1 ]] && return 1;    local VER_MAJOR=$(VER_major "$1");    local VER_MINOR=$(VER_minor "$1");    local VER_MICRO=$(VER_micro "$1");    local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO ));    if [[ ${VER_int} -ge 65536 ]]; then        echo "${VER_int}";        return 0;    fi;    echo 1;    return 1}__bashpid () {     sh -c 'echo ${PPID}'}_assert_pkg_ebuild_phase () {     case ${EBUILD_PHASE} in         setup | preinst | postinst)        ;;        *)            eerror "'$1()' called from '${EBUILD_PHASE}' phase which is not OK:";            eerror "You may only call from pkg_{setup,preinst,postinst} functions.";            eerror "Package fails at QA and at life.  Please file a bug.";            die "Bad package!  $1 is only for use in some pkg_* functions!"        ;;    esac}_at_uses_autoheader () {     _at_uses_pkg A{C,M}_CONFIG_HEADER{S,}}_at_uses_automake () {     _at_uses_pkg AM_INIT_AUTOMAKE}_at_uses_gettext () {     _at_uses_pkg AM_GNU_GETTEXT_VERSION}_at_uses_glibgettext () {     _at_uses_pkg AM_GLIB_GNU_GETTEXT}_at_uses_gnomedoc () {     _at_uses_pkg GNOME_DOC_INIT}_at_uses_gtkdoc () {     _at_uses_pkg GTK_DOC_CHECK}_at_uses_intltool () {     _at_uses_pkg {AC,IT}_PROG_INTLTOOL}_at_uses_libtool () {     _at_uses_pkg A{C,M}_PROG_LIBTOOL LT_INIT}_at_uses_pkg () {     if [[ -n $(autotools_check_macro "$@") ]]; then        return 0;    else        local macro args=();        for macro in "$@";        do            args+=(-e "^[[:space:]]*${macro}\>");        done;        egrep -q "${args[@]}" configure.??;    fi}_automake_version () {     autotools_run_tool automake --version 2> /dev/null | sed -n -e '1{s:.*(GNU automake) ::p;q}'}_autotools_m4dir_include () {     local x include_opts flag;    [[ ${WANT_AUTOCONF} == "2.1" ]] && flag="l" || flag="I";    for x in "$@";    do        case ${x} in             -${flag})            ;;            *)                [[ ! -d ${x} ]] && ewarn "autotools.eclass: '${x}' does not exist";                include_opts+=" -${flag} ${x}"            ;;        esac;    done;    echo ${include_opts}}_elibtoolize () {     local LIBTOOLIZE=${LIBTOOLIZE:-$(type -P glibtoolize > /dev/null && echo glibtoolize || echo libtoolize)};    [[ -f GNUmakefile.am || -f Makefile.am ]] && set -- "$@" --automake;    if [[ $1 == "--install" ]]; then        ${LIBTOOLIZE} -n --install &>/dev/null || shift;    fi;    autotools_run_tool ${LIBTOOLIZE} "$@" ${opts}}_epatch_draw_line () {     [[ -z $1 ]] && set "$(printf "%65s" '')";    echo "${1//?/=}"}_eutils_eprefix_init () {     has "${EAPI:-0}" 0 1 2 && : ${ED:=${D}} ${EPREFIX:=} ${EROOT:=${ROOT}}}_filter-hardened () {     local f;    for f in "$@";    do        case "${f}" in             -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)                gcc-specs-pie || continue;                is-flagq -nopie || append-flags -nopie            ;;            -fstack-protector)                gcc-specs-ssp || continue;                is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)            ;;            -fstack-protector-all)                gcc-specs-ssp-to-all || continue;                is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)            ;;            -fno-strict-overflow)                gcc-specs-nostrict || continue;                is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)            ;;        esac;    done}_filter-var () {     local f x var=$1 new=();    shift;    for f in ${!var};    do        for x in "$@";        do            [[ ${f} == ${x} ]] && continue 2;        done;        new+=("${f}");    done;    eval export ${var}=\""${new[*]}"\"}_gcc-install-dir () {     echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"}_gcc-specs-directive_raw () {     local cc=$(tc-getCC);    local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');    ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }$1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }	{ spec=spec $0 }END	{ print spec }';    return 0}_gcc-specs-exists () {     [[ -f $(_gcc-install-dir)/$1 ]]}_gcc_fullversion () {     local ver="$1";    shift;    set -- `$(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"`;    eval echo "$ver"}_iconins () {     ( 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)                        size=${size}x${size}                    ;;                    scalable)                    ;;                    *)                        eerror "${size} is an unsupported icon size!";                        exit 1                    ;;                esac;                shift 2            ;;            -t | --theme)                theme=${2};                shift 2            ;;            -c | --context)                context=${2};                shift 2            ;;            *)                if [[ -z ${size} ]]; then                    insinto /usr/share/pixmaps;                else                    insinto /usr/share/icons/${theme}/${size}/${context};                fi;                if [[ ${funcname} == doicon ]]; then                    if [[ -f $1 ]]; then                        doins "${1}";                    else                        if [[ -d $1 ]]; then                            shopt -s nullglob;                            doins "${1}"/*.{png,svg};                            shopt -u nullglob;                        else                            eerror "${1} is not a valid file/directory!";                            exit 1;                        fi;                    fi;                else                    break;                fi;                shift 1            ;;        esac;    done;    if [[ ${funcname} == newicon ]]; then        newins "$@";    fi ) || die}_is_flagq () {     local x var;    eval var=\""\${$1[*]}"\";    for x in ${var};    do        [[ ${x} == $2 ]] && return 0;    done;    return 1}_multijob_fork () {     [[ $# -eq 1 ]] || die "incorrect number of arguments";    local ret=0;    [[ $1 == "post" ]] && : $(( ++mj_num_jobs ));    if [[ ${mj_num_jobs} -ge ${mj_max_jobs} ]]; then        multijob_finish_one;        ret=$?;    fi;    [[ $1 == "pre" ]] && : $(( ++mj_num_jobs ));    return ${ret}}_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}"}all-flag-vars () {     echo {C,CPP,CXX,CCAS,F,FC,LD}FLAGS}append-cflags () {     [[ $# -eq 0 ]] && return 0;    export CFLAGS+=" $*";    return 0}append-cppflags () {     [[ $# -eq 0 ]] && return 0;    export CPPFLAGS+=" $*";    return 0}append-cxxflags () {     [[ $# -eq 0 ]] && return 0;    export CXXFLAGS+=" $*";    return 0}append-fflags () {     [[ $# -eq 0 ]] && return 0;    export FFLAGS+=" $*";    export FCFLAGS+=" $*";    return 0}append-flags () {     [[ $# -eq 0 ]] && return 0;    case " $* " in         *' '-[DIU]*)            eqawarn 'please use append-cppflags for preprocessor flags'        ;;        *' '-L* | *' '-Wl,*)            eqawarn 'please use append-ldflags for linker flags'        ;;    esac;    append-cflags "$@";    append-cxxflags "$@";    append-fflags "$@";    return 0}append-ldflags () {     [[ $# -eq 0 ]] && return 0;    local flag;    for flag in "$@";    do        [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";    done;    export LDFLAGS="${LDFLAGS} $*";    return 0}append-lfs-flags () {     [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments";    append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE}append-libs () {     [[ $# -eq 0 ]] && return 0;    local flag;    for flag in "$@";    do        if [[ -z "${flag// }" ]]; then            eqawarn "Appending an empty argument to LIBS is invalid! Skipping.";            continue;        fi;        case $flag in             -[lL]*)                export LIBS="${LIBS} ${flag}"            ;;            -*)                eqawarn "Appending non-library to LIBS (${flag}); Other linker flags should be passed via LDFLAGS";                export LIBS="${LIBS} ${flag}"            ;;            *)                export LIBS="${LIBS} -l${flag}"            ;;        esac;    done;    return 0}autotools_check_macro () {     [[ -f configure.ac || -f configure.in ]] || return 0;    local trace_file=".__autoconf_trace_data";    if [[ ! -e ${trace_file} ]] || [[ ! aclocal.m4 -ot ${trace_file} ]]; then        WANT_AUTOCONF="2.5" autoconf $(autotools_m4dir_include) ${ALL_AUTOTOOLS_MACROS[@]/#/--trace=} > ${trace_file} 2> /dev/null;    fi;    local macro args=();    for macro in "$@";    do        has ${macro} ${ALL_AUTOTOOLS_MACROS[@]} || die "internal error: add ${macro} to ALL_AUTOTOOLS_MACROS";        args+=(-e ":${macro}:");    done;    grep "${args[@]}" ${trace_file}}autotools_check_macro_val () {     local macro scan_out;    for macro in "$@";    do        autotools_check_macro "${macro}" | gawk -v macro="${macro}" '($0 !~ /^[[:space:]]*(#|dnl)/) {					if (match($0, macro ":(.*)$", res))						print res[1]				}' | uniq;    done;    return 0}autotools_env_setup () {     if [[ ${WANT_AUTOMAKE} == "latest" ]]; then        local pv;        for pv in ${_LATEST_AUTOMAKE[@]/#*:};        do            ROOT=/ has_version "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="${pv}";        done;        [[ ${WANT_AUTOMAKE} == "latest" ]] && die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE}";    fi;    [[ ${WANT_AUTOCONF} == "latest" ]] && export WANT_AUTOCONF=2.5}autotools_m4dir_include () {     _autotools_m4dir_include ${AT_M4DIR}}autotools_m4sysdir_include () {     _autotools_m4dir_include $(eval echo ${AT_SYS_M4DIR})}autotools_run_tool () {     local autofail=true m4flags=false missing_ok=false;    while [[ -n $1 ]]; do        case $1 in             --at-no-fail)                autofail=false            ;;            --at-m4flags)                m4flags=true            ;;            --at-missing)                missing_ok=true            ;;            *)                break            ;;        esac;        shift;    done;    if [[ ${EBUILD_PHASE} != "unpack" && ${EBUILD_PHASE} != "prepare" ]]; then        ewarn "QA Warning: running $1 in ${EBUILD_PHASE} phase";    fi;    if ${missing_ok} && ! type -P ${1} > /dev/null; then        einfo "Skipping '$*' due $1 not installed";        return 0;    fi;    autotools_env_setup;    local STDERR_TARGET="${T}/$1.out";    if [[ -e ${STDERR_TARGET} ]]; then        local i=1;        while :; do            STDERR_TARGET="${T}/$1-${i}.out";            [[ -e ${STDERR_TARGET} ]] || break;            : $(( i++ ));        done;    fi;    if ${m4flags}; then        set -- "${1}" $(autotools_m4dir_include) "${@:2}" $(autotools_m4sysdir_include);    fi;    printf "***** $1 *****\n***** PWD: ${PWD}\n***** $*\n\n" > "${STDERR_TARGET}";    ebegin "Running $@";    "$@" >> "${STDERR_TARGET}" 2>&1;    if ! eend $? && ${autofail}; then        echo;        eerror "Failed Running $1 !";        eerror;        eerror "Include in your bugreport the contents of:";        eerror;        eerror "  ${STDERR_TARGET}";        echo;        die "Failed Running $1 !";    fi}bashpid () {     sh -c 'echo ${PPID}'}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_license () {     die "you no longer need this as portage supports ACCEPT_LICENSE itself"}cleanpamd () {     while [[ -n $1 ]]; do        if ! has_version sys-libs/pam; then            sed -i -e '/pam_shells\|pam_console/s:^:#:' "${D}/etc/pam.d/$1";        fi;        shift;    done}config_rpath_update () {     local dst src=$(type -P gettext | sed 's:bin/gettext:share/gettext/config.rpath:');    [[ $# -eq 0 ]] && set -- $(find -name config.rpath);    [[ $# -eq 0 ]] && return 0;    einfo "Updating all config.rpath files";    for dst in "$@";    do        einfo "   ${dst}";        cp "${src}" "${dst}" || die;    done}darwintoolize () {     die "Use elibtoolize"}db_findver () {     has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;    if [ $# -ne 1 ]; then        eerror "Function db_findver needs one argument" 1>&2;        eerror "args given:" 1>&2;        for f in $@;        do            eerror " - \"$@\"" 1>&2;        done;        return 1;    fi;    PKG="$(best_version $1)";    VER="$(get_version_component_range 1-2 "${PKG/*db-/}")";    if [ -d "${EPREFIX}"/usr/include/db$(db_ver_to_slot "$VER") ]; then        echo -n "$VER";        return 0;    else        return 1;    fi}db_includedir () {     has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;    if [ $# -eq 0 ]; then        VER="$(db_findver sys-libs/db)" || return 1;        VER="$(db_ver_to_slot "$VER")";        echo "include version ${VER}" 1>&2;        if [ -d "${EPREFIX}/usr/include/db${VER}" ]; then            echo -n "${EPREFIX}/usr/include/db${VER}";            return 0;        else            eerror "sys-libs/db package requested, but headers not found" 1>&2;            return 1;        fi;    else        for x in $@;        do            if VER=$(db_findver "=sys-libs/db-${x}*") && [ -d "${EPREFIX}/usr/include/db$(db_ver_to_slot $VER)" ]; then                echo -n "${EPREFIX}/usr/include/db$(db_ver_to_slot $VER)";                return 0;            fi;        done;        eerror "No suitable db version found";        return 1;    fi}db_libname () {     has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;    if [ $# -eq 0 ]; then        VER="$(db_findver sys-libs/db)" || return 1;        if [ -e "${EPREFIX}/usr/$(get_libdir)/libdb-${VER}$(get_libname)" ]; then            echo -n "db-${VER}";            return 0;        else            eerror "sys-libs/db package requested, but library not found" 1>&2;            return 1;        fi;    else        for x in $@;        do            if VER=$(db_findver "=sys-libs/db-${x}*"); then                if [ -e "${EPREFIX}/usr/$(get_libdir)/libdb-${VER}$(get_libname)" ]; then                    echo -n "db-${VER}";                    return 0;                fi;            fi;        done;        eerror "No suitable db version found" 1>&2;        return 1;    fi}db_ver_to_slot () {     if [ $# -ne 1 ]; then        eerror "Function db_ver_to_slot needs one argument" 1>&2;        eerror "args given:" 1>&2;        for f in $@;        do            eerror " - \"$@\"" 1>&2;        done;        return 1;    fi;    echo -n "$1"}delete_all_version_separators () {     replace_all_version_separators "" "${1}"}delete_version_separator () {     replace_version_separator "${1}" "" "${2}"}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} )}dopamd () {     [[ -z $1 ]] && die "dopamd requires at least one argument";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    ( insinto /etc/pam.d;    insopts -m 0644;    doins "$@" ) || die "failed to install $@";    cleanpamd "$@"}dopammod () {     [[ -z $1 ]] && die "dopammod requires at least one argument";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    exeinto $(getpam_mod_dir);    doexe "$@" || die "failed to install $@"}dopamsecurity () {     [[ $# -lt 2 ]] && die "dopamsecurity requires at least two arguments";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    ( insinto /etc/security/$1;    insopts -m 0644;    doins "${@:2}" ) || die "failed to install ${@:2}"}eaclocal () {     [[ ! -f aclocal.m4 || -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && autotools_run_tool --at-m4flags aclocal "$@" $(eaclocal_amflags)}eaclocal_amflags () {     local aclocal_opts amflags_file;    for amflags_file in GNUmakefile.am Makefile.am GNUmakefile.in Makefile.in;    do        [[ -e ${amflags_file} ]] || continue;        autotools_env_setup;        aclocal_opts=$(sed -n 			"/^ACLOCAL_AMFLAGS[[:space:]]*=/{ 			  # match the first line			  s:[^=]*=::p; 			  # then gobble up all escaped lines			  : nextline /\\\\$/{ n; p; b nextline; } 			}" ${amflags_file});        eval aclocal_opts=\""${aclocal_opts}"\";        break;    done;    echo ${aclocal_opts}}eautoconf () {     if [[ ! -f configure.ac && ! -f configure.in ]]; then        echo;        eerror "No configure.{ac,in} present in '${PWD}'!";        echo;        die "No configure.{ac,in} present!";    fi;    autotools_run_tool --at-m4flags autoconf "$@"}eautoheader () {     _at_uses_autoheader || return 0;    autotools_run_tool --at-no-fail --at-m4flags autoheader "$@"}eautomake () {     local extra_opts=();    local makefile_name;    for makefile_name in {GNUmakefile,{M,m}akefile}.am "";    do        [[ -f ${makefile_name} ]] && break;    done;    function _automake_version ()     {         autotools_run_tool automake --version 2> /dev/null | sed -n -e '1{s:.*(GNU automake) ::p;q}'    };    if [[ -z ${makefile_name} ]]; then        _at_uses_automake || return 0;    else        if [[ -z ${FROM_EAUTORECONF} && -f ${makefile_name%.am}.in ]]; then            local used_automake;            local installed_automake;            installed_automake=$(WANT_AUTOMAKE= _automake_version);            used_automake=$(head -n 1 < ${makefile_name%.am}.in | 			sed -e 's:.*by automake \(.*\) from .*:\1:');            if [[ ${installed_automake} != ${used_automake} ]]; then                einfo "Automake used for the package (${used_automake}) differs from";                einfo "the installed version (${installed_automake}).";                eautoreconf;                return 0;            fi;        fi;    fi;    [[ -f INSTALL && -f AUTHORS && -f ChangeLog && -f NEWS && -f README ]] || extra_opts+=(--foreign);    case $(_automake_version) in         1.4 | 1.4[.-]*)        ;;        *)            extra_opts+=(--force-missing)        ;;    esac;    autotools_run_tool automake --add-missing --copy "${extra_opts[@]}" "$@"}eautopoint () {     autotools_run_tool autopoint "$@"}eautoreconf () {     local x g multitop;    if [[ -z ${AT_TOPLEVEL_EAUTORECONF} ]]; then        AT_TOPLEVEL_EAUTORECONF="yes";        multitop="yes";        multijob_init;    fi;    if [[ -z ${AT_NO_RECURSIVE} ]]; then        for x in $(autotools_check_macro_val AC_CONFIG_SUBDIRS);        do            if [[ -d ${x} ]]; then                pushd "${x}" > /dev/null;                if [[ -z ${PAST_TOPLEVEL_EAUTORECONF} ]]; then                    PAST_TOPLEVEL_EAUTORECONF="yes" AT_NOELIBTOOLIZE="yes" multijob_child_init eautoreconf || die;                else                    AT_NOELIBTOOLIZE="yes" eautoreconf || die;                fi;                popd > /dev/null;            fi;        done;    fi;    einfo "Running eautoreconf in '${PWD}' ...";    local m4dirs=$(autotools_check_macro_val AC_CONFIG_{AUX,MACRO}_DIR);    [[ -n ${m4dirs} ]] && mkdir -p ${m4dirs};    local i tools=(glibgettext false "autotools_run_tool glib-gettextize --copy --force" gettext false "autotools_run_tool --at-missing autopoint --force" intltool false "autotools_run_tool intltoolize --automake --copy --force" gtkdoc false "autotools_run_tool --at-missing gtkdocize --copy" gnomedoc false "autotools_run_tool --at-missing gnome-doc-prepare --copy --force" libtool false "_elibtoolize --install --copy --force");    for ((i = 0; i < ${#tools[@]}; i += 3 ))    do        if _at_uses_${tools[i]}; then            tools[i+1]=true;            ${tools[i+2]};        fi;    done;    local rerun_aclocal=false;    eaclocal;    for ((i = 0; i < ${#tools[@]}; i += 3 ))    do        if ! ${tools[i+1]} && _at_uses_${tools[i]}; then            ${tools[i+2]};            rerun_aclocal=true;        fi;    done;    ${rerun_aclocal} && eaclocal;    eautoconf;    eautoheader;    [[ ${AT_NOEAUTOMAKE} != "yes" ]] && FROM_EAUTORECONF="yes" eautomake ${AM_OPTS};    if [[ ${AT_NOELIBTOOLIZE} != "yes" ]]; then        elibtoolize --force "${PWD}";    fi;    if [[ -n ${multitop} ]]; then        unset AT_TOPLEVEL_EAUTORECONF;        multijob_finish || die;    fi;    return 0}ebeep () {     ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"}econf_build () {     tc-env_build econf --build=${CBUILD:-${CHOST}} "$@"}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}egetent () {     local db=$1 key=$2;    [[ $# -ge 3 ]] && die "usage: egetent <database> <key>";    case ${db} in         passwd | group)        ;;        *)            die "sorry, database '${db}' not yet supported; file a bug"        ;;    esac;    case ${CHOST} in         *-darwin[678])            case ${key} in                 *[!0-9]*)                    nidump ${db} . | awk -F: "(\$1 ~ /^${key}\$/) {print;exit;}"                ;;                *)                    nidump ${db} . | awk -F: "(\$3 == ${key}) {print;exit;}"                ;;            esac        ;;        *-darwin*)            local mykey;            case ${db} in                 passwd)                    db="Users" mykey="UniqueID"                ;;                group)                    db="Groups" mykey="PrimaryGroupID"                ;;            esac;            case ${key} in                 *[!0-9]*)                    dscl . -read /${db}/${key} 2> /dev/null | grep RecordName                ;;                *)                    dscl . -search /${db} ${mykey} ${key} 2> /dev/null                ;;            esac        ;;        *-freebsd* | *-dragonfly*)            case ${db} in                 passwd)                    db="user"                ;;                *)                ;;            esac;            local opts;            if [[ ${key} == [[:digit:]]* ]]; then                [[ ${db} == "user" ]] && opts="-u" || opts="-g";            fi;            pw show ${db} ${opts} "${key}" -q        ;;        *-netbsd* | *-openbsd*)            grep "${key}:\*:" /etc/${db}        ;;        *)            nscd -i "${db}" 2> /dev/null;            getent "${db}" "${key}"        ;;    esac}egethome () {     local pos;    [[ $# -eq 1 ]] || die "usage: egethome <user>";    case ${CHOST} in         *-darwin* | *-freebsd* | *-dragonfly*)            pos=9        ;;        *)            pos=6        ;;    esac;    egetent passwd "$1" | cut -d: -f${pos}}egetshell () {     local pos;    [[ $# -eq 1 ]] || die "usage: egetshell <user>";    case ${CHOST} in         *-darwin* | *-freebsd* | *-dragonfly*)            pos=10        ;;        *)            pos=7        ;;    esac;    egetent passwd "$1" | cut -d: -f${pos}}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}elibtoolize () {     local x;    local dirs=();    local do_portage="no";    local do_reversedeps="no";    local do_only_patches="no";    local do_uclibc="yes";    local deptoremove=;    local do_shallow="no";    local force="false";    local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm";    for x in "$@";    do        case ${x} in             --portage)                do_portage="yes"            ;;            --reverse-deps)                do_reversedeps="yes";                elt_patches+=" fix-relink"            ;;            --patch-only)                do_only_patches="yes"            ;;            --remove-internal-dep=*)                deptoremove=${x#--remove-internal-dep=};                [[ -n ${deptoremove} ]] && elt_patches+=" rem-int-dep"            ;;            --shallow)                do_shallow="yes"            ;;            --no-uclibc)                do_uclibc="no"            ;;            --force)                force="true"            ;;            -*)                eerror "Invalid elibtoolize option: ${x}";                die "elibtoolize called with ${x} ??"            ;;            *)                dirs+=("${x}")            ;;        esac;    done;    [[ ${do_uclibc} == "yes" ]] && elt_patches+=" uclibc-conf uclibc-ltconf";    case ${CHOST} in         *-aix*)            elt_patches+=" hardcode aixrtl"        ;;        *-darwin*)            elt_patches+=" darwin-ltconf darwin-ltmain darwin-conf"        ;;        *-solaris*)            elt_patches+=" sol2-conf sol2-ltmain"        ;;        *-freebsd*)            elt_patches+=" fbsd-conf fbsd-ltconf"        ;;        *-hpux*)            elt_patches+=" hpux-conf deplibs hc-flag-ld hardcode hardcode-relink relink-prog no-lc"        ;;        *-irix*)            elt_patches+=" irix-ltmain"        ;;        *-mint*)            elt_patches+=" mint-conf"        ;;    esac;    if $(tc-getLD) --version 2>&1 | grep -qs 'GNU gold'; then        elt_patches+=" gold-conf";    fi;    if [[ ${do_shallow} == "yes" ]]; then        [[ ${#dirs[@]} -ne 0 ]] && die "Using --shallow with explicit dirs doesn't make sense";        [[ -f ${S}/ltmain.sh || -f ${S}/configure ]] && dirs+=("${S}");    else        [[ ${#dirs[@]} -eq 0 ]] && dirs+=("${S}");        dirs=($(find "${dirs[@]}" '(' -name ltmain.sh -o -name configure ')' -printf '%h\n' | sort -u));    fi;    local d p ret;    for d in "${dirs[@]}";    do        export ELT_APPLIED_PATCHES=;        if [[ -f ${d}/.elibtoolized ]]; then            ${force} || continue;        fi;        local outfunc="einfo";        [[ -f ${d}/.elibtoolized ]] && outfunc="ewarn";        ${outfunc} "Running elibtoolize in: ${d#${WORKDIR}/}/";        if [[ ${outfunc} == "ewarn" ]]; then            ewarn "  We've already been run in this tree; you should";            ewarn "  avoid this if possible (perhaps by filing a bug)";        fi;        [[ -f ${d}/ltmain.sh ]] && for p in ${elt_patches};        do            ret=0;            case ${p} in                 portage)                    if ! grep -qs 'We do not want portage' "${d}/ltmain.sh"; then                        ELT_walk_patches "${d}/ltmain.sh" "${p}";                        ret=$?;                    fi                ;;                rem-int-dep)                    ELT_walk_patches "${d}/ltmain.sh" "${p}" "${deptoremove}";                    ret=$?                ;;                fix-relink)                    if grep -qs 'inst_prefix_dir' "${d}/ltmain.sh"; then                        ELT_walk_patches "${d}/ltmain.sh" "${p}";                        ret=$?;                    fi                ;;                max_cmd_len)                    if grep -qs 'max_cmd_len' "${d}/ltmain.sh"; then                        ELT_walk_patches "${d}/ltmain.sh" "${p}";                        ret=$?;                    fi                ;;                as-needed)                    ELT_walk_patches "${d}/ltmain.sh" "${p}";                    ret=$?                ;;                uclibc-ltconf)                    if [[ -s ${d}/ltconfig ]]; then                        ELT_walk_patches "${d}/ltconfig" "${p}";                        ret=$?;                    fi                ;;                fbsd-ltconf)                    if [[ -s ${d}/ltconfig ]]; then                        ELT_walk_patches "${d}/ltconfig" "${p}";                        ret=$?;                    fi                ;;                darwin-ltconf)                    if [[ -s ${d}/ltconfig ]]; then                        ELT_walk_patches "${d}/ltconfig" "${p}";                        ret=$?;                    fi                ;;                darwin-ltmain)                    if [[ -e ${d}/ltmain.sh ]] && ! grep -qs 'verstring="-compatibility_version' "${d}/ltmain.sh"; then                        ELT_walk_patches "${d}/ltmain.sh" "${p}";                        ret=$?;                    fi                ;;                install-sh)                    ELT_walk_patches "${d}/install-sh" "${p}";                    ret=$?                ;;                cross)                    if tc-is-cross-compiler; then                        ELT_walk_patches "${d}/ltmain.sh" "${p}";                        ret=$?;                    fi                ;;                *)                    ELT_walk_patches "${d}/ltmain.sh" "${p}";                    ret=$?                ;;            esac;            if [[ ${ret} -ne 0 ]]; then                case ${p} in                     relink)                        local version=$(ELT_libtool_version "${d}/ltmain.sh");                        if ! grep -qs 'inst_prefix_dir' "${d}/ltmain.sh" && [[ $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]]; then                            ewarn "  Could not apply relink.patch!";                        fi                    ;;                    portage)                        if [[ ${do_portage} == "yes" ]]; then                            if ! grep -qs 'We do not want portage' "${d}/ltmain.sh"; then                                echo;                                eerror "Portage patch requested, but failed to apply!";                                eerror "Please file a bug report to add a proper patch.";                                die "Portage patch requested, but failed to apply!";                            fi;                        else                            if grep -qs 'We do not want portage' "${d}/ltmain.sh"; then                                :;                            else                                local version=$(ELT_libtool_version "${d}"/ltmain.sh);                                echo;                                eerror "Portage patch failed to apply (ltmain.sh version ${version})!";                                eerror "Please file a bug report to add a proper patch.";                                die "Portage patch failed to apply!";                            fi;                            ELT_APPLIED_PATCHES="portage";                        fi                    ;;                    darwin-*)                        [[ ${CHOST} == *"-darwin"* ]] && ewarn "  Darwin patch set '${p}' failed to apply!"                    ;;                esac;            fi;        done;        [[ -f ${d}/ltmain.sh ]] && if [[ -z ${ELT_APPLIED_PATCHES} ]]; then            if [[ ${do_portage} == "no" && ${do_reversedeps} == "no" && ${do_only_patches} == "no" && ${deptoremove} == "" ]]; then                ewarn "Cannot apply any patches, please file a bug about this";                die;            fi;        fi;        [[ -f ${d}/configure ]] && for p in ${elt_patches};        do            ret=0;            case ${p} in                 uclibc-conf)                    if grep -qs 'Transform linux' "${d}/configure"; then                        ELT_walk_patches "${d}/configure" "${p}";                        ret=$?;                    fi                ;;                fbsd-conf)                    if grep -qs 'version_type=freebsd-' "${d}/configure"; then                        ELT_walk_patches "${d}/configure" "${p}";                        ret=$?;                    fi                ;;                darwin-conf)                    if grep -qs '&& echo \.so ||' "${d}/configure"; then                        ELT_walk_patches "${d}/configure" "${p}";                        ret=$?;                    fi                ;;                aixrtl | hpux-conf)                    ret=1;                    local subret=0;                    while [[ $subret -eq 0 ]]; do                        subret=1;                        if [[ -e ${d}/configure ]]; then                            ELT_walk_patches "${d}/configure" "${p}";                            subret=$?;                        fi;                        if [[ $subret -eq 0 ]]; then                            ret=0;                        fi;                    done                ;;                mint-conf | gold-conf | sol2-conf)                    ELT_walk_patches "${d}/configure" "${p}";                    ret=$?                ;;                target-nm)                    ELT_walk_patches "${d}/configure" "${p}";                    ret=$?                ;;                *)                ;;            esac;            if [[ ${ret} -ne 0 ]]; then                case ${p} in                     uclibc-*)                        [[ ${CHOST} == *-uclibc ]] && ewarn "  uClibc patch set '${p}' failed to apply!"                    ;;                    fbsd-*)                        if [[ ${CHOST} == *-freebsd* ]]; then                            if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' 								"${d}/configure" 2>/dev/null) ]]; then                                eerror "  FreeBSD patch set '${p}' failed to apply!";                                die "FreeBSD patch set '${p}' failed to apply!";                            fi;                        fi                    ;;                    darwin-*)                        [[ ${CHOST} == *"-darwin"* ]] && ewarn "  Darwin patch set '${p}' failed to apply!"                    ;;                esac;            fi;        done;        rm -f "${d}/libtool";         > "${d}/.elibtoolized";    done}elt_patch_dir () {     local d="${ECLASSDIR}/ELT-patches";    if [[ ! -d ${d} ]]; then        d="${_LIBTOOL_ECLASSDIR_LOCAL}/ELT-patches";    fi;    echo "${d}"}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}enewgroup () {     _assert_pkg_ebuild_phase ${FUNCNAME};    local egroup=$1;    shift;    if [[ -z ${egroup} ]]; then        eerror "No group specified !";        die "Cannot call enewgroup without a group";    fi;    if [[ -n $(egetent group "${egroup}") ]]; then        return 0;    fi;    einfo "Adding group '${egroup}' to your system ...";    local egid=$1;    shift;    if [[ ! -z ${egid} ]]; then        if [[ ${egid} -gt 0 ]]; then            if [[ -n $(egetent group ${egid}) ]]; then                egid="next available; requested gid taken";            fi;        else            eerror "Groupid given but is not greater than 0 !";            die "${egid} is not a valid GID";        fi;    else        egid="next available";    fi;    einfo " - Groupid: ${egid}";    if [[ $# -gt 0 ]]; then        die "extra arguments no longer supported; please file a bug";    fi;    function _enewgroup_next_gid ()     {         if [[ ${egid} == *[!0-9]* ]]; then            for ((egid = 101; egid <= 999; egid++))            do                [[ -z $(egetent group ${egid}) ]] && break;            done;        fi    };    case ${CHOST} in         *-darwin*)            _enewgroup_next_gid;            dscl . create "/groups/${egroup}" gid ${egid};            dscl . create "/groups/${egroup}" passwd '*'        ;;        *-freebsd* | *-dragonfly*)            _enewgroup_next_gid;            pw groupadd "${egroup}" -g ${egid} || die        ;;        *-netbsd*)            _enewgroup_next_gid;            groupadd -g ${egid} "${egroup}" || die        ;;        *)            local opts;            if [[ ${egid} == *[!0-9]* ]]; then                opts="";            else                opts="-g ${egid}";            fi;            groupadd -r ${opts} "${egroup}" || die        ;;    esac}enewuser () {     _assert_pkg_ebuild_phase ${FUNCNAME};    local euser=$1;    shift;    if [[ -z ${euser} ]]; then        eerror "No username specified !";        die "Cannot call enewuser without a username";    fi;    if [[ -n $(egetent passwd "${euser}") ]]; then        return 0;    fi;    einfo "Adding user '${euser}' to your system ...";    local opts=();    local euid=$1;    shift;    if [[ -n ${euid} && ${euid} != -1 ]]; then        if [[ ${euid} -gt 0 ]]; then            if [[ -n $(egetent passwd ${euid}) ]]; then                euid="next";            fi;        else            eerror "Userid given but is not greater than 0 !";            die "${euid} is not a valid UID";        fi;    else        euid="next";    fi;    if [[ ${euid} == "next" ]]; then        for ((euid = 101; euid <= 999; euid++))        do            [[ -z $(egetent passwd ${euid}) ]] && break;        done;    fi;    opts+=(-u ${euid});    einfo " - Userid: ${euid}";    local eshell=$1;    shift;    if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then        if [[ ! -e ${ROOT}${eshell} ]]; then            eerror "A shell was specified but it does not exist !";            die "${eshell} does not exist in ${ROOT}";        fi;        if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then            eerror "Do not specify ${eshell} yourself, use -1";            die "Pass '-1' as the shell parameter";        fi;    else        for eshell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;        do            [[ -x ${ROOT}${eshell} ]] && break;        done;        if [[ ${eshell} == "/dev/null" ]]; then            eerror "Unable to identify the shell to use, proceeding with userland default.";            case ${USERLAND} in                 GNU)                    eshell="/bin/false"                ;;                BSD)                    eshell="/sbin/nologin"                ;;                Darwin)                    eshell="/usr/sbin/nologin"                ;;                *)                    die "Unable to identify the default shell for userland ${USERLAND}"                ;;            esac;        fi;    fi;    einfo " - Shell: ${eshell}";    opts+=(-s "${eshell}");    local ehome=$1;    shift;    if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then        ehome="/dev/null";    fi;    einfo " - Home: ${ehome}";    opts+=(-d "${ehome}");    local egroups=$1;    shift;    local g egroups_arr;    IFS="," read -r -a egroups_arr <<< "${egroups}";    shift;    if [[ ${#egroups_arr[@]} -gt 0 ]]; then        local defgroup exgroups;        for g in "${egroups_arr[@]}";        do            if [[ -z $(egetent group "${g}") ]]; then                eerror "You must add group ${g} to the system first";                die "${g} is not a valid GID";            fi;            if [[ -z ${defgroup} ]]; then                defgroup=${g};            else                exgroups+=",${g}";            fi;        done;        opts+=(-g "${defgroup}");        if [[ ! -z ${exgroups} ]]; then            opts+=(-G "${exgroups:1}");        fi;    fi;    einfo " - Groups: ${egroups:-(none)}";    if [[ $# -gt 0 ]]; then        die "extra arguments no longer supported; please file a bug";    else        local comment="added by portage for ${PN}";        opts+=(-c "${comment}");        einfo " - GECOS: ${comment}";    fi;    case ${CHOST} in         *-darwin*)            dscl . create "/users/${euser}" uid ${euid};            dscl . create "/users/${euser}" shell "${eshell}";            dscl . create "/users/${euser}" home "${ehome}";            dscl . create "/users/${euser}" realname "added by portage for ${PN}";            for g in "${egroups_arr[@]}";            do                dscl . merge "/groups/${g}" users "${euser}";            done        ;;        *-freebsd* | *-dragonfly*)            pw useradd "${euser}" "${opts[@]}" || die        ;;        *-netbsd*)            useradd "${opts[@]}" "${euser}" || die        ;;        *-openbsd*)            useradd -u ${euid} -s "${eshell}" -d "${ehome}" -g "${egroups}" "${euser}" || die        ;;        *)            useradd -r "${opts[@]}" "${euser}" || die        ;;    esac;    if [[ ! -e ${ROOT}/${ehome} ]]; then        einfo " - Creating ${ehome} in ${ROOT}";        mkdir -p "${ROOT}/${ehome}";        chown "${euser}" "${ROOT}/${ehome}";        chmod 755 "${ROOT}/${ehome}";    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} ]]; 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 STDERR_TARGET="${T}/${patchname}.out";        if [[ -e ${STDERR_TARGET} ]]; then            STDERR_TARGET="${T}/${patchname}-$$.out";        fi;        printf "***** %s *****\nPWD: %s\n\n" "${patchname}" "${PWD}" > "${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;        local patch="patch";        eval $(alias patch 2>/dev/null | sed 's:^alias ::');        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"  <<-EOFPATCH: ${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 base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;    for check in ${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT}};    do        EPATCH_SOURCE=${base}/${CTARGET}/${check};        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check};        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${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}";            return 0;        fi;    done;    echo "none" > "${applied}";    return 1}epause () {     ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://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}esethome () {     _assert_pkg_ebuild_phase ${FUNCNAME};    local euser=$1;    shift;    if [[ -z ${euser} ]]; then        eerror "No username specified !";        die "Cannot call esethome without a username";    fi;    if [[ -z $(egetent passwd "${euser}") ]]; then        ewarn "User does not exist, cannot set home dir -- skipping.";        return 1;    fi;    local ehome=$1;    shift;    if [[ -z ${ehome} ]]; then        eerror "No home directory specified !";        die "Cannot call esethome without a home directory or '-1'";    fi;    if [[ ${ehome} == "-1" ]]; then        ehome="/dev/null";    fi;    if [[ $(egethome "${euser}") == ${ehome} ]]; then        return 0;    fi;    einfo "Updating home for user '${euser}' ...";    einfo " - Home: ${ehome}";    if [[ ! -e ${ROOT}/${ehome} ]]; then        einfo " - Creating ${ehome} in ${ROOT}";        mkdir -p "${ROOT}/${ehome}";        chown "${euser}" "${ROOT}/${ehome}";        chmod 755 "${ROOT}/${ehome}";    fi;    case ${CHOST} in         *-darwin*)            dscl . change "/users/${euser}" home "${ehome}"        ;;        *-freebsd* | *-dragonfly*)            pw usermod "${euser}" -d "${ehome}" && return 0;            [[ $? == 8 ]] && eerror "${euser} is in use, cannot update home";            eerror "There was an error when attempting to update the home directory for ${euser}";            eerror "Please update it manually on your system:";            eerror "\t pw usermod \"${euser}\" -d \"${ehome}\""        ;;        *)            usermod -d "${ehome}" "${euser}" && return 0;            [[ $? == 8 ]] && eerror "${euser} is in use, cannot update home";            eerror "There was an error when attempting to update the home directory for ${euser}";            eerror "Please update it manually on your system (as root):";            eerror "\t usermod -d \"${ehome}\" \"${euser}\""        ;;    esac}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}filter-flags () {     _filter-hardened "$@";    local v;    for v in $(all-flag-vars);    do        _filter-var ${v} "$@";    done;    return 0}filter-ldflags () {     _filter-var LDFLAGS "$@";    return 0}filter-lfs-flags () {     [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments";    filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE}filter-mfpmath () {     local orig_mfpmath new_math prune_math;    orig_mfpmath=$(get-flag -mfpmath);    new_math=$(get-flag mfpmath);    new_math=${new_math/both/387,sse};    new_math=" ${new_math//[,+]/ } ";    prune_math="";    for prune_math in "$@";    do        new_math=${new_math/ ${prune_math} / };    done;    new_math=$(echo ${new_math});    new_math=${new_math// /,};    if [[ -z ${new_math} ]]; then        filter-flags ${orig_mfpmath};    else        replace-flags ${orig_mfpmath} -mfpmath=${new_math};    fi;    return 0}gcc-fullversion () {     _gcc_fullversion '$1.$2.$3' "$@"}gcc-major-version () {     _gcc_fullversion '$1' "$@"}gcc-micro-version () {     _gcc_fullversion '$3' "$@"}gcc-minor-version () {     _gcc_fullversion '$2' "$@"}gcc-specs-directive () {     local directive subdname subdirective;    directive="$(_gcc-specs-directive_raw $1)";    while [[ ${directive} == *%\(*\)* ]]; do        subdname=${directive/*%\(};        subdname=${subdname/\)*};        subdirective="$(_gcc-specs-directive_raw ${subdname})";        directive="${directive//\%(${subdname})/${subdirective}}";    done;    echo "${directive}";    return 0}gcc-specs-nostrict () {     local directive;    directive=$(gcc-specs-directive cc1);    return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]])}gcc-specs-now () {     local directive;    directive=$(gcc-specs-directive link_command);    return $([[ "${directive/\{!nonow:}" != "${directive}" ]])}gcc-specs-pie () {     local directive;    directive=$(gcc-specs-directive cc1);    return $([[ "${directive/\{!nopie:}" != "${directive}" ]])}gcc-specs-relro () {     local directive;    directive=$(gcc-specs-directive link_command);    return $([[ "${directive/\{!norelro:}" != "${directive}" ]])}gcc-specs-ssp () {     local directive;    directive=$(gcc-specs-directive cc1);    return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]])}gcc-specs-ssp-to-all () {     local directive;    directive=$(gcc-specs-directive cc1);    return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]])}gcc-version () {     _gcc_fullversion '$1.$2' "$@"}gen_cnf () {     SSL_CONF="${T}/${$}ssl.cnf";    SSL_SERIAL="${T}/${$}ca.ser";    SSL_RANDOM="${T}/environment:${T}/eclass-debug.log:/etc/resolv.conf";    SSL_DAYS="${SSL_DAYS:-730}";    SSL_BITS="${SSL_BITS:-1024}";    SSL_COUNTRY="${SSL_COUNTRY:-US}";    SSL_STATE="${SSL_STATE:-California}";    SSL_LOCALITY="${SSL_LOCALITY:-Santa Barbara}";    SSL_ORGANIZATION="${SSL_ORGANIZATION:-SSL Server}";    SSL_UNIT="${SSL_UNIT:-For Testing Purposes Only}";    SSL_COMMONNAME="${SSL_COMMONNAME:-localhost}";    SSL_EMAIL="${SSL_EMAIL:-root@localhost}";    echo "01" > "${SSL_SERIAL}";    ebegin "Generating OpenSSL configuration${1:+ for CA}";    cat > "${SSL_CONF}"  <<-EOF[ req ]prompt             = nodefault_bits       = ${SSL_BITS}distinguished_name = req_dn[ req_dn ]C                  = ${SSL_COUNTRY}ST                 = ${SSL_STATE}L                  = ${SSL_LOCALITY}O                  = ${SSL_ORGANIZATION}OU                 = ${SSL_UNIT}CN                 = ${SSL_COMMONNAME}${1:+ CA}emailAddress       = ${SSL_EMAIL}EOF    eend $?;    return $?}gen_crt () {     local base=$(get_base "$1");    if [ "${1}" ]; then        ebegin "Generating self-signed X.509 Certificate for CA";        openssl x509 -extfile "${SSL_CONF}" -days ${SSL_DAYS} -req -signkey "${base}.key" -in "${base}.csr" -out "${base}.crt" &>/dev/null;    else        local ca=$(get_base 1);        ebegin "Generating authority-signed X.509 Certificate";        openssl x509 -extfile "${SSL_CONF}" -days ${SSL_DAYS} -req -CAserial "${SSL_SERIAL}" -CAkey "${ca}.key" -CA "${ca}.crt" -in "${base}.csr" -out "${base}.crt" &>/dev/null;    fi;    eend $?;    return $?}gen_csr () {     local base=$(get_base "$1");    ebegin "Generating Certificate Signing Request${1:+ for CA}";    openssl req -config "${SSL_CONF}" -new -key "${base}.key" -out "${base}.csr" &>/dev/null;    eend $?;    return $?}gen_key () {     local base=$(get_base "$1");    ebegin "Generating ${SSL_BITS} bit RSA key${1:+ for CA}";    openssl genrsa -rand "${SSL_RANDOM}" -out "${base}.key" "${SSL_BITS}" &>/dev/null;    eend $?;    return $?}gen_pem () {     local base=$(get_base "$1");    ebegin "Generating PEM Certificate";    ( cat "${base}.key";    echo;    cat "${base}.crt" ) > "${base}.pem";    eend $?;    return $?}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*)        ;;        *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 http://bugs.gentoo.org/4411 for more info. */${output_format}GROUP ( ${EPREFIX}/${libdir}/${tlib} )END_LDSCRIPT            ;;        esac        fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";    done}get-flag () {     local f var findflag="$1";    for var in $(all-flag-vars);    do        for f in ${!var};        do            if [ "${f/${findflag}}" != "${f}" ]; then                printf "%s\n" "${f/-${findflag}=}";                return 0;            fi;        done;    done;    return 1}get_abi_CFLAGS () {     get_abi_var CFLAGS "$@"}get_abi_CHOST () {     get_abi_var CHOST "$@"}get_abi_CTARGET () {     get_abi_var CTARGET "$@"}get_abi_FAKE_TARGETS () {     get_abi_var FAKE_TARGETS "$@"}get_abi_LDFLAGS () {     get_abi_var LDFLAGS "$@"}get_abi_LIBDIR () {     get_abi_var LIBDIR "$@"}get_abi_var () {     local flag=$1;    local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};    local var="${flag}_${abi}";    echo ${!var}}get_after_major_version () {     echo $(get_version_component_range 2- "${1:-${PV}}")}get_all_abis () {     local x order="" mvar dvar;    mvar="MULTILIB_ABIS";    dvar="DEFAULT_ABI";    if [[ -n $1 ]]; then        mvar="$1_${mvar}";        dvar="$1_${dvar}";    fi;    if [[ -z ${!mvar} ]]; then        echo "default";        return 0;    fi;    for x in ${!mvar};    do        if [[ ${x} != ${!dvar} ]]; then            order="${order:+${order} }${x}";        fi;    done;    order="${order:+${order} }${!dvar}";    echo ${order};    return 0}get_all_libdirs () {     local libdirs abi;    for abi in ${MULTILIB_ABIS};    do        libdirs+=" $(get_abi_LIBDIR ${abi})";    done;    [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";    echo "${libdirs}"}get_all_version_components () {     eshopts_push -s extglob;    local ver_str=${1:-${PV}} result;    result=();    if [[ ${VERSIONATOR_CACHE_VER_STR} == ${ver_str} ]]; then        echo ${VERSIONATOR_CACHE_RESULT};        eshopts_pop;        return;    fi;    export VERSIONATOR_CACHE_VER_STR=${ver_str};    while [[ -n $ver_str ]]; do        case "${ver_str::1}" in             [[:digit:]])                result+=("${ver_str%%[^[:digit:]]*}");                ver_str=${ver_str##+([[:digit:]])}            ;;            [-_.])                result+=("${ver_str::1}");                ver_str=${ver_str:1}            ;;            [[:alpha:]])                local not_match=${ver_str##+([[:alpha:]])*([[:digit:]])};                result+=("${ver_str::${#ver_str} - ${#not_match}}");                ver_str=${not_match}            ;;            *)                result+=("${ver_str::1}");                ver_str=${ver_str:1}            ;;        esac;    done;    export VERSIONATOR_CACHE_RESULT=${result[*]};    echo ${result[@]};    eshopts_pop}get_base () {     if [ "${1}" ]; then        echo "${T}/${$}ca";    else        echo "${T}/${$}server";    fi}get_install_abis () {     local x order="";    if [[ -z ${MULTILIB_ABIS} ]]; then        echo "default";        return 0;    fi;    if [[ ${EMULTILIB_PKG} == "true" ]]; then        for x in ${MULTILIB_ABIS};        do            if [[ ${x} != "${DEFAULT_ABI}" ]]; then                has ${x} ${ABI_DENY} || order="${order} ${x}";            fi;        done;        has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";        if [[ -n ${ABI_ALLOW} ]]; then            local ordera="";            for x in ${order};            do                if has ${x} ${ABI_ALLOW}; then                    ordera="${ordera} ${x}";                fi;            done;            order=${ordera};        fi;    else        order=${DEFAULT_ABI};    fi;    if [[ -z ${order} ]]; then        die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";    fi;    echo ${order};    return 0}get_last_version_component_index () {     echo $(($(get_version_component_count "${1:-${PV}}" ) - 1))}get_libdir () {     local 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_major_version () {     local c=($(get_all_version_components "${1:-${PV}}"));    echo ${c[0]}}get_modname () {     local modname;    local ver=$1;    case ${CHOST} in         *-darwin*)            modname="bundle"        ;;        *)            modname="so"        ;;    esac;    echo ".${modname}"}get_version_component_count () {     local a=($(get_version_components "${1:-${PV}}"));    echo ${#a[@]}}get_version_component_range () {     eshopts_push -s extglob;    local c v="${2:-${PV}}" range="${1}" range_start range_end;    local -i i=-1 j=0;    c=($(get_all_version_components "${v}"));    range_start=${range%-*};    range_start=${range_start:-1};    range_end=${range#*-};    range_end=${range_end:-${#c[@]}};    while ((j < range_start)); do        i+=1;        ((i > ${#c[@]})) && eshopts_pop && return;        [[ -n "${c[i]//[-._]}" ]] && j+=1;    done;    while ((j <= range_end)); do        echo -n ${c[i]};        ((i > ${#c[@]})) && eshopts_pop && return;        [[ -n "${c[i]//[-._]}" ]] && j+=1;        i+=1;    done;    eshopts_pop}get_version_components () {     local c=$(get_all_version_components "${1:-${PV}}");    echo ${c//[-._]/ }}getpam_mod_dir () {     if has_version sys-libs/pam || has_version sys-libs/openpam; then        PAM_MOD_DIR=/$(get_libdir)/security;    else        PAM_MOD_DIR=/$(get_libdir)/security;    fi;    echo ${PAM_MOD_DIR}}has_m32 () {     die "${FUNCNAME}: don't use this anymore"}has_m64 () {     eqawarn "${FUNCNAME}: don't use this anymore";    local temp="$(emktemp)";    echo "int main() { return(0); }" > "${temp}".c;    MY_CC=$(tc-getCC);    ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;    local ret=$?;    rm -f "${temp}".c;    [[ ${ret} != 1 ]] && return 0;    return 1}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[@]#[+-]}"}install_cert () {     if [ $# -lt 1 ]; then        eerror "At least one argument needed";        return 1;    fi;    case ${EBUILD_PHASE} in         unpack | prepare | configure | compile | test | install)            die "install_cert cannot be called in ${EBUILD_PHASE}"        ;;    esac;    gen_cnf 1 || return 1;    gen_key 1 || return 1;    gen_csr 1 || return 1;    gen_crt 1 || return 1;    echo;    gen_cnf || return 1;    echo;    local count=0;    for cert in "$@";    do        if [ -z "${cert##*/}" ]; then            ewarn "Invalid certification requested, skipping";            continue;        fi;        for type in key csr crt pem;        do            if [ -e "${ROOT}${cert}.${type}" ]; then                ewarn "${ROOT}${cert}.${type}: exists, skipping";                continue 2;            fi;        done;        gen_key || continue;        gen_csr || continue;        gen_crt || continue;        gen_pem || continue;        echo;        local base=$(get_base);        install -d "${ROOT}${cert%/*}";        install -m0400 "${base}.key" "${ROOT}${cert}.key";        install -m0444 "${base}.csr" "${ROOT}${cert}.csr";        install -m0444 "${base}.crt" "${ROOT}${cert}.crt";        install -m0400 "${base}.pem" "${ROOT}${cert}.pem";        : $(( ++count ));    done;    if [ ${count} = 0 ]; then        eerror "No certificates were generated";        return 1;    else        if [ ${count} != ${#} ]; then            ewarn "Some requested certificates were not generated";        fi;    fi}is-flag () {     is-flagq "$@" && echo true}is-flagq () {     [[ -n $2 ]] && die "Usage: is-flag <flag>";    local var;    for var in $(all-flag-vars);    do        _is_flagq ${var} "$1" && return 0;    done;    return 1}is-ldflag () {     is-ldflagq "$@" && echo true}is-ldflagq () {     [[ -n $2 ]] && die "Usage: is-ldflag <flag>";    _is_flagq LDFLAGS $1}is_final_abi () {     has_multilib_profile || return 0;    set -- $(get_install_abis);    local LAST_ABI=$#;    [[ ${!LAST_ABI} == ${ABI} ]]}isdigit () {     local d;    for d in "$@";    do        [[ ${d:-bad} == *[!0-9]* ]] && return 1;    done;    return 0}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;    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=ApplicationComment=${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=XSessionEOF    ( 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  <<-EOFif [ "\${${var}+set}" = "set" ] ; thenexport ${var}="\${${var}}:${EPREFIX}${libdir}"elseexport ${var}="${EPREFIX}${libdir}"fiEOF    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}makeopts_jobs () {     [[ $# -eq 0 ]] && set -- ${MAKEOPTS};    local jobs=$(echo " $* " | sed -r -n 		-e 's:.*[[:space:]](-j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' 		-e 's:.*[[:space:]](-j|--jobs)[[:space:]].*:999:p');    echo ${jobs:-1}}makeopts_loadavg () {     [[ $# -eq 0 ]] && set -- ${MAKEOPTS};    local lavg=$(echo " $* " | sed -r -n 		-e 's:.*[[:space:]](-l|--load-average[=[:space:]])[[:space:]]*([0-9]+|[0-9]+\.[0-9]+)[^0-9.]*:\2:p' 		-e 's:.*[[:space:]](-l|--load-average)[[:space:]].*:999:p');    echo ${lavg:-1}}multijob_child_init () {     local mode="pre";    case $1 in         --pre)            mode="pre";            shift        ;;        --post)            mode="post";            shift        ;;    esac;    if [[ $# -eq 0 ]]; then        trap 'echo ${BASHPID:-$(bashpid)} $? >&'${mj_write_fd} EXIT;        trap 'exit 1' INT TERM;    else        local ret;        [[ ${mode} == "pre" ]] && {             multijob_pre_fork;            ret=$?        };        ( multijob_child_init;        "$@" ) & [[ ${mode} == "post" ]] && {             multijob_post_fork;            ret=$?        };        return ${ret};    fi}multijob_finish () {     local ret=0;    while [[ ${mj_num_jobs} -gt 0 ]]; do        multijob_finish_one;        : $(( ret |= $? ));    done;    wait;    [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments";    EBUILD_DEATH_HOOKS=${EBUILD_DEATH_HOOKS/ wait / };    return ${ret}}multijob_finish_one () {     [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments";    local pid ret;    read -r -u ${mj_read_fd} pid ret || die;    : $(( --mj_num_jobs ));    return ${ret}}multijob_init () {     has wait ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" wait ";    local pipe="${T}/multijob.pipe";    mkfifo -m 600 "${pipe}";    redirect_alloc_fd mj_write_fd "${pipe}";    redirect_alloc_fd mj_read_fd "${pipe}";    rm -f "${pipe}";    mj_max_jobs=$(makeopts_jobs "$@");    mj_num_jobs=0}multijob_post_fork () {     _multijob_fork post "$@"}multijob_pre_fork () {     _multijob_fork pre "$@"}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 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 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 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 "$@" )}newpamd () {     [[ $# -ne 2 ]] && die "newpamd requires two arguments";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    ( insinto /etc/pam.d;    insopts -m 0644;    newins "$1" "$2" ) || die "failed to install $1 as $2";    cleanpamd $2}newpammod () {     [[ $# -ne 2 ]] && die "newpammod requires two arguements";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    exeinto $(getpam_mod_dir);    newexe "$1" "$2" || die "failed to install $1 as $2"}newpamsecurity () {     [[ $# -ne 3 ]] && die "newpamsecurity requires three arguments";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    ( insinto /etc/security/$1;    insopts -m 0644;    newins "$2" "$3" ) || die "failed to install $2 as $3"}no-as-needed () {     case $($(tc-getLD) -v 2>&1 </dev/null) in         *GNU*)            echo "-Wl,--no-as-needed"        ;;    esac}number_abis () {     set -- `get_install_abis`;    echo $#}optfeature () {     debug-print-function ${FUNCNAME} "$@";    local i j msg;    local desc=$1;    local flag=0;    shift;    for i in "$@";    do        for j in ${i};        do            if has_version "${j}"; then                flag=1;            else                flag=0;                break;            fi;        done;        if [[ ${flag} -eq 1 ]]; then            break;        fi;    done;    if [[ ${flag} -eq 0 ]]; then        for i in "$@";        do            msg=" ";            for j in ${i};            do                msg+=" ${j} and";            done;            msg="${msg:0: -4} for ${desc}";            elog "${msg}";        done;    fi}pam_epam_expand () {     sed -n -e 's|#%EPAM-\([[:alpha:]-]\+\):\([-+<>=/.![:alnum:]]\+\)%#.*|\1 \2|p' "$@" | sort -u | while read condition parameter; do        disable="yes";        case "$condition" in             If-Has)                message="This can be used only if you have ${parameter} installed";                has_version "$parameter" && disable="no"            ;;            Use-Flag)                message="This can be used only if you enabled the ${parameter} USE flag";                use "$parameter" && disable="no"            ;;            *)                eerror "Unknown EPAM condition '${condition}' ('${parameter}')";                die "Unknown EPAM condition '${condition}' ('${parameter}')"            ;;        esac;        if [ "${disable}" = "yes" ]; then            sed -i -e "/#%EPAM-${condition}:${parameter/\//\\/}%#/d" "$@";        else            sed -i -e "s|#%EPAM-${condition}:${parameter}%#||" "$@";        fi;    done}pamd_mimic () {     [[ $# -lt 3 ]] && die "pamd_mimic requires at least three argments";    if has pam ${IUSE} && ! use pam; then        return 0;    fi;    dodir /etc/pam.d;    pamdfile=${D}/etc/pam.d/$2;    echo -e "# File autogenerated by pamd_mimic in pam eclass\n\n" >> $pamdfile;    originalstack=$1;    authlevels="auth account password session";    if has_version '<sys-libs/pam-0.78'; then        mimic="\trequired\t\tpam_stack.so service=${originalstack}";    else        mimic="\tinclude\t\t${originalstack}";    fi;    shift;    shift;    while [[ -n $1 ]]; do        has $1 ${authlevels} || die "unknown level type";        echo -e "$1${mimic}" >> ${pamdfile};        shift;    done}pamd_mimic_system () {     [[ $# -lt 2 ]] && die "pamd_mimic_system requires at least two argments";    pamd_mimic system-auth "$@"}pammod_hide_symbols () {     cat - > "${T}"/pam-eclass-pam_symbols.ver  <<EOF{	global: pam_sm_*;	local: *;};EOF    append-ldflags -Wl,--version-script="${T}"/pam-eclass-pam_symbols.ver}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 () {     __eapi0_pkg_nofetch "$@"}pkg_postinst () {     if use ssl; then        if [ ! -f "${ROOT}"etc/ssl/cyrus/server.key ]; then            install_cert /etc/ssl/cyrus/server;            chown cyrus:mail "${ROOT}"etc/ssl/cyrus/server.{key,pem};        fi;    fi}pkg_preinst () {     if ! has_version ${CATEGORY}/${PN}; then        elog "For correct logging add the following to /etc/syslog.conf:";        elog "    local6.*         /var/log/imapd.log";        elog "    auth.debug       /var/log/auth.log";        echo;        elog "You have to add user cyrus to the sasldb2. Do this with:";        elog "    saslpasswd2 cyrus";    fi}pkg_setup () {     enewuser cyrus -1 -1 /usr/cyrus mail}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}raw-ldflags () {     local x input="$@";    [[ -z ${input} ]] && input=${LDFLAGS};    set --;    for x in ${input};    do        case ${x} in             -Wl,*)                x=${x#-Wl,};                set -- "$@" ${x//,/ }            ;;            *)            ;;        esac;    done;    echo "$@"}redirect_alloc_fd () {     local var=$1 file=$2 redir=${3:-"<>"};    if [[ ! -L /dev/fd && ${CBUILD} == *linux* ]]; then        eerror "You're missing a /dev/fd symlink to /proc/self/fd.";        eerror "Please fix the symlink and check your boot scripts (udev/etc...).";        die "/dev/fd is broken";    fi;    if [[ $(( (BASH_VERSINFO[0] << 8) + BASH_VERSINFO[1] )) -ge $(( (4 << 8) + 1 )) ]]; then        eval "exec {${var}}${redir}'${file}'";    else        local fd=10;        while :; do            if [[ ! -e /dev/fd/${fd} ]] && [[ ! -L /dev/fd/${fd} ]]; then                eval "exec ${fd}${redir}'${file}'" && break;            fi;            [[ ${fd} -gt 1024 ]] && die 'could not locate a free temp fd !?';            : $(( ++fd ));        done;        : $(( ${var} = fd ));    fi}replace-cpu-flags () {     local newcpu="$#";    newcpu="${!newcpu}";    while [ $# -gt 1 ]; do        replace-flags "-march=${1}" "-march=${newcpu}";        replace-flags "-mcpu=${1}" "-mcpu=${newcpu}";        replace-flags "-mtune=${1}" "-mtune=${newcpu}";        shift;    done;    return 0}replace-flags () {     [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>";    local f var new;    for var in $(all-flag-vars);    do        new=();        for f in ${!var};        do            [[ ${f} == ${1} ]] && f=${2};            new+=("${f}");        done;        eval export ${var}=\""${new[*]}"\";    done;    return 0}replace-sparc64-flags () {     local SPARC64_CPUS="ultrasparc3 ultrasparc v9";    if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then        for x in ${SPARC64_CPUS};        do            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";        done;    else        for x in ${SPARC64_CPUS};        do            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";        done;    fi;    if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then        for x in ${SPARC64_CPUS};        do            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";        done;    else        for x in ${SPARC64_CPUS};        do            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";        done;    fi;    export CFLAGS CXXFLAGS}replace_all_version_separators () {     local c=($(get_all_version_components "${2:-${PV}}"));    c=${c[@]//[-._]/$1};    echo ${c// }}replace_version_separator () {     eshopts_push -s extglob;    local w c v="${3:-${PV}}";    declare -i i found=0;    w=${1:-1};    c=($(get_all_version_components ${v}));    if [[ ${w} != *[[:digit:]]* ]]; then        for ((i = 0; i < ${#c[@]}; i++))        do            if [[ ${c[i]} == ${w} ]]; then                c[i]=${2};                break;            fi;        done;    else        for ((i = 0; i < ${#c[@]}; i++))        do            if [[ -n "${c[i]//[^-._]}" ]]; then                found+=1;                if ((found == w)); then                    c[i]=${2};                    break;                fi;            fi;        done;    fi;    c=${c[*]};    echo ${c// };    eshopts_pop}setup-allowed-flags () {     ALLOWED_FLAGS="-pipe";    ALLOWED_FLAGS+=" -O -O1 -O2 -Os -Og -mcpu -march -mtune";    ALLOWED_FLAGS+=" -fstack-protector*";    ALLOWED_FLAGS+=" -fbounds-checking -fno-strict-overflow";    ALLOWED_FLAGS+=" -fno-PIE -fno-pie -fno-unit-at-a-time";    ALLOWED_FLAGS+=" -g -g[0-9] -ggdb -ggdb[0-9] -gdwarf-* gstabs -gstabs+";    ALLOWED_FLAGS+=" -fno-ident -fpermissive -frecord-gcc-switches";    ALLOWED_FLAGS+=" -fdiagnostics*";    ALLOWED_FLAGS+=" -W* -w";    ALLOWED_FLAGS+=" -fno-stack-protector* -fabi-version=* 		-fno-strict-aliasing -fno-bounds-checking -fstrict-overflow 		-fno-omit-frame-pointer -fno-builtin*";    ALLOWED_FLAGS+=" -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse 		-mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 		-mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt 		-mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt 		-msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu 		-mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe 		-mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat 		-mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi 		-mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel 		-mstack-bias -mno-stack-bias -msecure-plt -m*-toc -mfloat-abi 		-mfix-r10000 -mno-fix-r10000 -D* -U*";    ALLOWED_FLAGS+=" -mno-fma4 -mno-movbe -mno-xop -mno-lwp";    ALLOWED_FLAGS+=" -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm";    ALLOWED_FLAGS+=" -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt";    ALLOWED_FLAGS+=" -mno-fxsr -mno-rtm -mno-xsave -mno-xsaveopt";    ALLOWED_FLAGS+=" -mno-avx512cd -mno-avx512er -mno-avx512f -mno-avx512pf -mno-sha";    ALLOWED_FLAGS+=" -I* -L* -R* -Wl,*";    export ALLOWED_FLAGS;    return 0}src_compile () {     __eapi2_src_compile "$@"}src_configure () {     local myconf;    if use mysql; then        myconf=$(mysql_config --include);        myconf="--with-mysql-incdir=${myconf#-I}";        myconf+=" --with-mysql-libdir=/usr/$(get_libdir)/mysql";    fi;    if use afs; then        myconf+=" --with-afs-libdir=/usr/$(get_libdir)";        myconf+=" --with-afs-incdir=/usr/include/afs";    fi;    if use berkdb; then        myconf+=" --with-bdb-incdir=$(db_includedir)";    fi;    econf --enable-murder --enable-netscapehack --enable-idled --with-service-path=/usr/$(get_libdir)/cyrus --with-cyrus-user=cyrus --with-cyrus-group=mail --with-com_err=yes --with-sasl --without-perl --without-krb --without-krbdes --with-zlib $(use_enable afs) $(use_enable afs krb5afspts) $(use_with berkdb bdb) $(use_enable nntp) $(use_enable replication) $(use_enable kerberos gssapi) $(use_with mysql) $(use_with postgres pgsql) $(use_with sqlite) $(use_with ssl openssl) $(use_enable sieve) $(use_with snmp) $(use_with tcpd libwrap) ${myconf}}src_install () {     emake DESTDIR="${D}" install;    if ! use nntp; then        rm "${D}"/usr/share/man/man8/fetchnews.8*;    fi;    dodoc README*;    dohtml doc/*.html doc/murder.png;    docinto text;    dodoc doc/text/*;    cp doc/cyrusv2.mc "${D}/usr/share/doc/${PF}/html";    cp -r contrib tools "${D}/usr/share/doc/${PF}";    rm -f doc/text/Makefile*;    insinto /etc;    doins "${FILESDIR}/cyrus.conf" "${FILESDIR}/imapd.conf";    if ! use sieve; then        sed -i -e "/sieve/s/^/#/" "${D}/etc/cyrus.conf" || die;    fi;    newinitd "${FILESDIR}/cyrus.rc6" cyrus;    newconfd "${FILESDIR}/cyrus.confd" cyrus;    newpamd "${FILESDIR}/cyrus.pam-include" sieve;    for subdir in imap/{,db,log,msg,proc,socket,sieve} spool/imap/{,stage.};    do        keepdir "/var/${subdir}";        fowners cyrus:mail "/var/${subdir}";        fperms 0750 "/var/${subdir}";    done;    for subdir in imap/{user,quota,sieve} spool/imap;    do        for i in a b c d e f g h i j k l m n o p q r s t v u w x y z;        do            keepdir "/var/${subdir}/${i}";            fowners cyrus:mail "/var/${subdir}/${i}";            fperms 0750 "/var/${subdir}/${i}";        done;    done}src_prepare () {     epatch "${FILESDIR}/${P}-statuscache.diff";    for i in `grep -rl -e 'master\.8' -e 'master(8)' "${S}"`;    do        sed -i -e 's:master\.8:cyrusmaster.8:g' -e 's:master(8):cyrusmaster(8):g' "${i}" || die "sed failed" || die "sed failed";    done;    mv man/master.8 man/cyrusmaster.8 || die "mv failed";    sed -i -e "s:MASTER:CYRUSMASTER:g" -e "s:Master:Cyrusmaster:g" -e "s:master:cyrusmaster:g" man/cyrusmaster.8 || die "sed failed";    sed -i -e '/(INSTALL/s/-s //' "${S}"/imtest/Makefile.in;    sed -i -e '/I${with_afs_incdir/s/\/include//' -e '/liblwp/s/liblwp/afs\/liblwp/' "${S}"/configure{,.in} || die;    sed -i -e '/lock.h/s:lock.h:afs/lock.h:' ptclient/afskrb.c || die;    sed -i -e '/afs\/libcom_err.a/s:libcom_err.a:libafscom_err.a:' configure{,.in} || die;    sed -i -e "s/ar cr/$(tc-getAR) cr/" perl/sieve/lib/Makefile.in imap/Makefile.in lib/Makefile.in installsieve/Makefile.in com_err/et/Makefile.in sieve/Makefile.in syslog/Makefile.in || die;    AT_M4DIR="cmulocal" eautoreconf}src_test () {     __eapi0_src_test "$@"}src_unpack () {     __eapi0_src_unpack "$@"}strip-flags () {     local x y var;    setup-allowed-flags;    set -f;    for var in $(all-flag-vars);    do        local new=();        for x in ${!var};        do            local flag=${x%%=*};            for y in ${ALLOWED_FLAGS};            do                if [[ -z ${flag%%${y}} ]]; then                    new+=("${x}");                    break;                fi;            done;        done;        if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then            new+=(-O2);        fi;        if [[ ${!var} != "${new[*]}" ]]; then            einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'";        fi;        eval export ${var}=\""${new[*]}"\";    done;    set +f;    return 0}strip-linguas () {     local ls newls nols;    if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then        local op=$1;        shift;        ls=$(find "$1" -name '*.po' -exec basename {} .po ';');        shift;        local d f;        for d in "$@";        do            if [[ ${op} == "-u" ]]; then                newls=${ls};            else                newls="";            fi;            for f in $(find "$d" -name '*.po' -exec basename {} .po ';');            do                if [[ ${op} == "-i" ]]; then                    has ${f} ${ls} && newls="${newls} ${f}";                else                    has ${f} ${ls} || newls="${newls} ${f}";                fi;            done;            ls=${newls};        done;    else        ls="$@";    fi;    nols="";    newls="";    for f in ${LINGUAS};    do        if has ${f} ${ls}; then            newls="${newls} ${f}";        else            nols="${nols} ${f}";        fi;    done;    [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols};    export LINGUAS=${newls:1}}strip-unsupported-flags () {     export CFLAGS=$(test-flags-CC ${CFLAGS});    export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});    export FFLAGS=$(test-flags-F77 ${FFLAGS});    export FCFLAGS=$(test-flags-FC ${FCFLAGS})}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-getLD () {     tc-getPROG LD ld "$@"}tc-getNM () {     tc-getPROG NM nm "$@"}tc-getOBJCOPY () {     tc-getPROG OBJCOPY objcopy "$@"}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"  <<-EOFint 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 () {     return $([[ ${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}};    return $([[ ${host} == *-mint* ]])}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        ;;        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        ;;        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}test-flag-CC () {     test-flag-PROG "CC" c "$1"}test-flag-CXX () {     test-flag-PROG "CXX" c++ "$1"}test-flag-F77 () {     test-flag-PROG "F77" f77 "$1"}test-flag-FC () {     test-flag-PROG "FC" f95 "$1"}test-flag-PROG () {     local comp=$1;    local lang=$2;    local flag=$3;    [[ -z ${comp} || -z ${flag} ]] && return 1;    local PROG=$(tc-get${comp});    if ${PROG} -c -o /dev/null -x${lang} - < /dev/null > /dev/null 2>&1; then        ${PROG} "${flag}" -c -o /dev/null -x${lang} - < /dev/null > /dev/null 2>&1;    else        ${PROG} "${flag}" -c -o /dev/null /dev/null > /dev/null 2>&1;    fi}test-flags () {     test-flags-CC "$@"}test-flags-CC () {     test-flags-PROG "CC" "$@"}test-flags-CXX () {     test-flags-PROG "CXX" "$@"}test-flags-F77 () {     test-flags-PROG "F77" "$@"}test-flags-FC () {     test-flags-PROG "FC" "$@"}test-flags-PROG () {     local comp=$1;    local flags=();    local x;    shift;    [[ -z ${comp} ]] && return 1;    for x in "$@";    do        test-flag-${comp} "${x}" && flags+=("${x}");    done;    echo "${flags[*]}";    [[ ${#flags[@]} -gt 0 ]]}test_version_info () {     if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then        return 0;    else        return 1;    fi}uclibctoolize () {     die "Use elibtoolize"}use_if_iuse () {     in_iuse $1 || return 1;    use $1}usex () {     use "$1" && echo "${2-yes}$4" || echo "${3-no}$5"}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}version_compare () {     eshopts_push -s extglob;    local ver_a=${1} ver_b=${2} parts_a parts_b;    local cur_tok_a cur_tok_b num_part_a num_part_b;    local -i cur_idx_a=0 cur_idx_b=0 prev_idx_a prev_idx_b;    parts_a=($(get_all_version_components "${ver_a}" ));    parts_b=($(get_all_version_components "${ver_b}" ));    local -i inf_loop=0;    while true; do        inf_loop+=1;        ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";        prev_idx_a=cur_idx_a;        prev_idx_b=cur_idx_b;        cur_tok_a=${parts_a[cur_idx_a]};        cur_tok_b=${parts_b[cur_idx_b]};        if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then            cur_idx_a+=1;            [[ ${parts_a[cur_idx_a]} == . ]] && cur_idx_a+=1;        else            cur_tok_a=;        fi;        if [[ -n ${cur_tok_b} ]] && [[ -z ${cur_tok_b//[[:digit:]]} ]]; then            cur_idx_b+=1;            [[ ${parts_b[cur_idx_b]} == . ]] && cur_idx_b+=1;        else            cur_tok_b=;        fi;        [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]] && break;        [[ -z ${cur_tok_a} ]] && eshopts_pop && return 1;        [[ -z ${cur_tok_b} ]] && eshopts_pop && return 3;        if (( prev_idx_a != 0 && prev_idx_b != 0 )) && [[ ${cur_tok_a} == 0* || ${cur_tok_b} == 0* ]]; then            cur_tok_a=${cur_tok_a%%+(0)};            cur_tok_b=${cur_tok_b%%+(0)};            [[ ${cur_tok_a} < ${cur_tok_b} ]] && eshopts_pop && return 1;            [[ ${cur_tok_a} > ${cur_tok_b} ]] && eshopts_pop && return 3;        else            cur_tok_a=${cur_tok_a##+(0)};            cur_tok_b=${cur_tok_b##+(0)};            : ${cur_tok_a:=0};            : ${cur_tok_b:=0};            ((cur_tok_a < cur_tok_b)) && eshopts_pop && return 1;            ((cur_tok_a > cur_tok_b)) && eshopts_pop && return 3;        fi;    done;    local letter_a=;    letter_a=${parts_a[cur_idx_a]};    if [[ ${#letter_a} -eq 1 && -z ${letter_a/[a-z]} ]]; then        cur_idx_a+=1;    else        letter_a=@;    fi;    local letter_b=;    letter_b=${parts_b[cur_idx_b]};    if [[ ${#letter_b} -eq 1 && -z ${letter_b/[a-z]} ]]; then        cur_idx_b+=1;    else        letter_b=@;    fi;    [[ ${letter_a} < ${letter_b} ]] && eshopts_pop && return 1;    [[ ${letter_a} > ${letter_b} ]] && eshopts_pop && return 3;    inf_loop=0;    while true; do        inf_loop+=1;        ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";        [[ ${parts_a[cur_idx_a]} == _ ]] && ((cur_idx_a++));        [[ ${parts_b[cur_idx_b]} == _ ]] && ((cur_idx_b++));        cur_tok_a=${parts_a[cur_idx_a]};        cur_tok_b=${parts_b[cur_idx_b]};        num_part_a=0;        num_part_b=0;        if has ${cur_tok_a%%+([0-9])} "alpha" "beta" "pre" "rc" "p"; then            cur_idx_a+=1;            num_part_a=${cur_tok_a##+([a-z])};            num_part_a=${num_part_a##+(0)};            : ${num_part_a:=0};            cur_tok_a=${cur_tok_a%%+([0-9])};        else            cur_tok_a=;        fi;        if has ${cur_tok_b%%+([0-9])} alpha beta pre rc p; then            cur_idx_b+=1;            num_part_b=${cur_tok_b##+([a-z])};            num_part_b=${num_part_b##+(0)};            : ${num_part_b:=0};            cur_tok_b=${cur_tok_b%%+([0-9])};        else            cur_tok_b=;        fi;        if [[ ${cur_tok_a} != ${cur_tok_b} ]]; then            local suffix;            for suffix in alpha beta pre rc "" p;            do                [[ ${cur_tok_a} == ${suffix} ]] && eshopts_pop && return 1;                [[ ${cur_tok_b} == ${suffix} ]] && eshopts_pop && return 3;            done;        else            if [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]]; then                break;            else                ((num_part_a < num_part_b)) && eshopts_pop && return 1;                ((num_part_a > num_part_b)) && eshopts_pop && return 3;            fi;        fi;    done;    [[ ${parts_a[cur_idx_a]} == - ]] && ((cur_idx_a++));    [[ ${parts_b[cur_idx_b]} == - ]] && ((cur_idx_b++));    if [[ -n ${parts_a[cur_idx_a]/r+([0-9])} || -n ${parts_b[cur_idx_b]/r+([0-9])} ]]; then        die "versionator compare bug [revisions, ${ver_a}, ${ver_b}]";    fi;    num_part_a=${parts_a[cur_idx_a]#r};    num_part_a=${num_part_a##+(0)};    : ${num_part_a:=0};    num_part_b=${parts_b[cur_idx_b]#r};    num_part_b=${num_part_b##+(0)};    : ${num_part_b:=0};    ((num_part_a < num_part_b)) && eshopts_pop && return 1;    ((num_part_a > num_part_b)) && eshopts_pop && return 3;    eshopts_pop;    return 2}version_format_string () {     local fstr=$1;    shift;    set -- $(get_version_components "$@");    eval echo "${fstr}"}version_is_at_least () {     local want_s="$1" have_s="${2:-${PVR}}" r;    version_compare "${want_s}" "${have_s}";    r=$?;    case $r in         1 | 2)            return 0        ;;        3)            return 1        ;;        *)            die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]"        ;;    esac}version_sort () {     eshopts_push -s extglob;    local items=;    local -i left=0;    items=("$@");    while ((left < ${#items[@]})); do        local -i lowest_idx=left;        local -i idx=lowest_idx+1;        while ((idx < ${#items[@]})); do            version_compare "${items[lowest_idx]}" "${items[idx]}";            [[ $? -eq 3 ]] && lowest_idx=idx;            idx+=1;        done;        local tmp=${items[lowest_idx]};        items[lowest_idx]=${items[left]};        items[left]=${tmp};        left+=1;    done;    echo ${items[@]};    eshopts_pop}