public inbox for gentoo-amd64@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-amd64] emerge -eav system failed with ati-drivers
@ 2009-06-21 17:47 John P. Burkett
  2009-06-21 17:55 ` Drake Donahue
  0 siblings, 1 reply; 25+ messages in thread
From: John P. Burkett @ 2009-06-21 17:47 UTC (permalink / raw
  To: gentoo-amd64

Nikos,

Thank your response to my last query.

Doing "cd /usr/src/linux"
generates the response
make: *** No targets specified and no makefile found.  Stop.

Doing
zcat /proc/config.gz > .config
make oldconfig
gets the same response:
make: *** No rule to make target `oldconfig'.  Stop.

Since my last note I've make new uses of the "emerge" command. As a
result "emerge --resume" finds nothing to resume. However, doing "emerge
ati-drivers" still elicits the following response:

* Found kernel source directory:
 *     /usr/src/linux
 * Could not find a Makefile in the kernel source directory.
 * Please ensure that /usr/src/linux points to a complete set of Linux
sources
 *
 * ERROR: x11-drivers/ati-drivers-8.552-r2 failed.
 * Call stack:
 *                     ebuild.sh, line   49:  Called pkg_setup
 *   ati-drivers-8.552-r2.ebuild, line   70:  Called linux-mod_pkg_setup
 *              linux-mod.eclass, line  578:  Called linux-info_pkg_setup
 *             linux-info.eclass, line  696:  Called die
 * The specific snippet of code:
 *   	get_version || die "Unable to calculate Linux Kernel version"
 *  The die message:
 *   Unable to calculate Linux Kernel version
 *
 * If you need support, post the topmost build error, and the call stack
if relevant.
 * A complete build log is located at
'/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/build.log'.
 * The ebuild environment file is located at
'/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/die.env'.
 *

>>> Failed to emerge x11-drivers/ati-drivers-8.552-r2, Log file:

>>>  '/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/build.log'

 * Messages for package x11-drivers/ati-drivers-8.552-r2:

 * Could not find a Makefile in the kernel source directory.
 * Please ensure that /usr/src/linux points to a complete set of Linux
sources
 *
 * ERROR: x11-drivers/ati-drivers-8.552-r2 failed.
 * Call stack:
 *                     ebuild.sh, line   49:  Called pkg_setup
 *   ati-drivers-8.552-r2.ebuild, line   70:  Called linux-mod_pkg_setup
 *              linux-mod.eclass, line  578:  Called linux-info_pkg_setup
 *             linux-info.eclass, line  696:  Called die
 * The specific snippet of code:
 *   	get_version || die "Unable to calculate Linux Kernel version"
 *  The die message:
 *   Unable to calculate Linux Kernel version
 *

If you have other suggestions, I would glad to try them.

Best regards,
John



-- 
John P. Burkett
Department of Economics
University of Rhode Island
Kingston, RI 02881-0808
USA

phone (401) 874-9195



^ permalink raw reply	[flat|nested] 25+ messages in thread
* [gentoo-amd64] emerge -eav system failed with ati-drivers
@ 2009-06-22  0:44 John P. Burkett
  0 siblings, 0 replies; 25+ messages in thread
From: John P. Burkett @ 2009-06-22  0:44 UTC (permalink / raw
  To: gentoo-amd64

David Relson wrote:
<snip>
> John,
> >
> > That looks like what I've got.  If you're up to some debugging,
> > here's some more info:
> >
> > When I deliberating have the wrong kernel source in /usr/src/linux,
> > my build fails the last few lines printed are:
> >
> > If you need support, post the topmost build error, and the call stack
> >  if relevant. * A complete build log is located at
> > '/var/log/portage/x11-drivers:ati-drivers-8.552-r2:20090621-200106.log'.
> >  * The ebuild environment file is located at
> > '/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/environment'.
> >
> >
> >
> > Looking at file .../temp/environment I see it's a bash script and
> > contains line 2536 is
> >
> > get_version || die "Unable to calculate Linux Kernel version";
> >
> > which is the message in your original post.  Evidently function
> > get_version() is failing and causing the "die" command to be
> > executed. I have function get_version() at line 2326 of
> > .../environment.  Take a look at that and see if you can figure out
> > where it might be dying. Running the script in debug mode, i.e. using
> > "sh -x environment", will give you detailed information about the
> > script is finding and doing.
> >
Thank you, David.  I appreciate your continued help!
Opening /var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/die.env
in Emacs and searching for "Unable to calculate Linux Kernel version", I
found the following passage:
linux-info_pkg_setup ()
{
    get_version || die "Unable to calculate Linux Kernel version";
    if kernel_is 2 4; then
        if [ "$( gcc-major-version )" -eq "4" ]; then
            echo;
            ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with";
            ewarn "linux-2.4 (or modules building against a linux-2.4
kernel)!";
            echo;
            ewarn "Either switch to another gcc-version (via gcc-config)
or use a";
            ewarn "newer kernel that supports gcc-4.";
            echo;
            ewarn "Also be aware that bugreports about gcc-4 not working";
            ewarn "with linux-2.4 based ebuilds will be closed as INVALID!";
            echo;
            epause 10;
        fi;
    fi;
    [ -n "${CONFIG_CHECK}" ] && check_extra_config
}

Doing "uname -r" elicits
2.6.22-gentoo-r2-osmp

Doing "equery list gcc" produces
[ Searching for package 'gcc' in all categories among: ]
 * installed packages
[I--] [  ] sys-devel/gcc-4.3.2-r3 (4.3)
[I--] [  ] sys-devel/gcc-config-1.4.1 (0)
[I--] [  ] x11-misc/gccmakedep-1.0.2 (0)


That and the warnings in die.env suggest that I have some "modules
building against a linux-2.4 kernel"  despite running kernel 2.6.22.
If that is the case, I may need to identify those modules and rebuild
them against kernel 2.6.22.  I'd be grateful for ideas about whether
that's the right approach, and, if so, how to implement it.

Doing "sh -x die.env"
displays the following lines:
+ ABI=amd64
+ ALSA_CARDS=
+ ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty
extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul
mulaw multi null plug rate route share shm softvol'
+ ANT_HOME=/usr/share/ant
+ APACHE2_MODULES='actions alias auth_basic auth_digest authn_anon
authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default
authz_groupfile authz_host authz_owner authz_user autoindex cache dav
dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter
file_cache filter headers ident imagemap include info log_config logio
mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer
proxy_connect proxy_http rewrite setenvif so speling status unique_id
userdir usertrack vhost_alias'
+ ARCH=amd64
+ ASFLAGS_x86=--32
+ ATI_URL=https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/
+ BAD=''
+ BASH=/bin/bash
+ BASH_ARGC=([0]="1" [1]="0" [2]="0" [3]="0" [4]="1" [5]="1" [6]="1"
[7]="0" [8]="0" [9]="1")

The meaning of this "sh -x die.env" output is unclear to me. Does it
contain further clues to my problem?

-- 
John P. Burkett
Department of Economics
University of Rhode Island
Kingston, RI 02881-0808
USA

phone (401) 874-9195



^ permalink raw reply	[flat|nested] 25+ messages in thread
* [gentoo-amd64] emerge -eav system failed with ati-drivers
@ 2009-06-20 23:01 John P. Burkett
  2009-06-21  4:49 ` Drake Donahue
  0 siblings, 1 reply; 25+ messages in thread
From: John P. Burkett @ 2009-06-20 23:01 UTC (permalink / raw
  To: gentoo-amd64

[-- Attachment #1: Type: text/plain, Size: 1834 bytes --]

Today on an amd64 machine I tried "emerge -eav system". The process
ended with the following message:

>>> Emerging (267 of 281) x11-drivers/ati-drivers-8.552-r2
 * ati-driver-installer-8-11-x86.x86_64.run RMD160 SHA1 SHA256 size ;-)
...
                                                      [ ok ]
 * checking ebuild checksums ;-) ...

                                                      [ ok ]
 * checking auxfile checksums ;-) ...

                                                      [ ok ]
 * checking miscfile checksums ;-) ...

                                                      [ ok ]
 * Determining the location of the kernel source code
 * Found kernel source directory:
 *     /usr/src/linux
 * Could not find a Makefile in the kernel source directory.
 * Please ensure that /usr/src/linux points to a complete set of Linux
sources
 *
 * ERROR: x11-drivers/ati-drivers-8.552-r2 failed.
 * Call stack:
 *                     ebuild.sh, line   49:  Called pkg_setup
 *   ati-drivers-8.552-r2.ebuild, line   70:  Called linux-mod_pkg_setup
 *              linux-mod.eclass, line  578:  Called linux-info_pkg_setup
 *             linux-info.eclass, line  696:  Called die
 * The specific snippet of code:
 *   	get_version || die "Unable to calculate Linux Kernel version"
 *  The die message:
 *   Unable to calculate Linux Kernel version

Doing "ls -lad /usr/src/linux" elicits
lrwxrwxrwx 1 root root 22 Sep  3  2007 /usr/src/linux ->
linux-2.6.22-gentoo-r2

Doing "uname -r" elicits
2.6.22-gentoo-r2-osmp

My build log and ebuild environment file are attached.

I would be very grateful for ideas about how to fix this problem with
ati-drivers and finish the "emerge -eav system" process.

-John

-- 
John P. Burkett
Department of Economics
University of Rhode Island
Kingston, RI 02881-0808
USA

phone (401) 874-9195

[-- Attachment #2: build.log --]
[-- Type: text/plain, Size: 1318 bytes --]

 ^[[32;01m*^[[0m Determining the location of the kernel source code
 ^[[32;01m*^[[0m Found kernel source directory:
 ^[[32;01m*^[[0m     /usr/src/linux
 ^[[31;01m*^[[0m Could not find a Makefile in the kernel source directory.
 ^[[31;01m*^[[0m Please ensure that /usr/src/linux points to a complete set of Linux sources
 ^[[31;01m*^[[0m 
 ^[[31;01m*^[[0m ERROR: x11-drivers/ati-drivers-8.552-r2 failed.
 ^[[31;01m*^[[0m Call stack:
 ^[[31;01m*^[[0m                     ebuild.sh, line   49:  Called pkg_setup
 ^[[31;01m*^[[0m   ati-drivers-8.552-r2.ebuild, line   70:  Called linux-mod_pkg_setup
 ^[[31;01m*^[[0m              linux-mod.eclass, line  578:  Called linux-info_pkg_setup
 ^[[31;01m*^[[0m             linux-info.eclass, line  696:  Called die
 ^[[31;01m*^[[0m The specific snippet of code:
 ^[[31;01m*^[[0m   	get_version || die "Unable to calculate Linux Kernel version"
 ^[[31;01m*^[[0m  The die message:
 ^[[31;01m*^[[0m   Unable to calculate Linux Kernel version
 ^[[31;01m*^[[0m 
 ^[[31;01m*^[[0m If you need support, post the topmost build error, and the call stack if relevant.
 ^[[31;01m*^[[0m A complete build log is located at '/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/build.log'.
 ^[[31;01m*^[[0m The ebuild environment file is located at '/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/die.env'.
 ^[[31;01m*^[[0m 

[-- Attachment #3: die.env --]
[-- Type: text/plain, Size: 220280 bytes --]

ABI=amd64
ALSA_CARDS=
ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol'
ANT_HOME=/usr/share/ant
APACHE2_MODULES='actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias'
ARCH=amd64
ASFLAGS_x86=--32
ATI_URL=https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/
BAD=$'\E[31;01m'
BASH=/bin/bash
BASH_ARGC=([0]="1" [1]="0" [2]="0" [3]="0" [4]="1" [5]="1" [6]="1" [7]="0" [8]="0" [9]="1")
BASH_ARGV=([0]="Unable to calculate Linux Kernel version" [1]="pkg_setup" [2]="pkg_setup" [3]="pkg_setup" [4]="setup")
BASH_LINENO=([0]="696" [1]="578" [2]="70" [3]="49" [4]="639" [5]="646" [6]="651" [7]="2048" [8]="2112" [9]="0")
BASH_SOURCE=([0]="/usr/lib64/portage/bin/isolated-functions.sh" [1]="/usr/portage/eclass/linux-info.eclass" [2]="/usr/portage/eclass/linux-mod.eclass" [3]="/usr/portage/x11-drivers/ati-drivers/ati-drivers-8.552-r2.ebuild" [4]="/usr/lib64/portage/bin/ebuild.sh" [5]="/usr/lib64/portage/bin/ebuild.sh" [6]="/usr/lib64/portage/bin/ebuild.sh" [7]="/usr/lib64/portage/bin/ebuild.sh" [8]="/usr/lib64/portage/bin/ebuild.sh" [9]="/usr/lib64/portage/bin/ebuild.sh")
BASH_VERSINFO=([0]="3" [1]="2" [2]="39" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='3.2.39(1)-release'
BRACKET=$'\E[34;01m'
BUILD_PREFIX=/var/tmp/portage
BUILD_TARGETS=kmod_build
CATEGORY=x11-drivers
CBUILD=x86_64-pc-linux-gnu
CCACHE_DIR=/var/tmp/ccache
CDEFINE_amd64=__x86_64__
CDEFINE_default=__unix__
CDEFINE_x86=__i386__
CFLAGS='-Os -march=opteron -mtune=opteron -fomit-frame-pointer -ggdb'
CFLAGS_x86=-m32
CHOST=x86_64-pc-linux-gnu
CHOST_amd64=x86_64-pc-linux-gnu
CHOST_default=x86_64-pc-linux-gnu
CHOST_x86=i686-pc-linux-gnu
COLS=197
CROSSCOMPILE_OPTS=
CTARGET_default=x86_64-pc-linux-gnu
CVS_RSH=ssh
CXXFLAGS='-Os -march=opteron -mtune=opteron -fomit-frame-pointer -ggdb'
D=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/image/
DCCC_PATH=/usr/lib64/distcc/bin
DEFAULT_ABI=amd64
DEFINED_PHASES=' compile install postinst postrm preinst setup unpack'
DEPEND=$'>=x11-base/xorg-server-1.5\n\t!x11-apps/ati-drivers-extra\n\t>=app-admin/eselect-1.0.9\n\tapp-admin/eselect-opengl\n\tamd64? ( app-emulation/emul-linux-x86-xlibs )\n\tacpi? (\n\t\tx11-apps/xauth\n\t\tsys-power/acpid\n\t)\n\tx11-libs/libXrandr\n\t>=sys-apps/portage-2.1.1-r1\n\tx11-proto/xf86miscproto\n\tx11-proto/xf86vidmodeproto\n\tx11-proto/inputproto\n\t!<x11-drivers/ati-drivers-8.552-r1  kernel_linux? ( virtual/linux-sources ) kernel_linux? ( virtual/modutils )\n\tsys-apps/sed'
DESCRIPTION='Ati precompiled drivers for recent chipsets'
DESTTREE=/usr
DIROPTIONS=-m0755
DIRSTACK=()
DISPLAY=:0.0
DISTCC_LOG=
DISTCC_VERBOSE=0
DISTDIR=/usr/portage/distfiles
EAPI=0
EBUILD=/usr/portage/x11-drivers/ati-drivers/ati-drivers-8.552-r2.ebuild
EBUILD_EXIT_STATUS_FILE=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/.exit_status
EBUILD_MASTER_PID=12754
EBUILD_PHASE=setup
EBUILD_SH_ARGS=setup
ECLASSDIR=/usr/portage/eclass
ECLASS_DEPTH=0
EDITOR=/bin/nano
ELIBC=glibc
EMERGE_FROM=ebuild
EMULTILIB_PKG=true
ENDCOL=$'\E[A\E[197C'
EPATCH_EXCLUDE=
EPATCH_FORCE=no
EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...'
EPATCH_OPTS='-g0 -E --no-backup-if-mismatch'
EPATCH_SINGLE_MSG=
EPATCH_SOURCE=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work/patch
EPATCH_SUFFIX=patch.bz2
EUID=0
EXEOPTIONS=-m0755
FEATURES='ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch'
FILESDIR=/usr/portage/x11-drivers/ati-drivers/files
FUNCNAME=([0]="die" [1]="linux-info_pkg_setup" [2]="linux-mod_pkg_setup" [3]="pkg_setup" [4]="qa_call" [5]="ebuild_phase" [6]="ebuild_phase_with_hooks" [7]="dyn_setup" [8]="ebuild_main" [9]="main")
GCC_SPECS=
GDK_USE_XFT=1
GOOD=$'\E[32;01m'
GROUPS=()
GUILE_LOAD_PATH=/usr/share/guile/1.8
G_FILENAME_ENCODING=@locale
HILITE=$'\E[36m'
HOME=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/homedir
HOMEPAGE=http://www.ati.com
HOSTNAME=microway
HOSTTYPE=x86_64
IFS=$' \t\n'
INHERITED='toolchain-funcs portability versionator multilib linux-info linux-mod eutils'
INPUT_DEVICES='keyboard mouse'
INSDESTTREE=
INSOPTIONS=-m0644
IUSE='acpi debug  kernel_linux'
JAVAC=/etc/java-config-2/current-system-vm/bin/javac
JAVACC_HOME=/usr/share/javacc/
JAVA_HOME=/etc/java-config-2/current-system-vm
JDK_HOME=/etc/java-config-2/current-system-vm
KDEDIRS=/usr
KERNEL=linux
KERNEL_ABI=amd64
KERNEL_DIR=/usr/src/linux
KEYWORDS='amd64 x86'
KV=
KV_DIR=/usr/src/linux
LANG=en_US.utf-8
LAST_E_CMD=eerror
LCD_DEVICES=
LC_ALL=C
LDFLAGS=-Wl,-O1
LDFLAGS_x86='-m elf_i386'
LESS='-R -M --shift 5'
LESSOPEN='|lesspipe.sh %s'
LIBDIR_amd64=lib64
LIBDIR_amd64_fbsd=lib64
LIBDIR_default=lib
LIBDIR_ppc=lib32
LIBDIR_ppc64=lib64
LIBDIR_sparc32=lib32
LIBDIR_sparc64=lib64
LIBDIR_x86=lib32
LIBDIR_x86_fbsd=lib32
LIBGL_DRIVERS_PATH=/usr/lib64/dri:/usr/lib32/dri
LIBOPTIONS=-m0644
LICENSE='AMD GPL-2 QPL-1.0 as-is'
LOGNAME=root
LS_COLORS='rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
MACHTYPE=x86_64-pc-linux-gnu
MAKEOPTS=-j5
MODULE_DIR=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work/common/lib/modules/fglrx/build_mod
MODULE_NAMES='fglrx(video:/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work/common/lib/modules/fglrx/build_mod/2.6.x)'
MOPREFIX=ati-drivers
MULTILIB_ABIS='amd64 x86'
MULTILIB_STRICT_DENY='64-bit.*shared object'
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'
MULTILIB_STRICT_EXEMPT='(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)'
NETBEANS='apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml'
NORMAL=$'\E[0m'
OLDIFS=$' \t\n'
OLDPWD=/root
OPENGL_PROFILE=xorg-x11
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
P=ati-drivers-8.552
PAGER=/usr/bin/less
PATH=/usr/lib/ccache/bin:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin
PDEPEND=' '
PF=ati-drivers-8.552-r2
PIPESTATUS=([0]="0")
PKGDIR=/usr/portage/packages
PKGUSE=
PKG_CONFIG_PATH=/usr/qt/3/lib64/pkgconfig
PKG_LOGDIR=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/logging
PKG_TMPDIR=/var/tmp/binpkgs
PN=ati-drivers
PORTAGE_ARCHLIST='ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha hppa amd64-fbsd sparc-fbsd'
PORTAGE_BASHRC=/etc/portage/bashrc
PORTAGE_BASHRCS_SOURCED=1
PORTAGE_BINPKG_FILE=
PORTAGE_BIN_PATH=/usr/lib64/portage/bin
PORTAGE_BUILDDIR=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2
PORTAGE_COLORMAP=$'GOOD=$\'\E[32;01m\'\nWARN=$\'\E[33;01m\'\nBAD=$\'\E[31;01m\'\nHILITE=$\'\E[36m\'\nBRACKET=$\'\E[34;01m\''
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES='css gif htm[l]? jp[e]?g js pdf png'
PORTAGE_CONFIGROOT=/
PORTAGE_DEBUG=0
PORTAGE_DEPCACHEDIR=/var/cache/edb/dep
PORTAGE_GID=250
PORTAGE_INST_GID=0
PORTAGE_INST_UID=0
PORTAGE_IUSE='^(3dfx|acpi|adabas|alpha|alsa\_cards\_aoa|alsa\_cards\_aoa\-fabric\-layout|alsa\_cards\_aoa\-onyx|alsa\_cards\_aoa\-soundbus|alsa\_cards\_aoa\-soundbus\-i2s|alsa\_cards\_aoa\-tas|alsa\_cards\_aoa\-toonie|alsa\_cards\_armaaci|alsa\_cards\_at91\-soc|alsa\_cards\_at91\-soc\-eti\-b1\-wm8731|alsa\_cards\_au1x00|alsa\_cards\_cs5535audio|alsa\_cards\_harmony|alsa\_cards\_powermac|alsa\_cards\_pxa2xx\-i2sound|alsa\_cards\_pxa2xx\-soc|alsa\_cards\_pxa2xx\-soc\-corgi|alsa\_cards\_pxa2xx\-soc\-poodle|alsa\_cards\_pxa2xx\-soc\-spitz|alsa\_cards\_pxa2xx\-soc\-tosa|alsa\_cards\_sa11xx\-uda1341ts|alsa\_cards\_sun\-amd7930|alsa\_cards\_sun\-cs4231|alsa\_cards\_sun\-dbri|altivec|amd64|amd64\-fbsd|aqua|arm|asm|birdstep|bmp|bmpx|bootstrap|build|capslib|clvm|cman|cmucl|coreaudio|crosscompile\_opts\_.*|dbmaker|debug|doomsday|drac|elibc\_AIX|elibc\_Darwin|elibc\_DragonFly|elibc\_FreeBSD|elibc\_HPUX|elibc\_IRIX|elibc\_Interix|elibc\_NetBSD|elibc\_OpenBSD|elibc\_SunOS|elibc\_.*|elibc\_glibc|elibc\_mintlib|elibc\_uclibc|emf|empress|empress\-bcs|esoob|fdftk|filepro|firebird|fixed\-point|frontbase|gamess|gcc64|gulm|hppa|ia64|ibm|infopipe|informix|ingres|kdeprefix|kernel\_AIX|kernel\_Darwin|kernel\_FreeBSD|kernel\_HPUX|kernel\_IRIX|kernel\_Interix|kernel\_NetBSD|kernel\_OpenBSD|kernel\_SunOS|kernel\_.*|kernel\_freemint|kernel\_linux|lcd\_devices\_svga|m68k|macbook|mips|multilib|n32|n64|osp|pam\_console|pbbuttonsd|pfpro|plugin|ppc|ppc64|ppcsha1|prefix|psyco|pvm|real|realcodecs|s390|selinux|sh|solid|sparc|sparc\-fbsd|svga|sybase|sybase\-ct|tcc|uclibc|ultra1|userland\_BSD|userland\_GNU|userland\_.*|video\_cards\_geode|video\_cards\_i740|video\_cards\_impact|video\_cards\_imstt|video\_cards\_newport|video\_cards\_nsc|video\_cards\_sunbw2|video\_cards\_suncg14|video\_cards\_suncg3|video\_cards\_suncg6|video\_cards\_sunffb|video\_cards\_sunleo|video\_cards\_suntcx|video\_cards\_vermilion|video\_cards\_xgi|vidix|vis|win32codecs|x86|x86\-fbsd|xmms|yellownet)$'
PORTAGE_LOG_FILE=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/build.log
PORTAGE_MASTER_PID=25750
PORTAGE_MUTABLE_FILTERED_VARS='AA HOSTNAME'
PORTAGE_PYM_PATH=/usr/lib64/portage/pym
PORTAGE_REPO_NAME=gentoo
PORTAGE_RESTRICT=
PORTAGE_SAVED_READONLY_VARS='A CATEGORY P PF PN PR PV PVR'
PORTAGE_TMPDIR=/var/tmp
PORTAGE_UPDATE_ENV=/var/db/pkg/x11-drivers/xf86-input-keyboard-1.3.2/environment.bz2
PORTAGE_VERBOSE=1
PORTAGE_WORKDIR_MODE=0700
PORTDIR=/usr/portage
PORTDIR_OVERLAY=
PPID=25750
PR=r2
PREROOTPATH=
PROFILE_ONLY_VARIABLES='ARCH ELIBC KERNEL USERLAND'
PROFILE_PATHS=$'/usr/portage/profiles/base\n/usr/portage/profiles/default/linux\n/usr/portage/profiles/arch/base\n/usr/portage/profiles/features/multilib\n/usr/portage/profiles/arch/amd64\n/usr/portage/profiles/default/linux/amd64\n/usr/portage/profiles/releases\n/usr/portage/profiles/releases/2008.0\n/usr/portage/profiles/default/linux/amd64/2008.0\n/etc/portage/profile'
PROPERTIES=
PROVIDE=
PS4='+ '
PV=8.552
PVR=8.552-r2
PWD=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2
QA_EXECSTACK_amd64=$'usr/lib64/dri/fglrx_dri.so\n\tusr/lib32/dri/fglrx_dri.so\n\tusr/lib64/opengl/ati/lib/libGL.so.1.2\n\tusr/lib32/opengl/ati/lib/libGL.so.1.2\n\topt/bin/amdcccle'
QA_EXECSTACK_x86=$'usr/lib/dri/fglrx_dri.so\n\tusr/lib/opengl/ati/lib/libGL.so.1.2\n\topt/bin/amdcccle'
QA_TEXTRELS_amd64=$'\n\tusr/lib64/opengl/ati/lib/libGL.so.1.2\n\tusr/lib32/opengl/ati/lib/libGL.so.1.2\n\tusr/lib64/dri/fglrx_dri.so\n\tusr/lib32/dri/fglrx_dri.so\n\tusr/lib32/xorg/modules/glesx.so\n\tusr/lib64/xorg/modules/glesx.so'
QA_TEXTRELS_x86=$'usr/lib/dri/fglrx_dri.so\n\tusr/lib/xorg/modules/drivers/fglrx_drv.so\n\tusr/lib/opengl/ati/lib/libGL.so.1.2\n\tusr/lib/xorg/modules/glesx.so\n\tusr/lib/xorg/modules/amdxmm.so'
QMAKESPEC=linux-g++
QTDIR=/usr/qt/3
RC_DEFAULT_INDENT=2
RC_DOT_PATTERN=
RC_ENDCOL=yes
RC_INDENTATION=
RDEPEND=$'>=x11-base/xorg-server-1.5\n\t!x11-apps/ati-drivers-extra\n\t>=app-admin/eselect-1.0.9\n\tapp-admin/eselect-opengl\n\tamd64? ( app-emulation/emul-linux-x86-xlibs )\n\tacpi? (\n\t\tx11-apps/xauth\n\t\tsys-power/acpid\n\t)\n\tx11-libs/libXrandr\n\t>=sys-apps/portage-2.1.1-r1   kernel_linux? ( virtual/modutils )'
READONLY_EBUILD_METADATA=$'DEFINED_PHASES DEPEND DESCRIPTION\n\tEAPI HOMEPAGE INHERITED IUSE KEYWORDS LICENSE\n\tPDEPEND PROVIDE RDEPEND RESTRICT SLOT SRC_URI'
READONLY_PORTAGE_VARS=$'D EBUILD EBUILD_PHASE \tEBUILD_SH_ARGS EMERGE_FROM FILESDIR PORTAGE_BINPKG_FILE \tPORTAGE_BIN_PATH PORTAGE_IUSE \tPORTAGE_PYM_PATH PORTAGE_MUTABLE_FILTERED_VARS \tPORTAGE_SAVED_READONLY_VARS PORTAGE_TMPDIR T WORKDIR'
RESTRICT=
ROOT=/
ROOTPATH=/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin
RPMDIR=/usr/portage/rpm
RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
R_HOME=/usr/lib64/R
S=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work
SAGE_ROOT=/usr/local/sage-2.8.2-debian32-i686-Linux
SANDBOX_LOG=x11-drivers_-_ati-drivers-8.552-r2
SANDBOX_ON=0
SANDBOX_PREDICT=/proc/self/maps:/dev/console:/dev/random
SANDBOX_READ=/:/dev/shm:/dev/stdin:/var/tmp:/var/tmp/ccache
SANDBOX_WRITE=/dev/shm:/dev/stdout:/dev/stderr:/var/tmp:/var/tmp/ccache
SCHEME_LIBRARY_PATH=/usr/share/slib/
SGML_CATALOG_FILES=/etc/sgml/sgml-docbook.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/dsssl-docbook-stylesheets.cat
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=3
SLOT=0
SRC_URI=https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux//ati-driver-installer-8-11-x86.x86_64.run
STAGE1_USE='multilib nptl nptlonly unicode'
STARTDIR=/root
SYMLINK_LIB=yes
T=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp
TERM=xterm
TMP=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp
TMPDIR=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp
UID=0
USE='acpi amd64 elibc_glibc kernel_linux multilib userland_GNU'
USER=root
USERLAND=GNU
USE_EXPAND='ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS USERLAND VIDEO_CARDS'
VIDEO_CARDS=
WARN=$'\E[33;01m'
WORKDIR=/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work
XARGS='xargs -r'
XAUTHORITY=/root/.xauthEmg9wZ
XDG_CONFIG_DIRS=/etc/xdg
XDG_DATA_DIRS=/usr/local/share:/usr/kde/3.5/share:/usr/share
_=']'
_E_DOCDESTTREE_=
_E_EXEDESTTREE_=
_RC_GET_KV_CACHE=
___ECLASS_RECUR_MULTILIB=yes
___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes
args=
conf=ati-drivers-8.552-r2
f=
filespacing=27
j=1
lineno=696
linespacing=4
n=-1
phase_name=pkg_setup
retval=
shopts=$'cdable_vars    \toff\ncdspell        \toff\ncheckhash      \toff\ncheckwinsize   \toff\ncmdhist        \ton\ncompat31       \toff\ndotglob        \toff\nexecfail       \toff\nexpand_aliases \ton\nextdebug       \ton\nextglob        \toff\nextquote       \ton\nfailglob       \toff\nforce_fignore  \ton\ngnu_errfmt     \toff\nhistappend     \toff\nhistreedit     \toff\nhistverify     \toff\nhostcomplete   \ton\nhuponexit      \toff\ninteractive_comments\ton\nlithist        \toff\nlogin_shell    \toff\nmailwarn       \toff\nno_empty_cmd_completion\toff\nnocaseglob     \toff\nnocasematch    \toff\nnullglob       \toff\nprogcomp       \ton\npromptvars     \ton\nrestricted_shell\toff\nshift_verbose  \toff\nsourcepath     \ton\nxpg_echo       \toff'
sourcefile=isolated-functions.sh
str='linux-mod_pkg_setup: entering function'
x=pkg_setup
EXPORT_FUNCTIONS () 
{ 
    if [ -z "$ECLASS" ]; then
        die "EXPORT_FUNCTIONS without a defined ECLASS";
    fi;
    eval $__export_funcs_var+=\" $*\"
}
KV_major () 
{ 
    [[ -z $1 ]] && return 1;
    local KV=$@;
    echo "${KV%%.*}"
}
KV_micro () 
{ 
    [[ -z $1 ]] && return 1;
    local KV=$@;
    KV=${KV#*.*.};
    echo "${KV%%[^[:digit:]]*}"
}
KV_minor () 
{ 
    [[ -z $1 ]] && return 1;
    local KV=$@;
    KV=${KV#*.};
    echo "${KV%%.*}"
}
KV_to_int () 
{ 
    [[ -z $1 ]] && return 1;
    local KV_MAJOR=$(KV_major "$1");
    local KV_MINOR=$(KV_minor "$1");
    local KV_MICRO=$(KV_micro "$1");
    local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ));
    if [[ ${KV_int} -ge 131584 ]]; then
        echo "${KV_int}";
        return 0;
    fi;
    return 1
}
__versionator__test_version_compare () 
{ 
    __versionator_shopt_toggle on;
    local lt=1 eq=2 gt=3 p q;
    function __versionator__test_version_compare_t () 
    { 
        version_compare "${1}" "${3}";
        local r=$?;
        [[ ${r} -eq ${2} ]] || echo "FAIL: ${@} (got ${r} exp ${2})"
    };
    echo "
		0             $lt 1
		1             $lt 2
		2             $gt 1
		2             $eq 2
		0             $eq 0
		10            $lt 20
		68            $eq 068
		068           $gt 67
		068           $lt 69

		1.0           $lt 2.0
		2.0           $eq 2.0
		2.0           $gt 1.0

		1.0           $gt 0.0
		0.0           $eq 0.0
		0.0           $lt 1.0

		0.1           $lt 0.2
		0.2           $eq 0.2
		0.3           $gt 0.2

		1.2           $lt 2.1
		2.1           $gt 1.2

		1.2.3         $lt 1.2.4
		1.2.4         $gt 1.2.3

		1.2.0         $eq 1.2
		1.2.1         $gt 1.2
		1.2           $lt 1.2.1

		1.2b          $eq 1.2b
		1.2b          $lt 1.2c
		1.2b          $gt 1.2a
		1.2b          $gt 1.2
		1.2           $lt 1.2a

		1.3           $gt 1.2a
		1.3           $lt 1.3a

		1.0_alpha7    $lt 1.0_beta7
		1.0_beta      $lt 1.0_pre
		1.0_pre5      $lt 1.0_rc2
		1.0_rc2       $lt 1.0

		1.0_p1        $gt 1.0
		1.0_p1-r1     $gt 1.0_p1

		1.0_alpha6-r1 $gt 1.0_alpha6
		1.0_beta6-r1  $gt 1.0_alpha6-r2

		1.0_pre1      $lt 1.0-p1

		1.0p          $gt 1.0_p1
		1.0r          $gt 1.0-r1
		1.6.15        $gt 1.6.10-r2
		1.6.10-r2     $lt 1.6.15

	" | while read a b c; do
        [[ -z "${a}${b}${c}" ]] && continue;
        __versionator__test_version_compare_t "${a}" "${b}" "${c}";
    done;
    for q in "alpha beta pre rc=${lt};${gt}" "p r=${gt};${lt}";
    do
        for p in ${q%%=*};
        do
            local c=${q##*=};
            local alt=${c%%;*} agt=${c##*;};
            __versionator__test_version_compare_t "1.0" $agt "1.0_${p}";
            __versionator__test_version_compare_t "1.0" $agt "1.0_${p}1";
            __versionator__test_version_compare_t "1.0" $agt "1.0_${p}068";
            __versionator__test_version_compare_t "2.0_${p}" $alt "2.0";
            __versionator__test_version_compare_t "2.0_${p}1" $alt "2.0";
            __versionator__test_version_compare_t "2.0_${p}068" $alt "2.0";
            __versionator__test_version_compare_t "1.0_${p}" $eq "1.0_${p}";
            __versionator__test_version_compare_t "0.0_${p}" $lt "0.0_${p}1";
            __versionator__test_version_compare_t "666_${p}3" $gt "666_${p}";
            __versionator__test_version_compare_t "1_${p}7" $lt "1_${p}8";
            __versionator__test_version_compare_t "1_${p}7" $eq "1_${p}7";
            __versionator__test_version_compare_t "1_${p}7" $gt "1_${p}6";
            __versionator__test_version_compare_t "1_${p}09" $eq "1_${p}9";
        done;
    done;
    for p in "-r" "_p";
    do
        __versionator__test_version_compare_t "7.2${p}1" $lt "7.2${p}2";
        __versionator__test_version_compare_t "7.2${p}2" $gt "7.2${p}1";
        __versionator__test_version_compare_t "7.2${p}3" $gt "7.2${p}2";
        __versionator__test_version_compare_t "7.2${p}2" $lt "7.2${p}3";
    done;
    __versionator_shopt_toggle off
}
__versionator_shopt_toggle () 
{ 
    VERSIONATOR_RECURSION=${VERSIONATOR_RECURSION:-0};
    case "$1" in 
        "on")
            if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then
                VERSIONATOR_OLD_EXTGLOB=$(shopt -p extglob);
                shopt -s extglob;
            fi;
            VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION + 1 ))
        ;;
        "off")
            VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION - 1 ));
            if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then
                eval $VERSIONATOR_OLD_EXTGLOB;
            fi
        ;;
    esac;
    return 0
}
_cdrom_locate_file_on_cd () 
{ 
    local mline="";
    local showedmsg=0 showjolietmsg=0;
    while [[ -z ${CDROM_ROOT} ]]; do
        local i=0;
        local -a cdset=(${*//:/ });
        if [[ -n ${CDROM_SET} ]]; then
            cdset=(${cdset[${CDROM_SET}]});
        fi;
        while [[ -n ${cdset[${i}]} ]]; do
            local dir=$(dirname ${cdset[${i}]});
            local file=$(basename ${cdset[${i}]});
            local point= node= fs= foo=;
            while read point node fs foo; do
                [[ " cd9660 iso9660 udf " != *" ${fs} "* ]] && ! [[ ${fs} == "subfs" && ",${opts}," == *",fs=cdfss,"* ]] && continue;
                point=${point//\040/ };
                [[ ! -d ${point}/${dir} ]] && continue;
                [[ -z $(find "${point}/${dir}" -maxdepth 1 -iname "${file}") ]] && continue;
                export CDROM_ROOT=${point};
                export CDROM_SET=${i};
                export CDROM_MATCH=${cdset[${i}]};
                return;
            done <<< "$(get_mounts)";
            ((++i));
        done;
        echo;
        if [[ ${showedmsg} -eq 0 ]]; then
            if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
                if [[ -z ${CDROM_NAME} ]]; then
                    einfo "Please insert+mount the cdrom for ${PN} now !";
                else
                    einfo "Please insert+mount the ${CDROM_NAME} cdrom now !";
                fi;
            else
                if [[ -z ${CDROM_NAME_1} ]]; then
                    einfo "Please insert+mount cd #${CDROM_CURRENT_CD} for ${PN} now !";
                else
                    local var="CDROM_NAME_${CDROM_CURRENT_CD}";
                    einfo "Please insert+mount the ${!var} cdrom now !";
                fi;
            fi;
            showedmsg=1;
        fi;
        einfo "Press return to scan for the cd again";
        einfo "or hit CTRL+C to abort the emerge.";
        echo;
        if [[ ${showjolietmsg} -eq 0 ]]; then
            showjolietmsg=1;
        else
            ewarn "If you are having trouble with the detection";
            ewarn "of your CD, it is possible that you do not have";
            ewarn "Joliet support enabled in your kernel.  Please";
            ewarn "check that CONFIG_JOLIET is enabled in your kernel.";
            ebeep 5;
        fi;
        read || die "something is screwed with your system";
    done
}
_eapi0_pkg_nofetch () 
{ 
    [ -z "${SRC_URI}" ] && return;
    echo "!!! The following are listed in SRC_URI for ${PN}:";
    local x;
    for x in $(echo ${SRC_URI});
    do
        echo "!!!   ${x}";
    done
}
_eapi0_src_compile () 
{ 
    if [ -x ./configure ]; then
        econf;
    fi;
    _eapi2_src_compile
}
_eapi0_src_test () 
{ 
    if emake -j1 check -n >&/dev/null; then
        vecho ">>> Test phase [check]: ${CATEGORY}/${PF}";
        if ! emake -j1 check; then
            hasq test $FEATURES && die "Make check failed. See above for details.";
            hasq test $FEATURES || eerror "Make check failed. See above for details.";
        fi;
    else
        if emake -j1 test -n >&/dev/null; then
            vecho ">>> Test phase [test]: ${CATEGORY}/${PF}";
            if ! emake -j1 test; then
                hasq test $FEATURES && die "Make test failed. See above for details.";
                hasq test $FEATURES || eerror "Make test failed. See above for details.";
            fi;
        else
            vecho ">>> Test phase [none]: ${CATEGORY}/${PF}";
        fi;
    fi
}
_eapi0_src_unpack () 
{ 
    [[ -n ${A} ]] && unpack ${A}
}
_eapi1_src_compile () 
{ 
    _eapi2_src_configure;
    _eapi2_src_compile
}
_eapi2_src_compile () 
{ 
    if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
        emake || die "emake failed";
    fi
}
_eapi2_src_configure () 
{ 
    if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
        econf;
    fi
}
_ebuild_arg_to_phase () 
{ 
    [ $# -ne 2 ] && die "expected exactly 2 args, got $#: $*";
    local eapi=$1;
    local arg=$2;
    local phase_func="";
    case "$arg" in 
        setup)
            phase_func=pkg_setup
        ;;
        nofetch)
            phase_func=pkg_nofetch
        ;;
        unpack)
            phase_func=src_unpack
        ;;
        prepare)
            ! hasq $eapi 0 1 && phase_func=src_prepare
        ;;
        configure)
            ! hasq $eapi 0 1 && phase_func=src_configure
        ;;
        compile)
            phase_func=src_compile
        ;;
        test)
            phase_func=src_test
        ;;
        install)
            phase_func=src_install
        ;;
        preinst)
            phase_func=pkg_preinst
        ;;
        postinst)
            phase_func=pkg_postinst
        ;;
        prerm)
            phase_func=pkg_prerm
        ;;
        postrm)
            phase_func=pkg_postrm
        ;;
    esac;
    [[ -z $phase_func ]] && return 1;
    echo "$phase_func";
    return 0
}
_ebuild_phase_funcs () 
{ 
    [ $# -ne 2 ] && die "expected exactly 2 args, got $#: $*";
    local eapi=$1;
    local phase_func=$2;
    local default_phases="pkg_nofetch src_unpack src_prepare src_configure
		src_compile src_install src_test";
    local x y default_func="";
    for x in pkg_nofetch src_unpack src_test;
    do
        declare -F $x > /dev/null || eval "$x() { _eapi0_$x \"\$@\" ; }";
    done;
    case $eapi in 
        0 | 1)
            if ! declare -F src_compile > /dev/null; then
                case $eapi in 
                    0)
                        function src_compile () 
                        { 
                            _eapi0_src_compile "$@"
                        }
                    ;;
                    *)
                        function src_compile () 
                        { 
                            _eapi1_src_compile "$@"
                        }
                    ;;
                esac;
            fi;
            for x in $default_phases;
            do
                eval "default_$x() {
					die \"default_$x() is not supported with EAPI='$eapi' during phase $phase_func\"
				}";
            done;
            eval "default() {
				die \"default() is not supported with EAPI='$eapi' during phase $phase_func\"
			}"
        ;;
        *)
            declare -F src_configure > /dev/null || function src_configure () 
            { 
                _eapi2_src_configure "$@"
            };
            declare -F src_compile > /dev/null || function src_compile () 
            { 
                _eapi2_src_compile "$@"
            };
            if hasq $phase_func $default_phases; then
                function _eapi2_pkg_nofetch () 
                { 
                    _eapi0_pkg_nofetch "$@"
                };
                function _eapi2_src_unpack () 
                { 
                    _eapi0_src_unpack "$@"
                };
                function _eapi2_src_prepare () 
                { 
                    true
                };
                function _eapi2_src_test () 
                { 
                    _eapi0_src_test "$@"
                };
                function _eapi2_src_install () 
                { 
                    die "$FUNCNAME is not supported"
                };
                for x in $default_phases;
                do
                    eval "default_$x() { _eapi2_$x \"\$@\" ; }";
                done;
                eval "default() { _eapi2_$phase_func \"\$@\" ; }";
            else
                for x in $default_phases;
                do
                    eval "default_$x() {
						die \"default_$x() is not supported in phase $default_func\"
					}";
                done;
                eval "default() {
					die \"default() is not supported with EAPI='$eapi' during phase $phase_func\"
				}";
            fi
        ;;
    esac
}
_eend () 
{ 
    local retval=${1:-0} efunc=${2:-eerror} msg;
    shift 2;
    if [[ ${retval} == "0" ]]; then
        msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}";
    else
        if [[ -n $* ]]; then
            ${efunc} "$*";
        fi;
        msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}";
    fi;
    if [[ ${RC_ENDCOL} == "yes" ]]; then
        echo -e "${ENDCOL}  ${msg}";
    else
        [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0;
        printf "%$(( COLS - LAST_E_LEN - 6 ))s%b\n" '' "${msg}";
    fi;
    return ${retval}
}
_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 ]]
}
_sb_append_var () 
{ 
    local _v=$1;
    shift;
    local var="SANDBOX_${_v}";
    [[ -z $1 || -n $2 ]] && die "Usage: add$(echo ${_v} | 		LC_ALL=C tr [:upper:] [:lower:]) <colon-delimited list of paths>";
    export ${var}="${!var:+${!var}:}$1"
}
_source_ebuild () 
{ 
    source_all_bashrcs;
    unset DEPEND RDEPEND PDEPEND IUSE;
    source "${EBUILD}" || die "error sourcing ebuild";
    if [ "${EBUILD_PHASE}" != "depend" ]; then
        RESTRICT=${PORTAGE_RESTRICT};
        [[ -e $PORTAGE_BUILDDIR/.ebuild_changed ]] && rm "$PORTAGE_BUILDDIR/.ebuild_changed";
    fi;
    set -f;
    if [ "${RDEPEND-unset}" == "unset" ]; then
        export RDEPEND=${DEPEND};
        debug-print "RDEPEND: not set... Setting to: ${DEPEND}";
    fi;
    IUSE="${IUSE} ${E_IUSE}";
    DEPEND="${DEPEND} ${E_DEPEND}";
    RDEPEND="${RDEPEND} ${E_RDEPEND}";
    PDEPEND="${PDEPEND} ${E_PDEPEND}";
    unset ECLASS E_IUSE E_DEPEND E_RDEPEND E_PDEPEND;
    set +f;
    [[ -n $EAPI ]] || EAPI=0;
    local f valid_phases;
    case "$EAPI" in 
        0 | 1)
            valid_phases="src_compile pkg_config pkg_info src_install
				pkg_nofetch pkg_postinst pkg_postrm pkg_preinst pkg_prerm
				pkg_setup src_test src_unpack"
        ;;
        *)
            valid_phases="src_compile pkg_config src_configure pkg_info
				src_install pkg_nofetch pkg_postinst pkg_postrm pkg_preinst
				src_prepare pkg_prerm pkg_setup src_test src_unpack"
        ;;
    esac;
    DEFINED_PHASES=;
    for f in $valid_phases;
    do
        if declare -F $f > /dev/null; then
            f=${f#pkg_};
            DEFINED_PHASES+=" ${f#src_}";
        fi;
    done;
    [[ -n $DEFINED_PHASES ]] || DEFINED_PHASES=-;
    [[ -n $QA_PRESTRIPPED ]] && export QA_PRESTRIPPED
}
abort_compile () 
{ 
    abort_handler "src_compile" $1;
    rm -f "${PORTAGE_BUILDDIR}/.compiled";
    exit 1
}
abort_configure () 
{ 
    abort_handler src_configure $1;
    rm -f "$PORTAGE_BUILDDIR/.configured";
    exit 1
}
abort_handler () 
{ 
    local msg;
    if [ "$2" != "fail" ]; then
        msg="${EBUILD}: ${1} aborted; exiting.";
    else
        msg="${EBUILD}: ${1} failed; exiting.";
    fi;
    echo;
    echo "$msg";
    echo;
    eval ${3};
    trap - SIGINT SIGQUIT
}
abort_install () 
{ 
    abort_handler "src_install" $1;
    rm -rf "${PORTAGE_BUILDDIR}/image";
    exit 1
}
abort_prepare () 
{ 
    abort_handler src_prepare $1;
    rm -f "$PORTAGE_BUILDDIR/.prepared";
    exit 1
}
abort_test () 
{ 
    abort_handler "dyn_test" $1;
    rm -f "${PORTAGE_BUILDDIR}/.tested";
    exit 1
}
adddeny () 
{ 
    _sb_append_var DENY "$@"
}
addpredict () 
{ 
    _sb_append_var PREDICT "$@"
}
addread () 
{ 
    _sb_append_var READ "$@"
}
addwrite () 
{ 
    _sb_append_var WRITE "$@"
}
bashrc_has () 
{ 
    [[ " ${*:2} " == *" $1 "* ]]
}
best_version () 
{ 
    if [ "${EBUILD_PHASE}" == "depend" ]; then
        die "portageq calls (best_version calls portageq) are not allowed in the global scope";
    fi;
    PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_BIN_PATH}/portageq" 'best_version' "${ROOT}" "$1";
    local retval=$?;
    case "${retval}" in 
        0)
            return 0
        ;;
        1)
            return 1
        ;;
        *)
            die "unexpected portageq exit code: ${retval}"
        ;;
    esac
}
built_with_use () 
{ 
    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=${ROOT}/var/db/pkg/${PKG}/USE;
    local IUSEFILE=${ROOT}/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" ]]
}
cdrom_get_cds () 
{ 
    local cdcnt=0;
    local f=;
    for f in "$@";
    do
        ((++cdcnt));
        export CDROM_CHECK_${cdcnt}="$f";
    done;
    export CDROM_TOTAL_CDS=${cdcnt};
    export CDROM_CURRENT_CD=1;
    if [[ -n ${CD_ROOT}${CD_ROOT_1} ]]; then
        local var=;
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            var="CD_ROOT_${cdcnt}";
            [[ -z ${!var} ]] && var="CD_ROOT";
            if [[ -z ${!var} ]]; then
                eerror "You must either use just the CD_ROOT";
                eerror "or specify ALL the CD_ROOT_X variables.";
                eerror "In this case, you will need ${CDROM_TOTAL_CDS} CD_ROOT_X variables.";
                die "could not locate CD_ROOT_${cdcnt}";
            fi;
        done;
        export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}};
        einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}";
        export CDROM_SET=-1;
        for f in ${CDROM_CHECK_1//:/ };
        do
            ((++CDROM_SET));
            [[ -e ${CD_ROOT}/${f} ]] && break;
        done;
        export CDROM_MATCH=${f};
        return;
    fi;
    if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then
        einfo "This ebuild will need the ${CDROM_NAME:-cdrom for ${PN}}";
        echo;
        einfo "If you do not have the CD, but have the data files";
        einfo "mounted somewhere on your filesystem, just export";
        einfo "the variable CD_ROOT so that it points to the";
        einfo "directory containing the files.";
        echo;
        einfo "For example:";
        einfo "export CD_ROOT=/mnt/cdrom";
        echo;
    else
        if [[ -n ${CDROM_NAME_SET} ]]; then
            cdcnt=0;
            while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
                ((++cdcnt));
                export CDROM_NAME_${cdcnt}="${CDROM_NAME_SET[$((${cdcnt}-1))]}";
            done;
        fi;
        einfo "This package will need access to ${CDROM_TOTAL_CDS} cds.";
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            var="CDROM_NAME_${cdcnt}";
            [[ ! -z ${!var} ]] && einfo " CD ${cdcnt}: ${!var}";
        done;
        echo;
        einfo "If you do not have the CDs, but have the data files";
        einfo "mounted somewhere on your filesystem, just export";
        einfo "the following variables so they point to the right place:";
        einfon "";
        cdcnt=0;
        while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do
            ((++cdcnt));
            echo -n " CD_ROOT_${cdcnt}";
        done;
        echo;
        einfo "Or, if you have all the files in the same place, or";
        einfo "you only have one cdrom, you can export CD_ROOT";
        einfo "and that place will be used as the same data source";
        einfo "for all the CDs.";
        echo;
        einfo "For example:";
        einfo "export CD_ROOT_1=/mnt/cdrom";
        echo;
    fi;
    export CDROM_SET="";
    export CDROM_CURRENT_CD=0;
    cdrom_load_next_cd
}
cdrom_load_next_cd () 
{ 
    local var;
    ((++CDROM_CURRENT_CD));
    unset CDROM_ROOT;
    var=CD_ROOT_${CDROM_CURRENT_CD};
    [[ -z ${!var} ]] && var="CD_ROOT";
    if [[ -z ${!var} ]]; then
        var="CDROM_CHECK_${CDROM_CURRENT_CD}";
        _cdrom_locate_file_on_cd ${!var};
    else
        export CDROM_ROOT=${!var};
    fi;
    einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"
}
check_KV () 
{ 
    if [ -z "${KV}" ]; then
        eerror "";
        eerror "Could not determine your kernel version.";
        eerror "Make sure that you have a /usr/src/linux symlink,";
        eerror "and that the indicated kernel has been configured.";
        eerror "You can also simply run the following command";
        eerror "in the directory referenced by /usr/src/linux:";
        eerror " make include/linux/version.h";
        eerror "";
        die;
    fi
}
check_extra_config () 
{ 
    local config negate die error reworkmodulenames;
    local soft_errors_count=0 hard_errors_count=0 config_required=0;
    get_version;
    for config in ${CONFIG_CHECK};
    do
        if [[ "${config:0:1}" != "~" ]]; then
            config_required=1;
            break;
        fi;
    done;
    if [[ ${config_required} == 0 ]]; then
        if ! linux_config_exists; then
            return 0;
        fi;
    else
        require_configured_kernel;
    fi;
    einfo "Checking for suitable kernel configuration options...";
    for config in ${CONFIG_CHECK};
    do
        die=1;
        error=0;
        negate=0;
        reworkmodulenames=0;
        if [[ ${config:0:1} == "~" ]]; then
            die=0;
            config=${config:1};
        else
            if [[ ${config:0:1} == "@" ]]; then
                die=0;
                reworkmodulenames=1;
                config=${config:1};
            fi;
        fi;
        if [[ ${config:0:1} == "!" ]]; then
            negate=1;
            config=${config:1};
        fi;
        if [[ ${negate} == 1 ]]; then
            linux_chkconfig_present ${config} && error=2;
        else
            if [[ ${reworkmodulenames} == 1 ]]; then
                local temp_config="${config//*:}" i n;
                config="${config//:*}";
                if linux_chkconfig_present ${config}; then
                    for i in ${MODULE_NAMES};
                    do
                        n="${i//${temp_config}}";
                        [[ -z ${n//\(*} ]] && MODULE_IGNORE="${MODULE_IGNORE} ${temp_config}";
                    done;
                    error=2;
                fi;
            else
                linux_chkconfig_present ${config} || error=1;
            fi;
        fi;
        if [[ ${error} > 0 ]]; then
            local report_func="eerror" local_error;
            local_error="ERROR_${config}";
            local_error="${!local_error}";
            if [[ -z "${local_error}" ]]; then
                local_error="${config}_ERROR";
                local_error="${!local_error}";
            fi;
            if [[ ${die} == 0 && -z "${local_error}" ]]; then
                local_error="WARNING_${config}";
                local_error="${!local_error}";
                if [[ -n "${local_error}" ]]; then
                    report_func="ewarn";
                fi;
            fi;
            if [[ -z "${local_error}" ]]; then
                [[ ${error} == 1 ]] && local_error="is not set when it should be." || local_error="should not be set. But it is.";
                local_error="CONFIG_${config}:\t ${local_error}";
            fi;
            if [[ ${die} == 0 ]]; then
                ${report_func} "  ${local_error}";
                soft_errors_count=$[soft_errors_count + 1];
            else
                ${report_func} "  ${local_error}";
                hard_errors_count=$[hard_errors_count + 1];
            fi;
        fi;
    done;
    if [[ ${hard_errors_count} > 0 ]]; then
        eerror "Please check to make sure these options are set correctly.";
        eerror "Failure to do so may cause unexpected problems.";
        eerror "Once you have satisfied these options, please try merging";
        eerror "this package again.";
        die "Incorrect kernel configuration options";
    else
        if [[ ${soft_errors_count} > 0 ]]; then
            ewarn "Please check to make sure these options are set correctly.";
            ewarn "Failure to do so may cause unexpected problems.";
        else
            eend 0;
        fi;
    fi
}
check_kernel_built () 
{ 
    require_configured_kernel;
    get_version;
    if [ ! -f "${KV_OUT_DIR}/include/linux/version.h" ]; then
        eerror "These sources have not yet been prepared.";
        eerror "We cannot build against an unprepared tree.";
        eerror "To resolve this, please type the following:";
        eerror;
        eerror "# cd ${KV_DIR}";
        eerror "# make oldconfig";
        eerror "# make modules_prepare";
        eerror;
        eerror "Then please try merging this module again.";
        die "Kernel sources need compiling first";
    fi
}
check_license () 
{ 
    local lic=$1;
    if [ -z "${lic}" ]; then
        lic="${PORTDIR}/licenses/${LICENSE}";
    else
        if [ -e "${PORTDIR}/licenses/${lic}" ]; then
            lic="${PORTDIR}/licenses/${lic}";
        else
            if [ -e "${PWD}/${lic}" ]; then
                lic="${PWD}/${lic}";
            else
                if [ -e "${lic}" ]; then
                    lic="${lic}";
                fi;
            fi;
        fi;
    fi;
    [ ! -f "${lic}" ] && die "Could not find requested license ${lic}";
    local l="`basename ${lic}`";
    local shopts=$-;
    local alic;
    set -o noglob;
    for alic in ${ACCEPT_LICENSE};
    do
        if [[ ${alic} == ${l} ]]; then
            set +o noglob;
            set -${shopts};
            return 0;
        fi;
    done;
    set +o noglob;
    set -$shopts;
    local licmsg=$(emktemp);
    cat  > ${licmsg} <<-EOF
**********************************************************
The following license outlines the terms of use of this
package.  You MUST accept this license for installation to
continue.  When you are done viewing, hit 'q'.	If you
CTRL+C out of this, the install will not run!
**********************************************************

EOF

    cat ${lic} >> ${licmsg};
    ${PAGER:-less} ${licmsg} || die "Could not execute pager (${PAGER}) to accept ${lic}";
    einfon "Do you accept the terms of this license (${l})? [yes/no] ";
    read alic;
    case ${alic} in 
        yes | Yes | y | Y)
            return 0
        ;;
        *)
            echo;
            echo;
            echo;
            eerror "You MUST accept the license to continue!  Exiting!";
            die "Failed to accept license"
        ;;
    esac
}
check_modules_supported () 
{ 
    require_configured_kernel;
    get_version;
    if ! linux_chkconfig_builtin "MODULES"; then
        eerror "These sources do not support loading external modules.";
        eerror "to be able to use this module please enable \"Loadable modules support\"";
        eerror "in your kernel, recompile and then try merging this module again.";
        die "No support for external modules in ${KV_FULL} config";
    fi
}
check_vermagic () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local curr_gcc_ver=$(gcc -dumpversion);
    local tmpfile old_chost old_gcc_ver result=0;
    tmpfile=`find ${KV_DIR}/ -iname "*.o.cmd" -exec grep usr/lib/gcc {} \; -quit`;
    tmpfile=${tmpfile//*usr/lib};
    tmpfile=${tmpfile//\/include*};
    old_chost=${tmpfile//*gcc\/};
    old_chost=${old_chost//\/*};
    old_gcc_ver=${tmpfile//*\/};
    if [[ -z ${old_gcc_ver} || -z ${old_chost} ]]; then
        ewarn "";
        ewarn "Unable to detect what version of GCC was used to compile";
        ewarn "the kernel. Build will continue, but you may experience problems.";
    else
        if [[ ${curr_gcc_ver} != ${old_gcc_ver} ]]; then
            ewarn "";
            ewarn "The version of GCC you are using (${curr_gcc_ver}) does";
            ewarn "not match the version of GCC used to compile the";
            ewarn "kernel (${old_gcc_ver}).";
            result=1;
        else
            if [[ ${CHOST} != ${old_chost} ]]; then
                ewarn "";
                ewarn "The current CHOST (${CHOST}) does not match the chost";
                ewarn "used when compiling the kernel (${old_chost}).";
                result=1;
            fi;
        fi;
    fi;
    if [[ ${result} -gt 0 ]]; then
        ewarn "";
        ewarn "Build will not continue, because you will experience problems.";
        ewarn "To fix this either change the version of GCC you wish to use";
        ewarn "to match the kernel, or recompile the kernel first.";
        die "GCC Version Mismatch.";
    fi
}
check_zlibinflate () 
{ 
    require_configured_kernel;
    get_version;
    local INFLATE;
    local DEFLATE;
    einfo "Determining the usability of ZLIB_INFLATE support in your kernel";
    ebegin "checking ZLIB_INFLATE";
    getfilevar_isbuiltin CONFIG_ZLIB_INFLATE ${KV_DIR}/.config;
    eend $?;
    [ "$?" != 0 ] && die;
    ebegin "checking ZLIB_DEFLATE";
    getfilevar_isbuiltin CONFIG_ZLIB_DEFLATE ${KV_DIR}/.config;
    eend $?;
    [ "$?" != 0 ] && die;
    local LINENO_START;
    local LINENO_END;
    local SYMBOLS;
    local x;
    LINENO_END="$(grep -n 'CONFIG_ZLIB_INFLATE y' ${KV_DIR}/lib/Config.in | cut -d : -f 1)";
    LINENO_START="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | grep -n 'if \[' | tail -n 1 | cut -d : -f 1)";
    (( LINENO_AMOUNT = $LINENO_END - $LINENO_START ));
    (( LINENO_END = $LINENO_END - 1 ));
    SYMBOLS="$(head -n $LINENO_END ${KV_DIR}/lib/Config.in | tail -n $LINENO_AMOUNT | sed -e 's/^.*\(CONFIG_[^\" ]*\).*/\1/g;')";
    for x in $SYMBOLS;
    do
        if [ "${!x}" = "y" ]; then
            einfo "${x} ensures zlib is linked into your kernel - excellent";
            return 0;
        fi;
    done;
    eerror;
    eerror "This kernel module requires ZLIB library support.";
    eerror "You have enabled zlib support in your kernel, but haven't enabled";
    eerror "enabled any option that will ensure that zlib is linked into your";
    eerror "kernel.";
    eerror;
    eerror "Please ensure that you enable at least one of these options:";
    eerror;
    for x in $SYMBOLS;
    do
        eerror "  * $x";
    done;
    eerror;
    eerror "Please remember to recompile and install your kernel, and reboot";
    eerror "into your new kernel before attempting to load this kernel module.";
    die "Kernel doesn't include zlib support"
}
convert_to_m () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if use_m; then
        [ ! -f "${1}" ] && die "convert_to_m() requires a filename as an argument";
        ebegin "Converting ${1/${WORKDIR}\//} to use M= instead of SUBDIRS=";
        sed -i 's:SUBDIRS=:M=:g' ${1};
        eend $?;
    fi
}
create_ml_includes () 
{ 
    local dest=$1;
    shift;
    local basedirs=$(create_ml_includes-listdirs "$@");
    create_ml_includes-makedestdirs ${dest} ${basedirs};
    local file;
    for file in $(create_ml_includes-allfiles ${basedirs});
    do
        ( echo "/* Autogenerated by create_ml_includes() in multilib.eclass */";
        local dir;
        for dir in ${basedirs};
        do
            if [[ -f ${D}/${dir}/${file} ]]; then
                echo "";
                local sym=$(create_ml_includes-sym_for_dir ${dir} "$@");
                if [[ ${sym/=} != "${sym}" ]]; then
                    echo "#if ${sym}";
                else
                    if [[ ${sym::1} == "!" ]]; then
                        echo "#ifndef ${sym:1}";
                    else
                        echo "#ifdef ${sym}";
                    fi;
                fi;
                echo "# include <$(create_ml_includes-absolute ${dir}/${file})>";
                echo "#endif /* ${sym} */";
            fi;
        done ) > "${D}/${dest}/${file}";
    done
}
create_ml_includes-absolute () 
{ 
    local dst="$(create_ml_includes-tidy_path $1)";
    dst=(${dst//\// });
    local i;
    for ((i=0; i<${#dst[*]}; i++))
    do
        [ "${dst[i]}" == "include" ] && break;
    done;
    local strip_upto=$i;
    for ((i=strip_upto+1; i<${#dst[*]}-1; i++))
    do
        echo -n ${dst[i]}/;
    done;
    echo -n ${dst[i]}
}
create_ml_includes-allfiles () 
{ 
    local basedir file;
    for basedir in "$@";
    do
        for file in $(find "${D}"/${basedir} -type f);
        do
            echo ${file/${D}\/${basedir}\//};
        done;
    done | sort | uniq
}
create_ml_includes-listdirs () 
{ 
    local dirs;
    local data;
    for data in "$@";
    do
        dirs="${dirs} ${data/*:/}";
    done;
    echo ${dirs:1}
}
create_ml_includes-makedestdirs () 
{ 
    local dest=$1;
    shift;
    local basedirs=$@;
    dodir ${dest};
    local basedir;
    for basedir in ${basedirs};
    do
        local dir;
        for dir in $(find "${D}"/${basedir} -type d);
        do
            dodir ${dest}/${dir/${D}\/${basedir}/};
        done;
    done
}
create_ml_includes-sym_for_dir () 
{ 
    local dir=$1;
    shift;
    local data;
    for data in "$@";
    do
        if [[ ${data} == *:${dir} ]]; then
            echo ${data/:*/};
            return 0;
        fi;
    done;
    echo "Shouldn't be here -- create_ml_includes-sym_for_dir $1 $@";
    exit 1
}
create_ml_includes-tidy_path () 
{ 
    local removed=$1;
    if [ -n "${removed}" ]; then
        while [ "${removed}" != "${removed/\/\//\/}" ]; do
            removed=${removed/\/\//\/};
        done;
        while [ "${removed}" != "${removed//\/.\//\/}" ]; do
            removed=${removed//\/.\//\/};
        done;
        [ "${removed##*/}" = "." ] && removed=${removed%/*};
        while [ "${removed}" != "${removed//\/..\/}" ]; do
            local p1="${removed%%\/..\/*}";
            local p2="${removed#*\/..\/}";
            removed="${p1%\/*}/${p2}";
        done;
        [ "${removed##*/}" = ".." ] && removed=${removed%/*/*};
        [ "${removed##*/}" = "" ] && removed=${removed%/*};
        echo ${removed};
    fi
}
debug-print () 
{ 
    [ ! -d "$T" ] && return 0;
    while [ "$1" ]; do
        if [ "$ECLASS_DEBUG_OUTPUT" == "on" ]; then
            echo "debug: $1" 1>&2;
        else
            if [ -n "$ECLASS_DEBUG_OUTPUT" ]; then
                echo "debug: $1" >> $ECLASS_DEBUG_OUTPUT;
            fi;
        fi;
        echo "$1" 2> /dev/null >> "${T}/eclass-debug.log";
        chmod g+w "${T}/eclass-debug.log" >&/dev/null;
        shift;
    done
}
debug-print-function () 
{ 
    str="$1: entering function";
    shift;
    debug-print "$str, parameters: $*"
}
debug-print-section () 
{ 
    debug-print "now in section $*"
}
default () 
{ 
    die "default() is not supported with EAPI='0' during phase pkg_setup"
}
default_pkg_nofetch () 
{ 
    die "default_pkg_nofetch() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_compile () 
{ 
    die "default_src_compile() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_configure () 
{ 
    die "default_src_configure() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_install () 
{ 
    die "default_src_install() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_prepare () 
{ 
    die "default_src_prepare() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_test () 
{ 
    die "default_src_test() is not supported with EAPI='0' during phase pkg_setup"
}
default_src_unpack () 
{ 
    die "default_src_unpack() is not supported with EAPI='0' during phase pkg_setup"
}
delete_all_version_separators () 
{ 
    __versionator_shopt_toggle on;
    replace_all_version_separators "" "${1}";
    __versionator_shopt_toggle off
}
delete_version_separator () 
{ 
    __versionator_shopt_toggle on;
    replace_version_separator "${1}" "" "${2}";
    __versionator_shopt_toggle off
}
die () 
{ 
    set +e;
    if [ -n "${QA_INTERCEPTORS}" ]; then
        unset -f ${QA_INTERCEPTORS};
        unset QA_INTERCEPTORS;
    fi;
    local n filespacing=0 linespacing=0;
    for ((n = ${#FUNCNAME[@]} - 1; n >= 0; --n))
    do
        sourcefile=${BASH_SOURCE[${n}]} sourcefile=${sourcefile##*/};
        lineno=${BASH_LINENO[${n}]};
        ((filespacing < ${#sourcefile})) && filespacing=${#sourcefile};
        ((linespacing < ${#lineno})) && linespacing=${#lineno};
    done;
    eerror;
    eerror "ERROR: $CATEGORY/$PF failed.";
    dump_trace 2 ${filespacing} ${linespacing};
    eerror "  $(printf "%${filespacing}s" "${BASH_SOURCE[1]##*/}"), line $(printf "%${linespacing}s" "${BASH_LINENO[0]}"):  Called die";
    eerror "The specific snippet of code:";
    sed -n -e "# When we get to the line that failed, append it to the
		    # hold space, move the hold space to the pattern space,
		    # then print out the pattern space and quit immediately
		    ${BASH_LINENO[0]}{H;g;p;q}" -e '# If this line ends with a line continuation, append it
		    # to the hold space
		    /\\$/H' -e '# If this line does not end with a line continuation,
		    # erase the line and set the hold buffer to it (thus
		    # erasing the hold buffer in the process)
		    /[^\]$/{s:^.*$::;h}' ${BASH_SOURCE[1]} | sed -e '1d' -e 's:^:RETAIN-LEADING-SPACE:' | while read -r n; do
        eerror "  ${n#RETAIN-LEADING-SPACE}";
    done;
    eerror " The die message:";
    eerror "  ${*:-(no error message)}";
    eerror;
    eerror "If you need support, post the topmost build error, and the call stack if relevant.";
    [[ -n ${PORTAGE_LOG_FILE} ]] && eerror "A complete build log is located at '${PORTAGE_LOG_FILE}'.";
    if [ -f "${T}/environment" ]; then
        eerror "The ebuild environment file is located at '${T}/environment'.";
    else
        if [ -d "${T}" ]; then
            { 
                set;
                export
            } > "${T}/die.env";
            eerror "The ebuild environment file is located at '${T}/die.env'.";
        fi;
    fi;
    if [[ -n ${EBUILD_OVERLAY_ECLASSES} ]]; then
        eerror "This ebuild used the following eclasses from overlays:";
        local x;
        for x in ${EBUILD_OVERLAY_ECLASSES};
        do
            eerror "  ${x}";
        done;
    fi;
    if [ "${EMERGE_FROM}" != "binary" ] && ! hasq ${EBUILD_PHASE} prerm postrm && [ "${EBUILD#${PORTDIR}/}" == "${EBUILD}" ]; then
        local overlay=${EBUILD%/*};
        overlay=${overlay%/*};
        overlay=${overlay%/*};
        if [[ -n $PORTAGE_REPO_NAME ]]; then
            eerror "This ebuild is from an overlay named" "'$PORTAGE_REPO_NAME': '${overlay}/'";
        else
            eerror "This ebuild is from an overlay: '${overlay}/'";
        fi;
    else
        if [[ -n $PORTAGE_REPO_NAME && -f "$PORTDIR"/profiles/repo_name ]]; then
            local portdir_repo_name=$(<"$PORTDIR"/profiles/repo_name);
            if [[ -n $portdir_repo_name && $portdir_repo_name != $PORTAGE_REPO_NAME ]]; then
                eerror "This ebuild is from a repository" "named '$PORTAGE_REPO_NAME'";
            fi;
        fi;
    fi;
    eerror;
    if [[ "${EBUILD_PHASE/depend}" == "${EBUILD_PHASE}" ]]; then
        local x;
        for x in $EBUILD_DEATH_HOOKS;
        do
            ${x} "$@" 1>&2 1>&2;
        done;
    fi;
    [ -n "$EBUILD_EXIT_STATUS_FILE" ] &&  > "$EBUILD_EXIT_STATUS_FILE";
    kill -s SIGTERM ${EBUILD_MASTER_PID};
    exit 1
}
diefunc () 
{ 
    die "${@}"
}
diropts () 
{ 
    export DIROPTIONS="$@"
}
dlopen_lib () 
{ 
    if [[ ${CHOST} == *-linux-gnu || ${CHOST} == *-linux-uclibc ]]; then
        echo "-ldl";
    fi
}
do_newdepend () 
{ 
    debug-print-function do_newdepend $*;
    [ -z "$1" ] && die "do_newdepend without arguments";
    [[ ${ECLASS_DEPTH} > 0 ]] && TARGET="E_$1";
    [[ ${ECLASS_DEPTH} > 0 ]] || TARGET="$1";
    shift;
    while [ -n "$1" ]; do
        eval export ${TARGET}=\"\${${TARGET}} \$1\";
        shift;
    done
}
docinto () 
{ 
    if [ "$1" == "/" ]; then
        export _E_DOCDESTTREE_="";
    else
        export _E_DOCDESTTREE_="$1";
        if [ ! -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
            install -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}";
        fi;
    fi
}
doicon () 
{ 
    ( local i j ret;
    insinto /usr/share/pixmaps;
    for i in "$@";
    do
        if [[ -f ${i} ]]; then
            doins "${i}";
            ((ret+=$?));
        else
            if [[ -d ${i} ]]; then
                for j in "${i}"/*.png;
                do
                    doins "${j}";
                    ((ret+=$?));
                done;
            else
                ((++ret));
            fi;
        fi;
    done;
    exit ${ret} )
}
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} )
}
dump_trace () 
{ 
    local funcname="" sourcefile="" lineno="" s="yes" n p;
    declare -i strip=${1:-1};
    local filespacing=$2 linespacing=$3;
    (( n = ${#FUNCNAME[@]} - 1 ));
    (( p = ${#BASH_ARGV[@]} ));
    while (( n > 0 )); do
        [ "${FUNCNAME[${n}]}" == "qa_call" ] && break;
        (( p -= ${BASH_ARGC[${n}]} ));
        (( n-- ));
    done;
    if (( n == 0 )); then
        (( n = ${#FUNCNAME[@]} - 1 ));
        (( p = ${#BASH_ARGV[@]} ));
    fi;
    eerror "Call stack:";
    while (( n > ${strip} )); do
        funcname=${FUNCNAME[${n} - 1]};
        sourcefile=$(basename ${BASH_SOURCE[${n}]});
        lineno=${BASH_LINENO[${n} - 1]};
        args=;
        if [[ -n "${BASH_ARGV[@]}" ]]; then
            for ((j = 1 ; j <= ${BASH_ARGC[${n} - 1]} ; ++j ))
            do
                newarg=${BASH_ARGV[$(( p - j - 1 ))]};
                args="${args:+${args} }'${newarg}'";
            done;
            (( p -= ${BASH_ARGC[${n} - 1]} ));
        fi;
        eerror "  $(printf "%${filespacing}s" "${sourcefile}"), line $(printf "%${linespacing}s" "${lineno}"):  Called ${funcname}${args:+ ${args}}";
        (( n-- ));
    done
}
dyn_clean () 
{ 
    if [ -z "${PORTAGE_BUILDDIR}" ]; then
        echo "Aborting clean phase because PORTAGE_BUILDDIR is unset!";
        return 1;
    else
        if [ ! -d "${PORTAGE_BUILDDIR}" ]; then
            return 0;
        fi;
    fi;
    if hasq chflags $FEATURES; then
        chflags -R noschg,nouchg,nosappnd,nouappnd "${PORTAGE_BUILDDIR}";
        chflags -R nosunlnk,nouunlnk "${PORTAGE_BUILDDIR}" 2> /dev/null;
    fi;
    rm -rf "${PORTAGE_BUILDDIR}/image" "${PORTAGE_BUILDDIR}/homedir";
    rm -f "${PORTAGE_BUILDDIR}/.installed";
    if [[ $EMERGE_FROM = binary ]] || ! hasq keeptemp $FEATURES && ! hasq keepwork $FEATURES; then
        rm -rf "${T}";
    fi;
    if [[ $EMERGE_FROM = binary ]] || ! hasq keepwork $FEATURES; then
        rm -f "$PORTAGE_BUILDDIR"/.{ebuild_changed,exit_status,logid,unpacked,prepared} "$PORTAGE_BUILDDIR"/.{configured,compiled,tested,packaged};
        rm -rf "${PORTAGE_BUILDDIR}/build-info";
        rm -rf "${WORKDIR}";
    fi;
    if [ -f "${PORTAGE_BUILDDIR}/.unpacked" ]; then
        find "${PORTAGE_BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir >&/dev/null;
    fi;
    rm -rf "${PORTAGE_BUILDDIR}/distdir";
    cd "$PORTAGE_BUILDDIR"/../..;
    rmdir "$PORTAGE_BUILDDIR" "${PORTAGE_BUILDDIR%/*}" 2> /dev/null;
    true
}
dyn_compile () 
{ 
    if [[ -e $PORTAGE_BUILDDIR/.compiled ]]; then
        vecho ">>> It appears that '${PF}' is already compiled; skipping.";
        vecho ">>> Remove '$PORTAGE_BUILDDIR/.compiled' to force compilation.";
        return 0;
    fi;
    trap abort_compile SIGINT SIGQUIT;
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    ebuild_phase pre_src_compile;
    vecho ">>> Compiling source in ${srcdir} ...";
    ebuild_phase src_compile;
    touch "$PORTAGE_BUILDDIR"/.compiled;
    vecho ">>> Source compiled.";
    ebuild_phase post_src_compile;
    trap - SIGINT SIGQUIT
}
dyn_configure () 
{ 
    if [[ -e $PORTAGE_BUILDDIR/.configured ]]; then
        vecho ">>> It appears that '$PF' is already configured; skipping.";
        vecho ">>> Remove '$PORTAGE_BUILDDIR/.configured' to force configuration.";
        return 0;
    fi;
    trap abort_configure SIGINT SIGQUIT;
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    ebuild_phase pre_src_configure;
    vecho ">>> Configuring source in $srcdir ...";
    ebuild_phase src_configure;
    touch "$PORTAGE_BUILDDIR"/.configured;
    vecho ">>> Source configured.";
    ebuild_phase post_src_configure;
    trap - SIGINT SIGQUIT
}
dyn_help () 
{ 
    echo;
    echo "Portage";
    echo "Copyright 1999-2008 Gentoo Foundation";
    echo;
    echo "How to use the ebuild command:";
    echo;
    echo "The first argument to ebuild should be an existing .ebuild file.";
    echo;
    echo "One or more of the following options can then be specified.  If more";
    echo "than one option is specified, each will be executed in order.";
    echo;
    echo "  help        : show this help screen";
    echo "  setup       : execute package specific setup actions";
    echo "  fetch       : download source archive(s) and patches";
    echo "  digest      : create a manifest file for the package";
    echo "  manifest    : create a manifest file for the package";
    echo "  unpack      : unpack sources (auto-dependencies if needed)";
    echo "  prepare     : prepare sources (auto-dependencies if needed)";
    echo "  configure   : configure sources (auto-fetch/unpack if needed)";
    echo "  compile     : compile sources (auto-fetch/unpack/configure if needed)";
    echo "  test        : test package (auto-fetch/unpack/configure/compile if needed)";
    echo "  preinst     : execute pre-install instructions";
    echo "  postinst    : execute post-install instructions";
    echo "  install     : install the package to the temporary install directory";
    echo "  qmerge      : merge image into live filesystem, recording files in db";
    echo "  merge       : do fetch, unpack, compile, install and qmerge";
    echo "  prerm       : execute pre-removal instructions";
    echo "  postrm      : execute post-removal instructions";
    echo "  unmerge     : remove package from live filesystem";
    echo "  config      : execute package specific configuration actions";
    echo "  package     : create a tarball package in ${PKGDIR}/All";
    echo "  rpm         : build a RedHat RPM package";
    echo "  clean       : clean up all source and temporary files";
    echo;
    echo "The following settings will be used for the ebuild process:";
    echo;
    echo "  package     : ${PF}";
    echo "  slot        : ${SLOT}";
    echo "  category    : ${CATEGORY}";
    echo "  description : ${DESCRIPTION}";
    echo "  system      : ${CHOST}";
    echo "  c flags     : ${CFLAGS}";
    echo "  c++ flags   : ${CXXFLAGS}";
    echo "  make flags  : ${MAKEOPTS}";
    echo -n "  build mode  : ";
    if hasq nostrip ${FEATURES} ${RESTRICT} || hasq strip ${RESTRICT}; then
        echo "debug (large)";
    else
        echo "production (stripped)";
    fi;
    echo "  merge to    : ${ROOT}";
    echo;
    if [ -n "$USE" ]; then
        echo "Additionally, support for the following optional features will be enabled:";
        echo;
        echo "  ${USE}";
    fi;
    echo
}
dyn_install () 
{ 
    [ -z "$PORTAGE_BUILDDIR" ] && die "${FUNCNAME}: PORTAGE_BUILDDIR is unset";
    if hasq noauto $FEATURES; then
        rm -f "${PORTAGE_BUILDDIR}/.installed";
    else
        if [[ -e $PORTAGE_BUILDDIR/.installed ]]; then
            vecho ">>> It appears that '${PF}' is already installed; skipping.";
            vecho ">>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install.";
            return 0;
        fi;
    fi;
    trap "abort_install" SIGINT SIGQUIT;
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    ebuild_phase pre_src_install;
    rm -rf "${PORTAGE_BUILDDIR}/image";
    mkdir "${PORTAGE_BUILDDIR}/image";
    if [ -d "${S}" ]; then
        cd "${S}";
    else
        cd "${WORKDIR}";
    fi;
    vecho;
    vecho ">>> Install ${PF} into ${D} category ${CATEGORY}";
    export S D;
    export PWORKDIR="$WORKDIR";
    export DESTTREE=/usr;
    export INSDESTTREE="";
    export _E_EXEDESTTREE_="";
    export _E_DOCDESTTREE_="";
    ebuild_phase src_install;
    touch "${PORTAGE_BUILDDIR}/.installed";
    vecho ">>> Completed installing ${PF} into ${D}";
    vecho;
    ebuild_phase post_src_install;
    cd "${PORTAGE_BUILDDIR}"/build-info;
    set -f;
    local f x;
    IFS=' 	
\r';
    for f in ASFLAGS CATEGORY CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS DEFINED_PHASES DEPEND EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE FEATURES INHERITED IUSE LDFLAGS LIBCFLAGS LIBCXXFLAGS LICENSE PDEPEND PF PKGUSE PROPERTIES PROVIDE RDEPEND RESTRICT SLOT KEYWORDS HOMEPAGE SRC_URI DESCRIPTION;
    do
        x=$(echo -n ${!f});
        [[ -n $x ]] && echo "$x" > $f;
    done;
    echo "${USE}" > USE;
    echo "${EAPI:-0}" > EAPI;
    set +f;
    unset f;
    save_ebuild_env --exclude-init-phases | filter_readonly_variables --filter-sandbox --allow-extra-vars > environment;
    bzip2 -f9 environment;
    cp "${EBUILD}" "${PF}.ebuild";
    [ -n "${PORTAGE_REPO_NAME}" ] && echo "${PORTAGE_REPO_NAME}" > repository;
    if hasq nostrip ${FEATURES} ${RESTRICT} || hasq strip ${RESTRICT}; then
        touch DEBUGBUILD;
    fi;
    trap - SIGINT SIGQUIT
}
dyn_preinst () 
{ 
    if [ -z "${D}" ]; then
        eerror "${FUNCNAME}: D is unset";
        return 1;
    fi;
    ebuild_phase_with_hooks pkg_preinst
}
dyn_prepare () 
{ 
    if [[ -e $PORTAGE_BUILDDIR/.prepared ]]; then
        vecho ">>> It appears that '$PF' is already prepared; skipping.";
        vecho ">>> Remove '$PORTAGE_BUILDDIR/.prepared' to force prepare.";
        return 0;
    fi;
    local srcdir;
    if [[ -d $S ]]; then
        srcdir=$S;
    else
        srcdir=$WORKDIR;
    fi;
    cd "$srcdir";
    trap abort_prepare SIGINT SIGQUIT;
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    ebuild_phase pre_src_prepare;
    vecho ">>> Preparing source in $srcdir ...";
    ebuild_phase src_prepare;
    touch "$PORTAGE_BUILDDIR"/.prepared;
    vecho ">>> Source prepared.";
    ebuild_phase post_src_prepare;
    trap - SIGINT SIGQUIT
}
dyn_setup () 
{ 
    ebuild_phase_with_hooks pkg_setup
}
dyn_test () 
{ 
    if [ "${EBUILD_FORCE_TEST}" == "1" ]; then
        rm -f "${PORTAGE_BUILDDIR}/.tested";
        ! hasq test ${USE} && export USE="${USE} test";
    fi;
    if [[ -e $PORTAGE_BUILDDIR/.tested ]]; then
        vecho ">>> It appears that ${PN} has already been tested; skipping.";
        return;
    fi;
    trap "abort_test" SIGINT SIGQUIT;
    if [ -d "${S}" ]; then
        cd "${S}";
    else
        cd "${WORKDIR}";
    fi;
    if ! hasq test $FEATURES && [ "${EBUILD_FORCE_TEST}" != "1" ]; then
        vecho ">>> Test phase [not enabled]: ${CATEGORY}/${PF}";
    else
        if hasq test $RESTRICT; then
            ewarn "Skipping make test/check due to ebuild restriction.";
            vecho ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}";
        else
            local save_sp=${SANDBOX_PREDICT};
            addpredict /;
            [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
            ebuild_phase pre_src_test;
            ebuild_phase src_test;
            touch "$PORTAGE_BUILDDIR/.tested" || die "Failed to 'touch .tested' in $PORTAGE_BUILDDIR";
            ebuild_phase post_src_test;
            SANDBOX_PREDICT=${save_sp};
        fi;
    fi;
    trap - SIGINT SIGQUIT
}
dyn_unpack () 
{ 
    local newstuff="no";
    if [ -e "${WORKDIR}" ]; then
        local x;
        local checkme;
        for x in ${AA};
        do
            vecho ">>> Checking ${x}'s mtime...";
            if [ "${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/${x}" -nt "${WORKDIR}" ]; then
                vecho ">>> ${x} has been updated; recreating WORKDIR...";
                newstuff="yes";
                break;
            fi;
        done;
        if [ ! -f "${PORTAGE_BUILDDIR}/.unpacked" ]; then
            vecho ">>> Not marked as unpacked; recreating WORKDIR...";
            newstuff="yes";
        fi;
    fi;
    if [ "${newstuff}" == "yes" ]; then
        rm -rf "${PORTAGE_BUILDDIR}"/{.unpacked,.prepared,.configured,.compiled,.tested,.installed,.packaged,build-info};
        rm -rf "${WORKDIR}";
        if [ -d "${T}" ] && ! hasq keeptemp $FEATURES && ! hasq keepwork $FEATURES; then
            rm -rf "${T}" && mkdir "${T}";
        fi;
    fi;
    if [ -e "${WORKDIR}" ]; then
        if [ "$newstuff" == "no" ]; then
            vecho ">>> WORKDIR is up-to-date, keeping...";
            return 0;
        fi;
    fi;
    if [ ! -d "${WORKDIR}" ]; then
        install -m${PORTAGE_WORKDIR_MODE:-0700} -d "${WORKDIR}" || die "Failed to create dir '${WORKDIR}'";
    fi;
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    cd "${WORKDIR}" || die "Directory change failed: \`cd '${WORKDIR}'\`";
    ebuild_phase pre_src_unpack;
    vecho ">>> Unpacking source...";
    ebuild_phase src_unpack;
    touch "${PORTAGE_BUILDDIR}/.unpacked" || die "IO Failure -- Failed 'touch .unpacked' in ${PORTAGE_BUILDDIR}";
    vecho ">>> Source unpacked in ${WORKDIR}";
    ebuild_phase post_src_unpack
}
ebeep () 
{ 
    local n;
    if [[ -z ${EBEEP_IGNORE} ]]; then
        for ((n=1 ; n <= ${1:-5} ; n++))
        do
            echo -ne "\a";
            sleep 0.1 >&/dev/null;
            sleep 0,1 >&/dev/null;
            echo -ne "\a";
            sleep 1;
        done;
    fi
}
ebegin () 
{ 
    local msg="$*" dots spaces=${RC_DOT_PATTERN//?/ };
    if [[ -n ${RC_DOT_PATTERN} ]]; then
        dots=$(printf "%$(( COLS - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" '');
        dots=${dots//${spaces}/${RC_DOT_PATTERN}};
        msg="${msg}${dots}";
    else
        msg="${msg} ...";
    fi;
    einfon "${msg}";
    [[ ${RC_ENDCOL} == "yes" ]] && echo;
    LAST_E_LEN=$(( 3 + ${#RC_INDENTATION} + ${#msg} ));
    LAST_E_CMD="ebegin";
    return 0
}
ebuild_main () 
{ 
    local f x;
    if ! hasq $EBUILD_SH_ARGS clean depend help info nofetch; then
        if hasq distcc $FEATURES; then
            export PATH="/usr/lib/distcc/bin:$PATH";
            [[ -n $DISTCC_LOG ]] && addwrite "${DISTCC_LOG%/*}";
        fi;
        if hasq ccache $FEATURES; then
            export PATH="/usr/lib/ccache/bin:$PATH";
            addread "$CCACHE_DIR";
            addwrite "$CCACHE_DIR";
            [[ -n $CCACHE_SIZE ]] && ccache -M $CCACHE_SIZE >&/dev/null;
        else
            export CCACHE_DISABLE=1;
        fi;
    fi;
    if [[ $EBUILD_PHASE != depend ]]; then
        local phase_func=$(_ebuild_arg_to_phase "$EAPI" "$EBUILD_PHASE");
        [[ -n $phase_func ]] && _ebuild_phase_funcs "$EAPI" "$phase_func";
        unset phase_func;
    fi;
    source_all_bashrcs;
    case ${EBUILD_SH_ARGS} in 
        nofetch)
            ebuild_phase_with_hooks pkg_nofetch;
            exit 1
        ;;
        prerm | postrm | postinst | config | info)
            if hasq "$EBUILD_SH_ARGS" config info && ! declare -F "pkg_$EBUILD_SH_ARGS" > /dev/null; then
                ewarn "pkg_${EBUILD_SH_ARGS}() is not defined: '${EBUILD##*/}'";
            fi;
            export SANDBOX_ON="0";
            if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
                ebuild_phase_with_hooks pkg_${EBUILD_SH_ARGS};
            else
                set -x;
                ebuild_phase_with_hooks pkg_${EBUILD_SH_ARGS};
                set +x;
            fi;
            if [[ $EBUILD_PHASE == postinst ]] && [[ -n $PORTAGE_UPDATE_ENV ]]; then
                save_ebuild_env --exclude-init-phases | filter_readonly_variables --filter-sandbox --allow-extra-vars | bzip2 -c -f9 > "$PORTAGE_UPDATE_ENV";
            fi
        ;;
        unpack | prepare | configure | compile | test | clean | install)
            if [[ ${SANDBOX_DISABLED:-0} = 0 ]]; then
                export SANDBOX_ON="1";
            else
                export SANDBOX_ON="0";
            fi;
            case "$EBUILD_SH_ARGS" in 
                configure | compile)
                    for x in ASFLAGS CCACHE_DIR CCACHE_SIZE CFLAGS CXXFLAGS LDFLAGS LIBCFLAGS LIBCXXFLAGS;
                    do
                        [[ ${!x-unset} != unset ]] && export $x;
                    done;
                    hasq distcc $FEATURES && [[ -n $DISTCC_DIR ]] && [[ ${SANDBOX_WRITE/$DISTCC_DIR} = $SANDBOX_WRITE ]] && addwrite "$DISTCC_DIR";
                    x=LIBDIR_$ABI;
                    [ -z "$PKG_CONFIG_PATH" -a -n "$ABI" -a -n "${!x}" ] && export PKG_CONFIG_PATH=/usr/${!x}/pkgconfig;
                    if hasq noauto $FEATURES && [[ ! -f $PORTAGE_BUILDDIR/.unpacked ]]; then
                        echo;
                        echo "!!! We apparently haven't unpacked..." "This is probably not what you";
                        echo "!!! want to be doing... You are using" "FEATURES=noauto so I'll assume";
                        echo "!!! that you know what you are doing..." "You have 5 seconds to abort...";
                        echo;
                        local x;
                        for x in 1 2 3 4 5 6 7 8;
                        do
                            echo -ne "\a";
                            LC_ALL=C sleep 0.25;
                        done;
                        sleep 3;
                    fi;
                    cd "$PORTAGE_BUILDDIR";
                    if [ ! -d build-info ]; then
                        mkdir build-info;
                        cp "$EBUILD" "build-info/$PF.ebuild";
                    fi;
                    local srcdir;
                    if [[ -d $S ]]; then
                        srcdir=$S;
                    else
                        srcdir=$WORKDIR;
                    fi;
                    cd "$srcdir";
                    export S D;
                    export PWORKDIR=$WORKDIR
                ;;
            esac;
            if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
                dyn_${EBUILD_SH_ARGS};
            else
                set -x;
                dyn_${EBUILD_SH_ARGS};
                set +x;
            fi;
            export SANDBOX_ON="0"
        ;;
        help | setup | preinst)
            export SANDBOX_ON="0";
            if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
                dyn_${EBUILD_SH_ARGS};
            else
                set -x;
                dyn_${EBUILD_SH_ARGS};
                set +x;
            fi
        ;;
        depend)
            export SANDBOX_ON="0";
            set -f;
            if [ -n "${dbkey}" ]; then
                if [ ! -d "${dbkey%/*}" ]; then
                    install -d -g ${PORTAGE_GID} -m2775 "${dbkey%/*}";
                fi;
                umask 002;
            fi;
            auxdbkeys="DEPEND RDEPEND SLOT SRC_URI RESTRICT HOMEPAGE LICENSE
			DESCRIPTION KEYWORDS INHERITED IUSE CDEPEND PDEPEND PROVIDE EAPI
			PROPERTIES DEFINED_PHASES UNUSED_05 UNUSED_04
			UNUSED_03 UNUSED_02 UNUSED_01";
            unset CDEPEND;
            [ -n "${EAPI}" ] || EAPI=0;
            local eapi=$EAPI;
            if [ -n "${dbkey}" ]; then
                 > "${dbkey}";
                for f in ${auxdbkeys};
                do
                    echo $(echo ${!f}) >> "${dbkey}" || exit $?;
                done;
            else
                for f in ${auxdbkeys};
                do
                    echo $(echo ${!f}) 1>&9 || exit $?;
                done;
                exec 9>&-;
            fi;
            set +f
        ;;
        *)
            export SANDBOX_ON="1";
            echo "Unrecognized EBUILD_SH_ARGS: '${EBUILD_SH_ARGS}'";
            echo;
            dyn_help;
            exit 1
        ;;
    esac;
    if [ -n "$EBUILD_EXIT_STATUS_FILE" ]; then
         > "$EBUILD_EXIT_STATUS_FILE" || die "failed to create '$EBUILD_EXIT_STATUS_FILE'";
    fi
}
ebuild_phase () 
{ 
    declare -F "$1" > /dev/null && qa_call $1
}
ebuild_phase_with_hooks () 
{ 
    local x phase_name=${1};
    [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE";
    for x in {pre_,,post_}${phase_name};
    do
        ebuild_phase ${x};
    done
}
econf () 
{ 
    local x;
    local phase_func=$(_ebuild_arg_to_phase "$EAPI" "$EBUILD_PHASE");
    if [[ -n $phase_func ]]; then
        if hasq "$EAPI" 0 1; then
            [[ $phase_func != src_compile ]] && eqawarn "QA Notice: econf called in" "$phase_func instead of src_compile";
        else
            [[ $phase_func != src_configure ]] && eqawarn "QA Notice: econf called in" "$phase_func instead of src_configure";
        fi;
    fi;
    : ${ECONF_SOURCE:=.};
    if [ -x "${ECONF_SOURCE}/configure" ]; then
        if [ -e /usr/share/gnuconfig/ ]; then
            find "${WORKDIR}" -type f '(' -name config.guess -o -name config.sub ')' -print0 | while read -d '' x; do
                vecho " * econf: updating ${x/${WORKDIR}\/} with /usr/share/gnuconfig/${x##*/}";
                cp -f /usr/share/gnuconfig/"${x##*/}" "${x}";
            done;
        fi;
        local CONF_LIBDIR LIBDIR_VAR="LIBDIR_${ABI}";
        if [[ -n ${ABI} && -n ${!LIBDIR_VAR} ]]; then
            CONF_LIBDIR=${!LIBDIR_VAR};
        fi;
        if [[ -n ${CONF_LIBDIR} ]] && ! hasgq --libdir=\* "$@"; then
            export CONF_PREFIX=$(hasg --exec-prefix=\* "$@");
            [[ -z ${CONF_PREFIX} ]] && CONF_PREFIX=$(hasg --prefix=\* "$@");
            : ${CONF_PREFIX:=/usr};
            CONF_PREFIX=${CONF_PREFIX#*=};
            [[ ${CONF_PREFIX} != /* ]] && CONF_PREFIX="/${CONF_PREFIX}";
            [[ ${CONF_LIBDIR} != /* ]] && CONF_LIBDIR="/${CONF_LIBDIR}";
            set -- --libdir="$(strip_duplicate_slashes ${CONF_PREFIX}${CONF_LIBDIR})" "$@";
        fi;
        set -- --prefix=/usr ${CBUILD:+--build=${CBUILD}} --host=${CHOST} ${CTARGET:+--target=${CTARGET}} --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib "$@" ${EXTRA_ECONF};
        vecho "${ECONF_SOURCE}/configure" "$@";
        if ! "${ECONF_SOURCE}/configure" "$@"; then
            if [ -s config.log ]; then
                echo;
                echo "!!! Please attach the following file when seeking support:";
                echo "!!! ${PWD}/config.log";
            fi;
            die "econf failed";
        fi;
    else
        if [ -f "${ECONF_SOURCE}/configure" ]; then
            die "configure is not executable";
        else
            die "no configure script found";
        fi;
    fi
}
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 () 
{ 
    echo "$@" | xargs sed -i 's/\r$//'
}
eend () 
{ 
    local retval=${1:-0};
    shift;
    _eend ${retval} eerror "$*";
    LAST_E_CMD="eend";
    return ${retval}
}
eerror () 
{ 
    elog_base ERROR "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -e "$@" | while read -r; do
        echo " $BAD*$NORMAL $RC_INDENTATION$REPLY" 1>&2;
    done;
    LAST_E_CMD="eerror";
    return 0
}
egetent () 
{ 
    case ${CHOST} in 
        *-darwin9)
            local mytype=$1;
            [[ "passwd" == $mytype ]] && mytype="Users";
            [[ "group" == $mytype ]] && mytype="Groups";
            case "$2" in 
                *[!0-9]*)
                    dscl . -read /$mytype/$2 2> /dev/null | grep RecordName
                ;;
                *)
                    local mykey="UniqueID";
                    [[ $mytype == "Groups" ]] && mykey="PrimaryGroupID";
                    dscl . -search /$mytype $mykey $2 2> /dev/null
                ;;
            esac
        ;;
        *-darwin*)
            case "$2" in 
                *[!0-9]*)
                    nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }"
                ;;
                *)
                    nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }"
                ;;
            esac
        ;;
        *-freebsd* | *-dragonfly*)
            local opts action="user";
            [[ $1 == "passwd" ]] || action="group";
            if [[ $2 == [[:digit:]]* ]]; then
                [[ ${action} == "user" ]] && opts="-u" || opts="-g";
            fi;
            pw show ${action} ${opts} "$2" -q
        ;;
        *-netbsd* | *-openbsd*)
            grep "$2:\*:" /etc/$1
        ;;
        *)
            type -p nscd >&/dev/null && nscd -i "$1";
            getent "$1" "$2"
        ;;
    esac
}
egethome () 
{ 
    ent=$(egetent passwd $1);
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            echo ${ent} | cut -d: -f9
        ;;
        *)
            echo ${ent} | cut -d: -f6
        ;;
    esac
}
egetshell () 
{ 
    ent=$(egetent passwd "$1");
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            echo ${ent} | cut -d: -f10
        ;;
        *)
            echo ${ent} cut -d: -f7
        ;;
    esac
}
einfo () 
{ 
    elog_base INFO "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -e "$@" | while read -r; do
        echo " $GOOD*$NORMAL $REPLY";
    done;
    LAST_E_CMD="einfo";
    return 0
}
einfon () 
{ 
    elog_base INFO "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -ne " ${GOOD}*${NORMAL} $*";
    LAST_E_CMD="einfon";
    return 0
}
einstall () 
{ 
    local LOCAL_EXTRA_EINSTALL="${EXTRA_EINSTALL}";
    LIBDIR_VAR="LIBDIR_${ABI}";
    if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then
        CONF_LIBDIR="${!LIBDIR_VAR}";
    fi;
    unset LIBDIR_VAR;
    if [ -n "${CONF_LIBDIR}" ] && [ "${CONF_PREFIX:-unset}" != "unset" ]; then
        EI_DESTLIBDIR="${D}/${CONF_PREFIX}/${CONF_LIBDIR}";
        EI_DESTLIBDIR="$(strip_duplicate_slashes ${EI_DESTLIBDIR})";
        LOCAL_EXTRA_EINSTALL="libdir=${EI_DESTLIBDIR} ${LOCAL_EXTRA_EINSTALL}";
        unset EI_DESTLIBDIR;
    fi;
    if [ -f ./[mM]akefile -o -f ./GNUmakefile ]; then
        if [ "${PORTAGE_DEBUG}" == "1" ]; then
            ${MAKE:-make} -n prefix="${D}usr" datadir="${D}usr/share" infodir="${D}usr/share/info" localstatedir="${D}var/lib" mandir="${D}usr/share/man" sysconfdir="${D}etc" ${LOCAL_EXTRA_EINSTALL} "$@" install;
        fi;
        ${MAKE:-make} prefix="${D}usr" datadir="${D}usr/share" infodir="${D}usr/share/info" localstatedir="${D}var/lib" mandir="${D}usr/share/man" sysconfdir="${D}etc" ${LOCAL_EXTRA_EINSTALL} "$@" install || die "einstall failed";
    else
        die "no Makefile found";
    fi
}
elog () 
{ 
    elog_base LOG "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -e "$@" | while read -r; do
        echo " $GOOD*$NORMAL $REPLY";
    done;
    LAST_E_CMD="elog";
    return 0
}
elog_base () 
{ 
    local messagetype;
    [ -z "${1}" -o -z "${T}" -o ! -d "${T}/logging" ] && return 1;
    case "${1}" in 
        INFO | WARN | ERROR | LOG | QA)
            messagetype="${1}";
            shift
        ;;
        *)
            vecho -e " ${BAD}*${NORMAL} Invalid use of internal function elog_base(), next message will not be logged";
            return 1
        ;;
    esac;
    echo -e "$@" | while read -r; do
        echo "$messagetype $REPLY" >> "${T}/logging/${EBUILD_PHASE:-other}";
    done;
    return 0
}
emktemp () 
{ 
    local exe="touch";
    [[ $1 == -d ]] && exe="mkdir" && shift;
    local topdir=$1;
    if [[ -z ${topdir} ]]; then
        [[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
    fi;
    if ! type -P mktemp > /dev/null; then
        local tmp=/;
        while [[ -e ${tmp} ]]; do
            tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
        done;
        ${exe} "${tmp}" || ${exe} -p "${tmp}";
        echo "${tmp}";
    else
        if [[ ${exe} == "touch" ]]; then
            TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
        else
            TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
        fi;
    fi
}
enewgroup () 
{ 
    case ${EBUILD_PHASE} in 
        unpack | compile | test | install)
            eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function.";
            eerror "Package fails at QA and at life.  Please file a bug.";
            die "Bad package!  enewgroup is only for use in pkg_* functions!"
        ;;
    esac;
    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 opts=;
    local egid="$1";
    shift;
    if [ ! -z "${egid}" ]; then
        if [ "${egid}" -gt 0 ]; then
            if [ -z "`egetent group ${egid}`" ]; then
                if [[ "${CHOST}" == *-darwin* ]]; then
                    opts="${opts} ${egid}";
                else
                    opts="${opts} -g ${egid}";
                fi;
            else
                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}";
    local eextra="$@";
    opts="${opts} ${eextra}";
    local oldsandbox="${SANDBOX_ON}";
    export SANDBOX_ON="0";
    case ${CHOST} in 
        *-darwin*)
            if [ ! -z "${eextra}" ]; then
                einfo "Extra options are not supported on Darwin/OS X yet";
                einfo "Please report the ebuild along with the info below";
                einfo "eextra: ${eextra}";
                die "Required function missing";
            fi;
            case ${egid} in 
                *[!0-9]*)
                    for ((egid = 101; egid <= 999; egid++))
                    do
                        [[ -z $(egetent group ${egid}) ]] && break;
                    done
                ;;
            esac;
            dscl . create /groups/${egroup} gid ${egid};
            dscl . create /groups/${egroup} passwd '*'
        ;;
        *-freebsd* | *-dragonfly*)
            case ${egid} in 
                *[!0-9]*)
                    for ((egid = 101; egid <= 999; egid++))
                    do
                        [[ -z $(egetent group ${egid}) ]] && break;
                    done
                ;;
            esac;
            pw groupadd ${egroup} -g ${egid} || die "enewgroup failed"
        ;;
        *-netbsd*)
            case ${egid} in 
                *[!0-9]*)
                    for ((egid = 101; egid <= 999; egid++))
                    do
                        [[ -z $(egetent group ${egid}) ]] && break;
                    done
                ;;
            esac;
            groupadd -g ${egid} ${egroup} || die "enewgroup failed"
        ;;
        *)
            groupadd ${opts} ${egroup} || die "enewgroup failed"
        ;;
    esac;
    export SANDBOX_ON="${oldsandbox}"
}
enewuser () 
{ 
    case ${EBUILD_PHASE} in 
        unpack | compile | test | install)
            eerror "'enewuser()' called from '${EBUILD_PHASE}()' which is not a pkg_* function.";
            eerror "Package fails at QA and at life.  Please file a bug.";
            die "Bad package!  enewuser is only for use in pkg_* functions!"
        ;;
    esac;
    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="${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 shell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;
        do
            [[ -x ${ROOT}${shell} ]] && break;
        done;
        if [[ ${shell} == "/dev/null" ]]; then
            eerror "Unable to identify the shell to use, proceeding with userland default.";
            case ${USERLAND} in 
                GNU)
                    shell="/bin/false"
                ;;
                BSD)
                    shell="/sbin/nologin"
                ;;
                Darwin)
                    shell="/usr/sbin/nologin"
                ;;
                *)
                    die "Unable to identify the default shell for userland ${USERLAND}"
                ;;
            esac;
        fi;
        eshell=${shell};
    fi;
    einfo " - Shell: ${eshell}";
    opts="${opts} -s ${eshell}";
    local ehome=$1;
    shift;
    if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then
        ehome="/dev/null";
    fi;
    einfo " - Home: ${ehome}";
    opts="${opts} -d ${ehome}";
    local egroups=$1;
    shift;
    if [[ ! -z ${egroups} ]]; then
        local oldifs=${IFS};
        local defgroup="" exgroups="";
        export IFS=",";
        for g in ${egroups};
        do
            export IFS=${oldifs};
            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="${exgroups},${g}";
            fi;
            export IFS=",";
        done;
        export IFS=${oldifs};
        opts="${opts} -g ${defgroup}";
        if [[ ! -z ${exgroups} ]]; then
            opts="${opts} -G ${exgroups:1}";
        fi;
    else
        egroups="(none)";
    fi;
    einfo " - Groups: ${egroups}";
    local oldsandbox=${SANDBOX_ON};
    export SANDBOX_ON="0";
    case ${CHOST} in 
        *-darwin*)
            if [[ -z $@ ]]; then
                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}";
                local oldifs=${IFS};
                export IFS=",";
                for g in ${egroups};
                do
                    dscl . merge /groups/${g} users ${euser};
                done;
                export IFS=${oldifs};
            else
                einfo "Extra options are not supported on Darwin yet";
                einfo "Please report the ebuild along with the info below";
                einfo "eextra: $@";
                die "Required function missing";
            fi
        ;;
        *-freebsd* | *-dragonfly*)
            if [[ -z $@ ]]; then
                pw useradd ${euser} ${opts} -c "added by portage for ${PN}" die "enewuser failed";
            else
                einfo " - Extra: $@";
                pw useradd ${euser} ${opts} "$@" || die "enewuser failed";
            fi
        ;;
        *-netbsd*)
            if [[ -z $@ ]]; then
                useradd ${opts} ${euser} || die "enewuser failed";
            else
                einfo " - Extra: $@";
                useradd ${opts} ${euser} "$@" || die "enewuser failed";
            fi
        ;;
        *-openbsd*)
            if [[ -z $@ ]]; then
                useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} || die "enewuser failed";
            else
                einfo " - Extra: $@";
                useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} "$@" || die "enewuser failed";
            fi
        ;;
        *)
            if [[ -z $@ ]]; then
                useradd ${opts} ${euser} -c "added by portage for ${PN}" || die "enewuser failed";
            else
                einfo " - Extra: $@";
                useradd ${opts} ${euser} "$@" || die "enewuser failed";
            fi
        ;;
    esac;
    if [[ ! -e ${ROOT}/${ehome} ]]; then
        einfo " - Creating ${ehome} in ${ROOT}";
        mkdir -p "${ROOT}/${ehome}";
        chown ${euser} "${ROOT}/${ehome}";
        chmod 755 "${ROOT}/${ehome}";
    fi;
    export SANDBOX_ON=${oldsandbox}
}
epatch () 
{ 
    function _epatch_draw_line () 
    { 
        [[ -z $1 ]] && set "$(printf "%65s" '')";
        echo "${1//?/=}"
    };
    function _epatch_assert () 
    { 
        local _pipestatus=${PIPESTATUS[*]};
        [[ ${_pipestatus// /} -eq 0 ]]
    };
    local PIPE_CMD="";
    local STDERR_TARGET="${T}/$$.out";
    local PATCH_TARGET="${T}/$$.patch";
    local PATCH_SUFFIX="";
    local SINGLE_PATCH="no";
    local x="";
    unset P4CONFIG P4PORT P4USER;
    if [ "$#" -gt 1 ]; then
        local m="";
        for m in "$@";
        do
            epatch "${m}";
        done;
        return 0;
    fi;
    if [ -n "$1" -a -f "$1" ]; then
        SINGLE_PATCH="yes";
        local EPATCH_SOURCE="$1";
        local EPATCH_SUFFIX="${1##*\.}";
    else
        if [ -n "$1" -a -d "$1" ]; then
            if [ "${EPATCH_FORCE}" = "yes" ] && [ -z "${EPATCH_SUFFIX}" ]; then
                local EPATCH_SOURCE="$1/*";
            else
                local EPATCH_SOURCE="$1/*.${EPATCH_SUFFIX}";
            fi;
        else
            if [[ ! -d ${EPATCH_SOURCE} ]] || [[ -n $1 ]]; then
                if [ -n "$1" -a "${EPATCH_SOURCE}" = "${WORKDIR}/patch" ]; then
                    EPATCH_SOURCE="$1";
                fi;
                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;
            local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}";
        fi;
    fi;
    case ${EPATCH_SUFFIX##*\.} in 
        xz)
            PIPE_CMD="xz -dc";
            PATCH_SUFFIX="xz"
        ;;
        lzma)
            PIPE_CMD="lzma -dc";
            PATCH_SUFFIX="lzma"
        ;;
        bz2)
            PIPE_CMD="bzip2 -dc";
            PATCH_SUFFIX="bz2"
        ;;
        gz | Z | z)
            PIPE_CMD="gzip -dc";
            PATCH_SUFFIX="gz"
        ;;
        ZIP | zip)
            PIPE_CMD="unzip -p";
            PATCH_SUFFIX="zip"
        ;;
        *)
            PIPE_CMD="cat";
            PATCH_SUFFIX="patch"
        ;;
    esac;
    if [ "${SINGLE_PATCH}" = "no" ]; then
        einfo "${EPATCH_MULTI_MSG}";
    fi;
    for x in ${EPATCH_SOURCE};
    do
        if [ -f ${x} ] && ( [ "${SINGLE_PATCH}" = "yes" -o "${x/_all_}" != "${x}" -o "${x/_${ARCH}_}" != "${x}" ] || [ "${EPATCH_FORCE}" = "yes" ] ); then
            local count=0;
            local popts="${EPATCH_OPTS}";
            local patchname=${x##*/};
            if [ -n "${EPATCH_EXCLUDE}" ]; then
                if [ "${EPATCH_EXCLUDE/${patchname}}" != "${EPATCH_EXCLUDE}" ]; then
                    continue;
                fi;
            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;
            echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
            echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
            if [[ ${PATCH_SUFFIX} != "patch" ]]; then
                echo -n "PIPE_COMMAND:	" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                if ! ( ${PIPE_CMD} ${x} > ${PATCH_TARGET} ) >> ${STDERR_TARGET%/*}/${patchname}-${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;
                echo "NOTE: skipping -p0 due to absolute paths in patch:" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo "${abs_paths}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
            fi;
            while [ "${count}" -lt 5 ]; do
                _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo -n "PATCH COMMAND:	 " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                if ( cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f;
                _epatch_assert ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then
                    _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    echo "ACTUALLY APPLYING ${patchname} ..." >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    cat ${PATCH_TARGET} | patch -p${count} ${popts} >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 2>&1;
                    _epatch_assert;
                    if [ "$?" -ne 0 ]; then
                        cat ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
                        echo;
                        eerror "A dry-run of patch command succeeded, but actually";
                        eerror "applying the patch failed!";
                        count=5;
                    fi;
                    rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real;
                    break;
                fi;
                count=$((count + 1));
            done;
            if [ "${PATCH_SUFFIX}" != "patch" ]; then
                rm -f ${PATCH_TARGET};
            fi;
            if [ "${count}" -eq 5 ]; then
                echo;
                eerror "Failed Patch: ${patchname} !";
                eerror " ( ${PATCH_TARGET} )";
                eerror;
                eerror "Include in your bugreport the contents of:";
                eerror;
                eerror "  ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}";
                echo;
                die "Failed Patch: ${patchname}!";
            fi;
            rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/};
            eend 0;
        fi;
    done;
    if [ "${SINGLE_PATCH}" = "no" ]; then
        einfo "Done with patching";
    fi
}
epause () 
{ 
    [[ -z ${EPAUSE_IGNORE} ]] && sleep ${1:-5}
}
epunt_cxx () 
{ 
    local dir=$1;
    [[ -z ${dir} ]] && dir=${S};
    ebegin "Removing useless C++ checks";
    local f;
    find "${dir}" -name configure | while read f; do
        patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null;
    done;
    eend 0
}
eqawarn () 
{ 
    elog_base QA "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -e "$@" | while read -r; do
        vecho " $WARN*$NORMAL $REPLY" 1>&2;
    done;
    LAST_E_CMD="eqawarn";
    return 0
}
esvn_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
esyslog () 
{ 
    return 0
}
ewarn () 
{ 
    elog_base WARN "$*";
    [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
    echo -e "$@" | while read -r; do
        echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" 1>&2;
    done;
    LAST_E_CMD="ewarn";
    return 0
}
exeinto () 
{ 
    if [ "$1" == "/" ]; then
        export _E_EXEDESTTREE_="";
    else
        export _E_EXEDESTTREE_="$1";
        if [ ! -d "${D}${_E_EXEDESTTREE_}" ]; then
            install -d "${D}${_E_EXEDESTTREE_}";
        fi;
    fi
}
exeopts () 
{ 
    export EXEOPTIONS="$@";
    hasq -s ${EXEOPTIONS} && die "Never call exeopts() with -s"
}
filter_invalid_flags () 
{ 
    local flag broken_flags;
    eval broken_flags=($(get_broken_flags $(getPROG CC gcc) c ${CFLAGS}));
    for flag in "${broken_flags[@]}";
    do
        ewarn "Filtering out invalid CFLAG \"${flag}\"";
        CFLAGS="$(remove_flag "${flag}" ${CFLAGS})";
    done;
    eval broken_flags=($(get_broken_flags $(getPROG CXX g++) c++ ${CXXFLAGS}));
    for flag in "${broken_flags[@]}";
    do
        ewarn "Filtering out invalid CXXFLAG \"${flag}\"";
        CXXFLAGS="$(remove_flag "${flag}" ${CXXFLAGS})";
    done
}
filter_readonly_variables () 
{ 
    local x filtered_vars;
    local readonly_bash_vars="DIRSTACK EUID FUNCNAME GROUPS
		PIPESTATUS PPID SHELLOPTS UID";
    local filtered_sandbox_vars="SANDBOX_ACTIVE SANDBOX_BASHRC
		SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
		SANDBOX_LOG SANDBOX_ON";
    filtered_vars="${readonly_bash_vars} ${READONLY_PORTAGE_VARS}
		BASH_.* HISTFILE PATH POSIXLY_CORRECT";
    if hasq --filter-sandbox $*; then
        filtered_vars="${filtered_vars} SANDBOX_.*";
    else
        filtered_vars="${filtered_vars} ${filtered_sandbox_vars}";
    fi;
    if hasq --filter-features $*; then
        filtered_vars="${filtered_vars} FEATURES";
    fi;
    if ! hasq --allow-extra-vars $*; then
        filtered_vars="
			${filtered_vars}
			${PORTAGE_SAVED_READONLY_VARS}
			${PORTAGE_MUTABLE_FILTERED_VARS}
		";
    fi;
    "${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars}"
}
find_module_params () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local matched_offset=0 matched_opts=0 test="${@}" temp_var result;
    local i=0 y=0 z=0;
    for ((i=0; i<=${#test}; i++))
    do
        case ${test:${i}:1} in 
            \()
                matched_offset[0]=${i}
            ;;
            \:)
                matched_opts=$((${matched_opts} + 1));
                matched_offset[${matched_opts}]="${i}"
            ;;
            \))
                matched_opts=$((${matched_opts} + 1));
                matched_offset[${matched_opts}]="${i}"
            ;;
        esac;
    done;
    for ((i=0; i<=${matched_opts}; i++))
    do
        case ${i} in 
            0)
                tempvar=${test:0:${matched_offset[0]}}
            ;;
            *)
                y=$((${matched_offset[$((${i} - 1))]} + 1));
                z=$((${matched_offset[${i}]} - ${matched_offset[$((${i} - 1))]}));
                z=$((${z} - 1));
                tempvar=${test:${y}:${z}}
            ;;
        esac;
        case ${i} in 
            0)
                result="${result} modulename:${tempvar}"
            ;;
            1)
                result="${result} libdir:${tempvar}"
            ;;
            2)
                result="${result} srcdir:${tempvar}"
            ;;
            3)
                result="${result} objdir:${tempvar}"
            ;;
        esac;
    done;
    echo ${result}
}
find_unpackable_file () 
{ 
    local src=$1;
    if [[ -z ${src} ]]; then
        src=${DISTDIR}/${A};
    else
        if [[ -e ${DISTDIR}/${src} ]]; then
            src=${DISTDIR}/${src};
        else
            if [[ -e ${PWD}/${src} ]]; then
                src=${PWD}/${src};
            else
                if [[ -e ${src} ]]; then
                    src=${src};
                fi;
            fi;
        fi;
    fi;
    [[ ! -e ${src} ]] && return 1;
    echo "${src}"
}
gcc-fullversion () 
{ 
    $(tc-getCC "$@") -dumpversion
}
gcc-major-version () 
{ 
    gcc-version "$@" | cut -f1 -d.
}
gcc-micro-version () 
{ 
    gcc-fullversion "$@" | cut -f3 -d. | cut -f1 -d-
}
gcc-minor-version () 
{ 
    gcc-version "$@" | cut -f2 -d.
}
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 "$@" | cut -f1,2 -d.
}
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;
    dodir /usr/${libdir};
    if [[ $1 == "-a" ]]; then
        auto=true;
        shift;
        dodir /${libdir};
    fi;
    output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 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;
                    rm -f "${ED}"/${libdir}/${lib};
                fi;
                install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib};
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            *-aix* | *-irix* | *-hpux* | *-interix* | *-winnt*)
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    tlib=$(readlink "${ED}"/${libdir}/${lib});
                    tlib=${tlib##*/};
                    if [[ -z ${tlib} ]]; then
                        tlib=${lib};
                    else
                        rm -f "${ED}"/${libdir}/${lib};
                    fi;
                else
                    tlib=${lib};
                fi;
                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
}
generate_modulesd () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local currm_path currm currm_t t myIFS myVAR;
    local module_docs module_enabled module_aliases module_additions module_examples module_modinfo module_opts;
    for currm_path in ${@};
    do
        currm=${currm_path//*\/};
        currm=$(echo ${currm} | tr '[:lower:]' '[:upper:]');
        currm_t=${currm};
        while [[ -z ${currm_t//*-*} ]]; do
            currm_t=${currm_t/-/_};
        done;
        module_docs="$(eval echo \${MODULESD_${currm_t}_DOCS})";
        module_enabled="$(eval echo \${MODULESD_${currm_t}_ENABLED})";
        module_aliases="$(eval echo \${#MODULESD_${currm_t}_ALIASES[*]})";
        module_additions="$(eval echo \${#MODULESD_${currm_t}_ADDITIONS[*]})";
        module_examples="$(eval echo \${#MODULESD_${currm_t}_EXAMPLES[*]})";
        [[ ${module_aliases} -eq 0 ]] && unset module_aliases;
        [[ ${module_additions} -eq 0 ]] && unset module_additions;
        [[ ${module_examples} -eq 0 ]] && unset module_examples;
        [[ ${module_enabled} == no ]] && return 0;
        for t in ${!module_*};
        do
            [[ -z ${!t} ]] && unset ${t};
        done;
        [[ -z ${!module_*} ]] && return 0;
        module_modinfo="$(modinfo -p ${currm_path}.${KV_OBJ})";
        module_config="${T}/modulesd-${currm}";
        ebegin "Preparing file for modules.d";
        echo "# modules.d configuration file for ${currm}" >> ${module_config};
        [[ -n ${module_docs} ]] && echo "# For more information please read:" >> ${module_config};
        for t in ${module_docs};
        do
            echo "#    ${t//*\/}" >> ${module_config};
        done;
        echo >> ${module_config};
        if [[ ${module_aliases} -gt 0 ]]; then
            echo "# Internal Aliases - Do not edit" >> ${module_config};
            echo "# ------------------------------" >> ${module_config};
            for ((t=0; t<${module_aliases}; t++))
            do
                echo "alias $(eval echo \${MODULESD_${currm}_ALIASES[$t]})" >> ${module_config};
            done;
            echo '' >> ${module_config};
        fi;
        if [[ -n ${module_modinfo} ]]; then
            echo >> ${module_config};
            echo "# Configurable module parameters" >> ${module_config};
            echo "# ------------------------------" >> ${module_config};
            myIFS="${IFS}";
            IFS="$(echo -en "\n\b")";
            for t in ${module_modinfo};
            do
                myVAR="$(echo ${t#*:} | grep -e " [0-9][ =]" | sed "s:.*\([01][= ]\).*:\1:")";
                if [[ -n ${myVAR} ]]; then
                    module_opts="${module_opts} ${t%%:*}:${myVAR}";
                fi;
                echo -e "# ${t%%:*}:\t${t#*:}" >> ${module_config};
            done;
            IFS="${myIFS}";
            echo '' >> ${module_config};
        fi;
        if [[ $(eval echo \${MODULESD_${currm}_ALIASES[0]}) == guess ]]; then
            if [[ -n ${module_opts} ]]; then
                echo "# For Example..." >> ${module_config};
                echo "# --------------" >> ${module_config};
                for t in ${module_opts};
                do
                    echo "# options ${currm} ${t//:*}=${t//*:}" >> ${module_config};
                done;
                echo '' >> ${module_config};
            fi;
        else
            if [[ ${module_examples} -gt 0 ]]; then
                echo "# For Example..." >> ${module_config};
                echo "# --------------" >> ${module_config};
                for ((t=0; t<${module_examples}; t++))
                do
                    echo "options $(eval echo \${MODULESD_${currm}_EXAMPLES[$t]})" >> ${module_config};
                done;
                echo '' >> ${module_config};
            fi;
        fi;
        if [[ ${module_additions} -gt 0 ]]; then
            for ((t=0; t<${module_additions}; t++))
            do
                echo "$(eval echo \${MODULESD_${currm}_ADDITIONS[$t]})" >> ${module_config};
            done;
            echo '' >> ${module_config};
        fi;
        if kernel_is ge 2 6; then
            insinto /etc/modprobe.d;
        else
            insinto /etc/modules.d;
        fi;
        newins ${module_config} ${currm_path//*\/};
        [[ -n ${module_docs} ]] && dodoc ${module_docs};
    done;
    eend 0;
    return 0
}
get-KERNEL_CC () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if [[ -n ${KERNEL_CC} ]]; then
        echo "${KERNEL_CC}";
        return;
    fi;
    local kernel_cc;
    if [ -n "${KERNEL_ABI}" ]; then
        kernel_cc="$(tc-getCC $(ABI=${KERNEL_ABI} get_abi_CHOST))";
    else
        kernel_cc=$(tc-getCC);
    fi;
    echo "${kernel_cc}"
}
getPROG () 
{ 
    local var=$1 prog=$2;
    if [[ -n ${!var} ]]; then
        echo "${!var}";
        return 0;
    fi;
    local search=;
    [[ -n $3 ]] && search=$(type -p "$3-${prog}");
    [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}");
    [[ -n ${search} ]] && prog=${search##*/};
    export ${var}=${prog};
    echo "${!var}"
}
get_KV () 
{ 
    [[ -z ${_RC_GET_KV_CACHE} ]] && _RC_GET_KV_CACHE=$(uname -r);
    echo $(KV_to_int "${_RC_GET_KV_CACHE}");
    return $?
}
get_abi_ASFLAGS () 
{ 
    get_abi_var ASFLAGS "$@"
}
get_abi_CDEFINE () 
{ 
    get_abi_var CDEFINE "$@"
}
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;
    if [ $# -gt 1 ]; then
        abi=${2};
    else
        if [ -n "${ABI}" ]; then
            abi=${ABI};
        else
            if [ -n "${DEFAULT_ABI}" ]; then
                abi=${DEFAULT_ABI};
            else
                abi="default";
            fi;
        fi;
    fi;
    local var="${flag}_${abi}";
    echo ${!var}
}
get_after_major_version () 
{ 
    __versionator_shopt_toggle on;
    echo $(get_version_component_range 2- "${1:-${PV}}" );
    __versionator_shopt_toggle off
}
get_all_abis () 
{ 
    local order="";
    if [[ -z ${MULTILIB_ABIS} ]]; then
        echo "default";
        return 0;
    fi;
    for x in ${MULTILIB_ABIS};
    do
        if [[ ${x} != ${DEFAULT_ABI} ]]; then
            order="${order:+${order} }${x}";
        fi;
    done;
    order="${order:+${order} }${DEFAULT_ABI}";
    echo ${order};
    return 0
}
get_all_libdirs () 
{ 
    local libdirs="lib";
    local abi;
    local dir;
    for abi in ${MULTILIB_ABIS};
    do
        [ "$(get_abi_LIBDIR ${abi})" != "lib" ] && libdirs="${libdirs} $(get_abi_LIBDIR ${abi})";
    done;
    echo "${libdirs}"
}
get_all_version_components () 
{ 
    __versionator_shopt_toggle on;
    local ver_str=${1:-${PV}} result result_idx=0;
    result=();
    if [[ "${VERSIONATOR_CACHE_VER_STR}" == "${ver_str}" ]]; then
        echo ${VERSIONATOR_CACHE_RESULT};
        __versionator_shopt_toggle off;
        return;
    fi;
    export VERSIONATOR_CACHE_VER_STR="${ver_str}";
    while [[ -n "$ver_str" ]]; do
        case "${ver_str:0:1}" in 
            [[:digit:]])
                result[$result_idx]="${ver_str%%[^[:digit:]]*}";
                ver_str="${ver_str##+([[:digit:]])}";
                result_idx=$(($result_idx + 1))
            ;;
            [-_.])
                result[$result_idx]="${ver_str:0:1}";
                ver_str="${ver_str:1}";
                result_idx=$(($result_idx + 1))
            ;;
            [[:alpha:]])
                local not_match="${ver_str##+([[:alpha:]])*([[:digit:]])}";
                result[$result_idx]=${ver_str:0:$((${#ver_str} - ${#not_match}))};
                ver_str="${not_match}";
                result_idx=$(($result_idx + 1))
            ;;
            *)
                result[$result_idx]="${ver_str:0:1}";
                ver_str="${ver_str:1}";
                result_idx=$(($result_idx + 1))
            ;;
        esac;
    done;
    export VERSIONATOR_CACHE_RESULT="${result[@]}";
    echo ${result[@]};
    __versionator_shopt_toggle off
}
get_bmake () 
{ 
    if [[ ${USERLAND} == *BSD ]]; then
        echo make;
    else
        if [[ ${USERLAND} == "Darwin" ]]; then
            echo bsdmake;
        else
            echo pmake;
        fi;
    fi
}
get_broken_flags () 
{ 
    local myprog="${1}" lang="${2}";
    shift 2;
    echo 'main(){}' | LC_ALL=C ${myprog} ${@} -x ${lang} -o /dev/null - 2>&1 | egrep "unrecognized .*option" | egrep -o -- '('\''|\"|`)-.*' | sed -r 's/('\''|`|")//g; s/^/"/; s/$/"/';
    echo 'main(){}' | LC_ALL=C ${myprog} ${@} -x ${lang} -o /dev/null - 2>&1 | egrep "unrecognised debug output" | egrep -o -- '('\''|\"|`).*' | sed -r 's/('\''|`|")//g; s/^/"-g/; s/$/"/'
}
get_install_abis () 
{ 
    local 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
                hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}";
            fi;
        done;
        hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}";
        if [[ -n ${ABI_ALLOW} ]]; then
            local ordera="";
            for x in ${order};
            do
                if hasq ${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 () 
{ 
    __versionator_shopt_toggle on;
    echo $(( $(get_version_component_count "${1:-${PV}}" ) - 1 ));
    __versionator_shopt_toggle off
}
get_libdir () 
{ 
    local CONF_LIBDIR;
    if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
        echo ${CONF_LIBDIR_OVERRIDE};
    else
        get_abi_LIBDIR;
    fi
}
get_libdir_override () 
{ 
    if has_multilib_profile; then
        eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach.  Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org";
        exit 1;
    fi;
    CONF_LIBDIR="$1";
    CONF_LIBDIR_OVERRIDE="$1";
    LIBDIR_default="$1"
}
get_libname () 
{ 
    local libname;
    local ver=$1;
    case ${CHOST} in 
        *-cygwin | mingw* | *-mingw*)
            libname="dll"
        ;;
        *-darwin*)
            libname="dylib"
        ;;
        *-aix*)
            libname="a"
        ;;
        *-mint*)
            libname="irrelevant"
        ;;
        *)
            libname="so"
        ;;
    esac;
    if [[ -z $* ]]; then
        echo ".${libname}";
    else
        for ver in "$@";
        do
            case ${CHOST} in 
                *-darwin*)
                    echo ".${ver}.${libname}"
                ;;
                *-aix*)
                    echo ".${libname}"
                ;;
                *-mint*)
                    echo ".${libname}"
                ;;
                *)
                    echo ".${libname}.${ver}"
                ;;
            esac;
        done;
    fi
}
get_localversion () 
{ 
    local lv_list i x;
    for i in $(ls ${1}/localversion* 2>/dev/null);
    do
        [[ -n ${i//*~*} ]] && lv_list="${lv_list} ${i}";
    done;
    for i in ${lv_list};
    do
        x="${x}$(<${i})";
    done;
    x=${x/ /};
    echo ${x}
}
get_major_version () 
{ 
    __versionator_shopt_toggle on;
    local c;
    c=($(get_all_version_components "${1:-${PV}}" ));
    echo ${c[0]};
    __versionator_shopt_toggle off
}
get_ml_incdir () 
{ 
    local dir=/usr/include;
    if [[ $# -gt 0 ]]; then
        incdir=$1;
        shift;
    fi;
    if [[ -z "${MULTILIB_ABIS}" ]]; then
        echo ${incdir};
        return 0;
    fi;
    local abi=${ABI-${DEFAULT_ABI}};
    if [[ $# -gt 0 ]]; then
        abi=$1;
        shift;
    fi;
    if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then
        echo ${dir}/gentoo-multilib/${abi};
    else
        echo ${dir};
    fi
}
get_mounts () 
{ 
    local point= node= fs= opts= foo=;
    if [[ $(uname -s) == "Linux" ]]; then
        while read node point fs opts foo; do
            echo "${point} ${node} ${fs} ${opts}";
        done < /proc/mounts;
        return;
    fi;
    local IFS='	';
    LC_ALL=C mount -p | while read node point fs foo; do
        opts=${fs#* };
        fs=${fs%% *};
        echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}";
    done
}
get_multilibdir () 
{ 
    if has_multilib_profile; then
        eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach.  Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org";
        exit 1;
    fi;
    echo ${CONF_MULTILIBDIR:=lib32}
}
get_running_version () 
{ 
    KV_FULL=$(uname -r);
    if [[ -f ${ROOT}/lib/modules/${KV_FULL}/source/Makefile ]]; then
        KERNEL_DIR=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/source);
        unset KV_FULL;
        get_version;
        return $?;
    else
        if [[ -f ${ROOT}/lib/modules/${KV_FULL}/build/Makefile ]]; then
            KERNEL_DIR=$(readlink -f ${ROOT}/lib/modules/${KV_FULL}/build);
            unset KV_FULL;
            get_version;
            return $?;
        else
            KV_MAJOR=$(get_version_component_range 1 ${KV_FULL});
            KV_MINOR=$(get_version_component_range 2 ${KV_FULL});
            KV_PATCH=$(get_version_component_range 3- ${KV_FULL});
            KV_PATCH=${KV_PATCH//-*};
            [[ -n ${KV_FULL#*-} ]] && [[ -n ${KV_FULL//${KV_FULL#*-}} ]] && KV_EXTRA="-${KV_FULL#*-}";
        fi;
    fi;
    return 0
}
get_version () 
{ 
    local kbuild_output;
    [ -n "${KV_FULL}" ] && return 0;
    unset KV_DIR;
    qeinfo "Determining the location of the kernel source code";
    [ -h "${KERNEL_DIR}" ] && KV_DIR="$(readlink -f ${KERNEL_DIR})";
    [ -d "${KERNEL_DIR}" ] && KV_DIR="${KERNEL_DIR}";
    if [ -z "${KV_DIR}" ]; then
        qeerror "Unable to find kernel sources at ${KERNEL_DIR}";
        qeinfo "This package requires Linux sources.";
        if [ "${KERNEL_DIR}" == "/usr/src/linux" ]; then
            qeinfo "Please make sure that ${KERNEL_DIR} points at your running kernel, ";
            qeinfo "(or the kernel you wish to build against).";
            qeinfo "Alternatively, set the KERNEL_DIR environment variable to the kernel sources location";
        else
            qeinfo "Please ensure that the KERNEL_DIR environment variable points at full Linux sources of the kernel you wish to compile against.";
        fi;
        return 1;
    fi;
    qeinfo "Found kernel source directory:";
    qeinfo "    ${KV_DIR}";
    if [ ! -s "${KV_DIR}/Makefile" ]; then
        qeerror "Could not find a Makefile in the kernel source directory.";
        qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources";
        return 1;
    fi;
    OUTPUT_DIR="${OUTPUT_DIR:-${KBUILD_OUTPUT}}";
    kbuild_output="$(getfilevar KBUILD_OUTPUT ${KV_DIR}/Makefile)";
    OUTPUT_DIR="${OUTPUT_DIR:-${kbuild_output}}";
    KV_MAJOR="$(getfilevar VERSION ${KV_DIR}/Makefile)";
    KV_MINOR="$(getfilevar PATCHLEVEL ${KV_DIR}/Makefile)";
    KV_PATCH="$(getfilevar SUBLEVEL ${KV_DIR}/Makefile)";
    KV_EXTRA="$(getfilevar EXTRAVERSION ${KV_DIR}/Makefile)";
    if [ -z "${KV_MAJOR}" -o -z "${KV_MINOR}" -o -z "${KV_PATCH}" ]; then
        qeerror "Could not detect kernel version.";
        qeerror "Please ensure that ${KERNEL_DIR} points to a complete set of Linux sources.";
        return 1;
    fi;
    [ "${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}" == "$(uname -r)" ] && OUTPUT_DIR="${OUTPUT_DIR:-/lib/modules/${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}/build}";
    [ -h "${OUTPUT_DIR}" ] && KV_OUT_DIR="$(readlink -f ${OUTPUT_DIR})";
    [ -d "${OUTPUT_DIR}" ] && KV_OUT_DIR="${OUTPUT_DIR}";
    if [ -n "${KV_OUT_DIR}" ]; then
        qeinfo "Found kernel object directory:";
        qeinfo "    ${KV_OUT_DIR}";
        KV_LOCAL="$(get_localversion ${KV_OUT_DIR})";
    fi;
    KV_OUT_DIR="${KV_OUT_DIR:-${KV_DIR}}";
    KV_LOCAL="${KV_LOCAL}$(get_localversion ${KV_DIR})";
    if linux_config_exists; then
        KV_LOCAL="${KV_LOCAL}$(linux_chkconfig_string LOCALVERSION)";
        KV_LOCAL="${KV_LOCAL//\"/}";
        [ -e ${KV_DIR}/scripts/setlocalversion ] && linux_chkconfig_builtin LOCALVERSION_AUTO && KV_LOCAL="${KV_LOCAL}$(sh ${KV_DIR}/scripts/setlocalversion ${KV_DIR})";
    fi;
    KV_FULL="${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}${KV_EXTRA}${KV_LOCAL}";
    qeinfo "Found sources for kernel version:";
    qeinfo "    ${KV_FULL}";
    return 0
}
get_version_component_count () 
{ 
    __versionator_shopt_toggle on;
    local a;
    a=($(get_version_components "${1:-${PV}}" ));
    echo ${#a[@]};
    __versionator_shopt_toggle off
}
get_version_component_range () 
{ 
    __versionator_shopt_toggle on;
    local c v="${2:-${PV}}" range="${1}" range_start range_end 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=$(($i + 1));
        [[ $i -gt ${#c[@]} ]] && __versionator_shopt_toggle off && return;
        [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1));
    done;
    while (( j <= ${range_end} )); do
        echo -n ${c[$i]};
        [[ $i -gt ${#c[@]} ]] && __versionator_shopt_toggle off && return;
        [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1));
        i=$(($i + 1));
    done;
    __versionator_shopt_toggle off
}
get_version_components () 
{ 
    __versionator_shopt_toggle on;
    local c="$(get_all_version_components "${1:-${PV}}")";
    c=(${c[@]//[-._]/ });
    echo ${c[@]};
    __versionator_shopt_toggle off
}
getfilevar () 
{ 
    local ERROR basefname basedname myARCH="${ARCH}";
    ERROR=0;
    [ -z "${1}" ] && ERROR=1;
    [ ! -f "${2}" ] && ERROR=1;
    if [ "${ERROR}" = 1 ]; then
        echo -e "\n";
        eerror "getfilevar requires 2 variables, with the second a valid file.";
        eerror "   getfilevar <VARIABLE> <CONFIGFILE>";
    else
        basefname="$(basename ${2})";
        basedname="$(dirname ${2})";
        unset ARCH;
        echo -e "e:\\n\\t@echo \$(${1})\\ninclude ${basefname}" | make -C "${basedname}" M="${S}" ${BUILD_FIXES} -s -f - 2> /dev/null;
        ARCH=${myARCH};
    fi
}
has () 
{ 
    hasq "$@"
}
has_multilib_profile () 
{ 
    [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
has_version () 
{ 
    if [ "${EBUILD_PHASE}" == "depend" ]; then
        die "portageq calls (has_version calls portageq) are not allowed in the global scope";
    fi;
    PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_BIN_PATH}"/portageq has_version "${ROOT}" "$1";
    local retval=$?;
    case "${retval}" in 
        0)
            return 0
        ;;
        1)
            return 1
        ;;
        *)
            die "unexpected portageq exit code: ${retval}"
        ;;
    esac
}
hasg () 
{ 
    local x s=$1;
    shift;
    for x in "$@";
    do
        [[ ${x} == ${s} ]] && echo "${x}" && return 0;
    done;
    return 1
}
hasgq () 
{ 
    hasg "$@" > /dev/null
}
hasq () 
{ 
    [[ " ${*:2} " == *" $1 "* ]]
}
hasv () 
{ 
    if hasq "$@"; then
        echo "$1";
        return 0;
    fi;
    return 1
}
inherit () 
{ 
    ECLASS_DEPTH=$(($ECLASS_DEPTH + 1));
    if [[ ${ECLASS_DEPTH} > 1 ]]; then
        debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})";
    fi;
    if [[ -n $ECLASS && -n ${!__export_funcs_var} ]]; then
        echo "QA Notice: EXPORT_FUNCTIONS is called before inherit in" "$ECLASS.eclass. For compatibility with <=portage-2.1.6.7," "only call EXPORT_FUNCTIONS after inherit(s)." | fmt -w 75 | while read; do
            eqawarn "$REPLY";
        done;
    fi;
    local location;
    local olocation;
    local x;
    local PECLASS=$ECLASS;
    local prev_export_funcs_var=$__export_funcs_var;
    local B_IUSE;
    local B_DEPEND;
    local B_RDEPEND;
    local B_PDEPEND;
    while [ "$1" ]; do
        location="${ECLASSDIR}/${1}.eclass";
        olocation="";
        export ECLASS="$1";
        __export_funcs_var=__export_functions_$ECLASS_DEPTH;
        unset $__export_funcs_var;
        if [ "${EBUILD_PHASE}" != "depend" ] && [[ ${EBUILD_PHASE} != *rm ]] && [[ ${EMERGE_FROM} != "binary" ]]; then
            if ! hasq $ECLASS $INHERITED; then
                eqawarn "QA Notice: ECLASS '$ECLASS' inherited illegally in $CATEGORY/$PF $EBUILD_PHASE";
            fi;
        fi;
        if [ -n "$PORTDIR_OVERLAY" ]; then
            local overlay;
            for overlay in ${PORTDIR_OVERLAY};
            do
                olocation="${overlay}/eclass/${1}.eclass";
                if [ -e "$olocation" ]; then
                    location="${olocation}";
                    debug-print "  eclass exists: ${location}";
                fi;
            done;
        fi;
        debug-print "inherit: $1 -> $location";
        [ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()";
        if [ "${location}" == "${olocation}" ] && ! hasq "${location}" ${EBUILD_OVERLAY_ECLASSES}; then
            EBUILD_OVERLAY_ECLASSES="${EBUILD_OVERLAY_ECLASSES} ${location}";
        fi;
        set -f;
        unset B_IUSE B_DEPEND B_RDEPEND B_PDEPEND;
        [ "${IUSE-unset}" != "unset" ] && B_IUSE="${IUSE}";
        [ "${DEPEND-unset}" != "unset" ] && B_DEPEND="${DEPEND}";
        [ "${RDEPEND-unset}" != "unset" ] && B_RDEPEND="${RDEPEND}";
        [ "${PDEPEND-unset}" != "unset" ] && B_PDEPEND="${PDEPEND}";
        unset IUSE DEPEND RDEPEND PDEPEND;
        set +f;
        qa_source "$location" || die "died sourcing $location in inherit()";
        set -f;
        [ "${IUSE-unset}" != "unset" ] && export E_IUSE="${E_IUSE} ${IUSE}";
        [ "${DEPEND-unset}" != "unset" ] && export E_DEPEND="${E_DEPEND} ${DEPEND}";
        [ "${RDEPEND-unset}" != "unset" ] && export E_RDEPEND="${E_RDEPEND} ${RDEPEND}";
        [ "${PDEPEND-unset}" != "unset" ] && export E_PDEPEND="${E_PDEPEND} ${PDEPEND}";
        [ "${B_IUSE-unset}" != "unset" ] && IUSE="${B_IUSE}";
        [ "${B_IUSE-unset}" != "unset" ] || unset IUSE;
        [ "${B_DEPEND-unset}" != "unset" ] && DEPEND="${B_DEPEND}";
        [ "${B_DEPEND-unset}" != "unset" ] || unset DEPEND;
        [ "${B_RDEPEND-unset}" != "unset" ] && RDEPEND="${B_RDEPEND}";
        [ "${B_RDEPEND-unset}" != "unset" ] || unset RDEPEND;
        [ "${B_PDEPEND-unset}" != "unset" ] && PDEPEND="${B_PDEPEND}";
        [ "${B_PDEPEND-unset}" != "unset" ] || unset PDEPEND;
        set +f;
        if [[ -n ${!__export_funcs_var} ]]; then
            for x in ${!__export_funcs_var};
            do
                debug-print "EXPORT_FUNCTIONS: $x -> ${ECLASS}_$x";
                declare -F "${ECLASS}_$x" > /dev/null || die "EXPORT_FUNCTIONS: ${ECLASS}_$x is not defined";
                eval "$x() { ${ECLASS}_$x \"\$@\" ; }" > /dev/null;
            done;
        fi;
        unset $__export_funcs_var;
        hasq $1 $INHERITED || export INHERITED="$INHERITED $1";
        shift;
    done;
    ((--ECLASS_DEPTH));
    if (( ECLASS_DEPTH > 0 )); then
        export ECLASS=$PECLASS;
        __export_funcs_var=$prev_export_funcs_var;
    else
        unset ECLASS __export_funcs_var;
    fi;
    return 0
}
insinto () 
{ 
    if [ "$1" == "/" ]; then
        export INSDESTTREE="";
    else
        export INSDESTTREE=$1;
        if [ ! -d "${D}${INSDESTTREE}" ]; then
            install -d "${D}${INSDESTTREE}";
        fi;
    fi
}
insopts () 
{ 
    export INSOPTIONS="$@";
    hasq -s ${INSOPTIONS} && die "Never call insopts() with -s"
}
into () 
{ 
    if [ "$1" == "/" ]; then
        export DESTTREE="";
    else
        export DESTTREE=$1;
        if [ ! -d "${D}${DESTTREE}" ]; then
            install -d "${D}${DESTTREE}";
        fi;
    fi
}
is-login-disabled () 
{ 
    shell=$(egetshell "$1");
    case ${shell} in 
        /bin/false | /usr/bin/false | /sbin/nologin | /usr/sbin/nologin)
            return 0
        ;;
        *)
            return 1
        ;;
    esac
}
is_final_abi () 
{ 
    has_multilib_profile || return 0;
    local ALL_ABIS=$(get_install_abis);
    local LAST_ABI=${ALL_ABIS/* /};
    [[ ${LAST_ABI} == ${ABI} ]]
}
keepdir () 
{ 
    dodir "$@";
    local x;
    if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then
        shift;
        find "$@" -type d -printf "${D}%p/.keep_${CATEGORY}_${PN}-${SLOT}\n" | tr "\n" "\0" | ${XARGS} -0 -n100 touch || die "Failed to recursively create .keep files";
    else
        for x in "$@";
        do
            touch "${D}${x}/.keep_${CATEGORY}_${PN}-${SLOT}" || die "Failed to create .keep in ${D}${x}";
        done;
    fi
}
kernel_is () 
{ 
    get_version;
    local operator test value x=0 y=0 z=0;
    case ${1} in 
        lt)
            operator="-lt";
            shift
        ;;
        gt)
            operator="-gt";
            shift
        ;;
        le)
            operator="-le";
            shift
        ;;
        ge)
            operator="-ge";
            shift
        ;;
        eq)
            operator="-eq";
            shift
        ;;
        *)
            operator="-eq"
        ;;
    esac;
    for x in ${@};
    do
        for ((y=0; y<$((3 - ${#x})); y++))
        do
            value="${value}0";
        done;
        value="${value}${x}";
        z=$((${z} + 1));
        case ${z} in 
            1)
                for ((y=0; y<$((3 - ${#KV_MAJOR})); y++))
                do
                    test="${test}0";
                done;
                test="${test}${KV_MAJOR}"
            ;;
            2)
                for ((y=0; y<$((3 - ${#KV_MINOR})); y++))
                do
                    test="${test}0";
                done;
                test="${test}${KV_MINOR}"
            ;;
            3)
                for ((y=0; y<$((3 - ${#KV_PATCH})); y++))
                do
                    test="${test}0";
                done;
                test="${test}${KV_PATCH}"
            ;;
            *)
                die "Error in kernel-2_kernel_is(): Too many parameters."
            ;;
        esac;
    done;
    [ ${test} ${operator} ${value} ] && return 0 || return 1
}
lchgrp () 
{ 
    chgrp -h "$@"
}
lchown () 
{ 
    chown -h "$@"
}
libopts () 
{ 
    export LIBOPTIONS="$@";
    hasq -s ${LIBOPTIONS} && die "Never call libopts() with -s"
}
linux-info_pkg_setup () 
{ 
    get_version || die "Unable to calculate Linux Kernel version";
    if kernel_is 2 4; then
        if [ "$( gcc-major-version )" -eq "4" ]; then
            echo;
            ewarn "Be warned !! >=sys-devel/gcc-4.0.0 isn't supported with";
            ewarn "linux-2.4 (or modules building against a linux-2.4 kernel)!";
            echo;
            ewarn "Either switch to another gcc-version (via gcc-config) or use a";
            ewarn "newer kernel that supports gcc-4.";
            echo;
            ewarn "Also be aware that bugreports about gcc-4 not working";
            ewarn "with linux-2.4 based ebuilds will be closed as INVALID!";
            echo;
            epause 10;
        fi;
    fi;
    [ -n "${CONFIG_CHECK}" ] && check_extra_config
}
linux-mod_pkg_postinst () 
{ 
    debug-print-function ${FUNCNAME} $*;
    ${UPDATE_DEPMOD} && update_depmod;
    ${UPDATE_MODULES} && update_modules;
    ${UPDATE_MODULEDB} && update_moduledb
}
linux-mod_pkg_postrm () 
{ 
    debug-print-function ${FUNCNAME} $*;
    remove_moduledb
}
linux-mod_pkg_preinst () 
{ 
    debug-print-function ${FUNCNAME} $*;
    [ -d "${D}lib/modules" ] && UPDATE_DEPMOD=true || UPDATE_DEPMOD=false;
    [ -d "${D}etc/modules.d" ] && UPDATE_MODULES=true || UPDATE_MODULES=false;
    [ -d "${D}lib/modules" ] && UPDATE_MODULEDB=true || UPDATE_MODULEDB=false
}
linux-mod_pkg_setup () 
{ 
    debug-print-function ${FUNCNAME} $*;
    linux-info_pkg_setup;
    require_configured_kernel;
    check_kernel_built;
    strip_modulenames;
    [[ -n ${MODULE_NAMES} ]] && check_modules_supported;
    set_kvobj
}
linux-mod_src_compile () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local modulename libdir srcdir objdir i n myABI="${ABI}";
    set_arch_to_kernel;
    ABI="${KERNEL_ABI}";
    BUILD_TARGETS=${BUILD_TARGETS:-clean module};
    strip_modulenames;
    cd "${S}";
    touch Module.symvers;
    for i in ${MODULE_NAMES};
    do
        unset libdir srcdir objdir;
        for n in $(find_module_params ${i});
        do
            eval ${n/:*}=${n/*:/};
        done;
        libdir=${libdir:-misc};
        srcdir=${srcdir:-${S}};
        objdir=${objdir:-${srcdir}};
        if [ ! -f "${srcdir}/.built" ]; then
            cd ${srcdir};
            ln -s "${S}"/Module.symvers Module.symvers;
            einfo "Preparing ${modulename} module";
            if [[ -n ${ECONF_PARAMS} ]]; then
                econf ${ECONF_PARAMS} || die "Unable to run econf ${ECONF_PARAMS}";
            fi;
            eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" 						CROSS_COMPILE=${CHOST}- 						LDFLAGS=\"$(get_abi_LDFLAGS)\" 						${BUILD_FIXES} 						${BUILD_PARAMS} 						${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}";
            cd ${OLDPWD};
            touch ${srcdir}/.built;
        fi;
    done;
    set_arch_to_portage;
    ABI="${myABI}"
}
linux-mod_src_install () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local modulename libdir srcdir objdir i n;
    strip_modulenames;
    for i in ${MODULE_NAMES};
    do
        unset libdir srcdir objdir;
        for n in $(find_module_params ${i});
        do
            eval ${n/:*}=${n/*:/};
        done;
        libdir=${libdir:-misc};
        srcdir=${srcdir:-${S}};
        objdir=${objdir:-${srcdir}};
        einfo "Installing ${modulename} module";
        cd ${objdir} || die "${objdir} does not exist";
        insinto /lib/modules/${KV_FULL}/${libdir};
        doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed";
        cd ${OLDPWD};
        generate_modulesd ${objdir}/${modulename};
    done
}
linux_chkconfig_builtin () 
{ 
    local RESULT;
    require_configured_kernel;
    RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)";
    [ "${RESULT}" = "y" ] && return 0 || return 1
}
linux_chkconfig_module () 
{ 
    local RESULT;
    require_configured_kernel;
    RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)";
    [ "${RESULT}" = "m" ] && return 0 || return 1
}
linux_chkconfig_present () 
{ 
    local RESULT;
    require_configured_kernel;
    RESULT="$(getfilevar CONFIG_${1} ${KV_OUT_DIR}/.config)";
    [ "${RESULT}" = "m" -o "${RESULT}" = "y" ] && return 0 || return 1
}
linux_chkconfig_string () 
{ 
    require_configured_kernel;
    getfilevar "CONFIG_${1}" "${KV_OUT_DIR}/.config"
}
linux_config_exists () 
{ 
    [ -s "${KV_OUT_DIR}/.config" ]
}
make_desktop_entry () 
{ 
    [[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1;
    local exec=${1};
    local name=${2:-${PN}};
    local icon=${3:-${PN}};
    local type=${4};
    local path=${5};
    if [[ -z ${type} ]]; then
        local catmaj=${CATEGORY%%-*};
        local catmin=${CATEGORY##*-};
        case ${catmaj} in 
            app)
                case ${catmin} in 
                    accessibility)
                        type=Accessibility
                    ;;
                    admin)
                        type=System
                    ;;
                    antivirus)
                        type=System
                    ;;
                    arch)
                        type=Archiving
                    ;;
                    backup)
                        type=Archiving
                    ;;
                    cdr)
                        type=DiscBurning
                    ;;
                    dicts)
                        type=Dictionary
                    ;;
                    doc)
                        type=Documentation
                    ;;
                    editors)
                        type=TextEditor
                    ;;
                    emacs)
                        type=TextEditor
                    ;;
                    emulation)
                        type=Emulator
                    ;;
                    laptop)
                        type=HardwareSettings
                    ;;
                    office)
                        type=Office
                    ;;
                    pda)
                        type=PDA
                    ;;
                    vim)
                        type=TextEditor
                    ;;
                    xemacs)
                        type=TextEditor
                    ;;
                    *)
                        type=
                    ;;
                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
                    ;;
                    *)
                        type=
                    ;;
                esac;
                type="Game;${type}"
            ;;
            gnome)
                type="Gnome;GTK"
            ;;
            kde)
                type="KDE;Qt"
            ;;
            mail)
                type="Network;Email"
            ;;
            media)
                case ${catmin} in 
                    gfx)
                        type=Graphics
                    ;;
                    radio)
                        type=Tuner
                    ;;
                    sound)
                        type=Audio
                    ;;
                    tv)
                        type=TV
                    ;;
                    video)
                        type=Video
                    ;;
                    *)
                        type=
                    ;;
                esac;
                type="AudioVideo;${type}"
            ;;
            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
                    ;;
                    *)
                        type=
                    ;;
                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
                    ;;
                    *)
                        type=
                    ;;
                esac;
                type="Science;${type}"
            ;;
            sys)
                type="System"
            ;;
            www)
                case ${catmin} in 
                    client)
                        type=WebBrowser
                    ;;
                    *)
                        type=
                    ;;
                esac;
                type="Network"
            ;;
            *)
                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";
    cat  > "${desktop}" <<-EOF
[Desktop Entry]
Version=1.0
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type};
EOF

    [[ -n ${path} ]] && echo "Path=${path}" >> "${desktop}";
    ( insinto /usr/share/applications;
    doins "${desktop}" )
}
make_session_desktop () 
{ 
    [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
    [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
    local title=$1;
    local command=$2;
    local desktop=${T}/${wm:-${PN}}.desktop;
    shift 2;
    cat  > "${desktop}" <<-EOF
[Desktop Entry]
Name=${title}
Comment=This session logs you into ${title}
Exec=${command} $*
TryExec=${command}
Type=XSession
EOF

    ( insinto /usr/share/xsessions;
    doins "${desktop}" )
}
make_wrapper () 
{ 
    local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
    local tmpwrapper=$(emktemp);
    cat  > "${tmpwrapper}" <<EOF
#!/bin/sh
cd "${chdir:-.}"
if [ -n "${libdir}" ] ; then
	if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
		export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}"
	else
		export LD_LIBRARY_PATH="${libdir}"
	fi
fi
exec ${bin} "\$@"
EOF

    chmod go+rx "${tmpwrapper}";
    if [[ -n ${path} ]]; then
        ( exeinto "${path}";
        newexe "${tmpwrapper}" "${wrapper}" ) || die;
    else
        newbin "${tmpwrapper}" "${wrapper}" || die;
    fi
}
move_old_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local OLDDIR=${ROOT}/usr/share/module-rebuild/;
    local NEWDIR=${ROOT}/var/lib/module-rebuild/;
    if [[ -f ${OLDDIR}/moduledb ]]; then
        [[ ! -d ${NEWDIR} ]] && mkdir -p ${NEWDIR};
        [[ ! -f ${NEWDIR}/moduledb ]] && mv ${OLDDIR}/moduledb ${NEWDIR}/moduledb;
        rm -f ${OLDDIR}/*;
        rmdir ${OLDDIR};
    fi
}
multilib_env () 
{ 
    local CTARGET=${1:-${CTARGET}};
    case ${CTARGET} in 
        x86_64*)
            export CFLAGS_x86=${CFLAGS_x86--m32};
            export CHOST_x86=${CTARGET/x86_64/i686};
            export CTARGET_x86=${CHOST_x86};
            export CDEFINE_x86="__i386__";
            export LIBDIR_x86="lib";
            export CFLAGS_amd64=${CFLAGS_amd64--m64};
            export CHOST_amd64=${CTARGET};
            export CTARGET_amd64=${CHOST_amd64};
            export CDEFINE_amd64="__x86_64__";
            export LIBDIR_amd64="lib64";
            export MULTILIB_ABIS="amd64 x86";
            export DEFAULT_ABI="amd64"
        ;;
        mips64*)
            export CFLAGS_o32=${CFLAGS_o32--mabi=32};
            export CHOST_o32=${CTARGET/mips64/mips};
            export CTARGET_o32=${CHOST_o32};
            export CDEFINE_o32="_MIPS_SIM == _ABIO32";
            export LIBDIR_o32="lib";
            export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
            export CHOST_n32=${CTARGET};
            export CTARGET_n32=${CHOST_n32};
            export CDEFINE_n32="_MIPS_SIM == _ABIN32";
            export LIBDIR_n32="lib32";
            export CFLAGS_n64=${CFLAGS_n64--mabi=64};
            export CHOST_n64=${CTARGET};
            export CTARGET_n64=${CHOST_n64};
            export CDEFINE_n64="_MIPS_SIM == _ABI64";
            export LIBDIR_n64="lib64";
            export MULTILIB_ABIS="n64 n32 o32";
            export DEFAULT_ABI="n32"
        ;;
        powerpc64*)
            export CFLAGS_ppc=${CFLAGS_ppc--m32};
            export CHOST_ppc=${CTARGET/powerpc64/powerpc};
            export CTARGET_ppc=${CHOST_ppc};
            export CDEFINE_ppc="!__powerpc64__";
            export LIBDIR_ppc="lib";
            export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
            export CHOST_ppc64=${CTARGET};
            export CTARGET_ppc64=${CHOST_ppc64};
            export CDEFINE_ppc64="__powerpc64__";
            export LIBDIR_ppc64="lib64";
            export MULTILIB_ABIS="ppc64 ppc";
            export DEFAULT_ABI="ppc64"
        ;;
        s390x*)
            export CFLAGS_s390=${CFLAGS_s390--m31};
            export CHOST_s390=${CTARGET/s390x/s390};
            export CTARGET_s390=${CHOST_s390};
            export CDEFINE_s390="!__s390x__";
            export LIBDIR_s390="lib";
            export CFLAGS_s390x=${CFLAGS_s390x--m64};
            export CHOST_s390x=${CTARGET};
            export CTARGET_s390x=${CHOST_s390x};
            export CDEFINE_s390x="__s390x__";
            export LIBDIR_s390x="lib64";
            export MULTILIB_ABIS="s390x s390";
            export DEFAULT_ABI="s390x"
        ;;
        sparc*)
            export CFLAGS_sparc32=${CFLAGS_sparc32};
            export CHOST_sparc32=${CTARGET/sparc64/sparc};
            export CTARGET_sparc32=${CHOST_sparc32};
            export CDEFINE_sparc32="!__arch64__";
            export LIBDIR_sparc32="lib";
            export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
            export CHOST_sparc64=${CTARGET};
            export CTARGET_sparc64=${CHOST_sparc64};
            export CDEFINE_sparc64="__arch64__";
            export LIBDIR_sparc64="lib64";
            export MULTILIB_ABIS="${MULTILIB_ABIS-sparc64 sparc32}";
            export DEFAULT_ABI="${DEFAULT_ABI-sparc64}"
        ;;
        *)
            export MULTILIB_ABIS="default";
            export DEFAULT_ABI="default"
        ;;
    esac
}
multilib_toolchain_setup () 
{ 
    local v vv;
    export ABI=$1;
    if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
        if [[ ${DEFAULT_ABI_SAVED} != "true" ]]; then
            for v in CHOST CBUILD AS CC CXX LD;
            do
                export __abi_saved_${v}="${!v}";
            done;
            export DEFAULT_ABI_SAVED="true";
        fi;
        export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
        export AS="$(tc-getAS) $(get_abi_ASFLAGS)";
        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);
    else
        if [[ ${DEFAULT_ABI_SAVED} == "true" ]]; then
            for v in CHOST CBUILD AS CC CXX LD;
            do
                vv="__abi_saved_${v}";
                export ${v}=${!vv};
            done;
        fi;
    fi
}
newdepend () 
{ 
    debug-print-function newdepend $*;
    debug-print "newdepend: E_DEPEND=$E_DEPEND E_RDEPEND=$E_RDEPEND";
    while [ -n "$1" ]; do
        case $1 in 
            "/autotools")
                do_newdepend DEPEND sys-devel/autoconf sys-devel/automake sys-devel/make
            ;;
            "/c")
                do_newdepend DEPEND sys-devel/gcc virtual/libc;
                do_newdepend RDEPEND virtual/libc
            ;;
            *)
                do_newdepend DEPEND $1
            ;;
        esac;
        shift;
    done
}
newicon () 
{ 
    ( insinto /usr/share/pixmaps;
    newins "$@" )
}
newmenu () 
{ 
    ( insinto /usr/share/applications;
    newins "$@" )
}
newpdepend () 
{ 
    debug-print-function newpdepend $*;
    do_newdepend PDEPEND $1
}
newrdepend () 
{ 
    debug-print-function newrdepend $*;
    do_newdepend RDEPEND $1
}
number_abis () 
{ 
    get_install_abis | wc -w
}
pkg_nofetch () 
{ 
    _eapi0_pkg_nofetch "$@"
}
pkg_postinst () 
{ 
    /usr/bin/eselect opengl set --use-old ati;
    elog "To switch to ATI OpenGL, run \"eselect opengl set ati\"";
    elog "To change your xorg.conf you can use the bundled \"aticonfig\"";
    elog;
    elog "If you experience unexplained segmentation faults and kernel crashes";
    elog "with this driver and multi-threaded applications such as wine,";
    elog "set UseFastTLS in xorg.conf to either 0 or 1, but not 2.";
    elog;
    elog "You will have to source /etc/profile (or logout and back in) for dri";
    elog "to work, unless you previously had ati-drivers installed.";
    ewarn "If you experience screen corruption with this driver, try putting";
    ewarn '         Option "XAANoOffscreenPixmaps" "true"';
    ewarn "in the Device Section of /etc/X11/xorg.conf.";
    linux-mod_pkg_postinst
}
pkg_postrm () 
{ 
    linux-mod_pkg_postrm;
    /usr/bin/eselect opengl set --use-old xorg-x11
}
pkg_preinst () 
{ 
    linux-mod_pkg_preinst "$@"
}
pkg_setup () 
{ 
    MODULE_DIR="${S}/common/lib/modules/fglrx/build_mod";
    MODULE_NAMES="fglrx(video:${S}/common/lib/modules/fglrx/build_mod/2.6.x)";
    BUILD_TARGETS="kmod_build";
    linux-mod_pkg_setup;
    BUILD_PARAMS="GCC_VER_MAJ=$(gcc-major-version) KVER=${KV_FULL} KDIR=${KV_DIR}";
    if ! kernel_is 2 6; then
        eerror "Need a 2.6 kernel to compile against!";
        die "Need a 2.6 kernel to compile against!";
    fi;
    if kernel_is ge 2 6 25 && linux_chkconfig_present PREEMPT_RCU; then
        die "${P} is not compatible with RCU Preemption (bug #223281), please disable it";
    fi;
    if kernel_is ge 2 6 26 && ! linux_chkconfig_present UNUSED_SYMBOLS; then
        ewarn "You have to Enable unused/obsolete exported symbols in Kernel hacking section of kernel config for fglrx to load";
    fi;
    if kernel_is ge 2 6 24 && ! linux_chkconfig_present PCI_LEGACY; then
        eerror "${P} requires support for pci_find_slot.";
        die "${P} requires support for pci_find_slot.";
    fi;
    if ! linux_chkconfig_present MTRR; then
        ewarn "You don't have MTRR support enabled, the direct rendering will not work.";
    fi;
    if linux_chkconfig_builtin DRM; then
        ewarn "You have DRM support enabled builtin, the direct rendering will not work.";
    fi;
    if ! linux_chkconfig_present AGP && ! linux_chkconfig_present PCIEPORTBUS; then
        ewarn "You need AGP and/or PCI Express support for direct rendering to work.";
    fi;
    if linux_chkconfig_present PARAVIRT; then
        eerror "The current ati-drivers don't compile when having";
        eerror "paravirtualization active due to GPL symbol export";
        eerror "restrictions.";
        eerror "Please disable it:";
        eerror "	CONFIG_PARAVIRT=n";
        eerror "in /usr/src/linux/.config or";
        eerror "	Processor type and features -->";
        eerror "		[ ] Paravirtualization support (EXPERIMENTAL)";
        eerror "in 'menuconfig'";
        die "CONFIG_PARAVIRT enabled";
    fi;
    if ! linux_chkconfig_present MAGIC_SYSRQ; then
        eerror "You need MAGIC_SYSRQ enabled in order to build ati-drivers";
        die "CONFIG_MAGIC_SYSRQ disabled";
    fi;
    BASE_DIR="${S}/x740";
    if use amd64; then
        MY_BASE_DIR="${BASE_DIR}_64a";
        PKG_LIBDIR=lib64;
        ARCH_DIR="${S}/arch/x86_64";
    else
        MY_BASE_DIR="${BASE_DIR}";
        PKG_LIBDIR=lib;
        ARCH_DIR="${S}/arch/x86";
    fi
}
portageq () 
{ 
    if [ "${EBUILD_PHASE}" == "depend" ]; then
        die "portageq calls are not allowed in the global scope";
    fi;
    PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_BIN_PATH}/portageq" "$@"
}
prep_ml_includes () 
{ 
    if [[ $(number_abis) -gt 1 ]]; then
        local dir;
        local dirs;
        local base;
        if [[ $# -eq 0 ]]; then
            dirs=/usr/include;
        else
            dirs="$@";
        fi;
        for dir in ${dirs};
        do
            base=${T}/gentoo-multilib/${dir}/gentoo-multilib;
            mkdir -p "${base}";
            [[ -d ${base}/${ABI} ]] && rm -rf "${base}/${ABI}";
            mv "${D}/${dir}" "${base}/${ABI}";
        done;
        if is_final_abi; then
            base=${T}/gentoo-multilib;
            pushd "${base}";
            find . | tar -c -T - -f - | tar -x --no-same-owner -f - -C "${D}";
            popd;
            set --;
            for dir in ${dirs};
            do
                set -- "$@" "${dir}";
                local abi;
                for abi in $(get_install_abis);
                do
                    set -- "$@" "$(get_abi_CDEFINE ${abi}):${dir}/gentoo-multilib/${abi}";
                done;
                create_ml_includes "$@";
            done;
        fi;
    fi
}
preprocess_ebuild_env () 
{ 
    local filter_opts="";
    if [ -f "${T}/environment.raw" ]; then
        filter_opts="--filter-sandbox --filter-features ${filter_opts}";
    fi;
    filter_readonly_variables ${filter_opts} < "${T}"/environment > "${T}"/environment.filtered || return $?;
    unset filter_opts;
    mv "${T}"/environment.filtered "${T}"/environment || return $?;
    rm -f "${T}/environment.success" || return $?;
    ( export SANDBOX_ON=1;
    source "${T}/environment" || exit $?;
    export SANDBOX_ON=0;
    source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit $?;
    save_ebuild_env || exit $?;
    touch "${T}/environment.success" || exit $? ) > "${T}/environment.filtered";
    local retval;
    if [ -e "${T}/environment.success" ]; then
        filter_readonly_variables < "${T}/environment.filtered" > "${T}/environment";
        retval=$?;
    else
        retval=1;
    fi;
    rm -f "${T}"/environment.{filtered,raw,success};
    return ${retval}
}
preserve_old_lib () 
{ 
    if [[ ${EBUILD_PHASE} != "preinst" ]]; then
        eerror "preserve_old_lib() must be called from pkg_preinst() only";
        die "Invalid preserve_old_lib() usage";
    fi;
    [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
    has preserve-libs ${FEATURES} && return 0;
    local lib dir;
    for lib in "$@";
    do
        [[ -e ${ROOT}/${lib} ]] || continue;
        dir=${lib%/*};
        dodir ${dir} || die "dodir ${dir} failed";
        cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed";
        touch "${D}"/${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;
    local lib notice=0;
    for lib in "$@";
    do
        [[ -e ${ROOT}/${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##*/}";
    done;
    if [[ ${notice} -eq 1 ]]; then
        ewarn;
        ewarn "Once you've finished running revdep-rebuild, it should be safe to";
        ewarn "delete the old libraries.  Here is a copy & paste for the lazy:";
        for lib in "$@";
        do
            ewarn "  # rm '${lib}'";
        done;
    fi
}
qa_call () 
{ 
    local shopts=$(shopt) OLDIFS="$IFS";
    local retval;
    "$@";
    retval=$?;
    set +e;
    [[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while calling '$*'";
    [[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while calling '$*'";
    return $retval
}
qa_source () 
{ 
    local shopts=$(shopt) OLDIFS="$IFS";
    local retval;
    source "$@";
    retval=$?;
    set +e;
    [[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while sourcing '$*'";
    [[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while sourcing '$*'";
    return $retval
}
qeerror () 
{ 
    qout eerror "${@}"
}
qeinfo () 
{ 
    qout einfo "${@}"
}
qout () 
{ 
    local outputmsg type;
    type=${1};
    shift;
    outputmsg="${@}";
    case "${EBUILD_PHASE}" in 
        depend)
            unset outputmsg
        ;;
        clean)
            unset outputmsg
        ;;
        preinst)
            unset outputmsg
        ;;
    esac;
    [ -n "${outputmsg}" ] && ${type} "${outputmsg}"
}
quiet_mode () 
{ 
    [[ ${PORTAGE_QUIET} -eq 1 ]]
}
register_die_hook () 
{ 
    export EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} $*"
}
remove_flag () 
{ 
    local remove="${1}";
    shift;
    while [[ -n "${1}" ]]; do
        [[ "${1}" != "${remove}" ]] && echo -n "${1} ";
        shift;
    done
}
remove_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/;
    move_old_moduledb;
    if grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb; then
        einfo "Removing ${CATEGORY}/${PN}-${PVR} from moduledb.";
        sed -i -e "/.*${CATEGORY}\/${PN}-${PVR}.*/d" ${MODULEDB_DIR}/moduledb;
    fi
}
remove_path_entry () 
{ 
    [ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}";
    IFS=":";
    stripped_path="${PATH}";
    while [ -n "$1" ]; do
        cur_path="";
        for p in ${stripped_path};
        do
            if [ "${p/${1}}" == "${p}" ]; then
                cur_path="${cur_path}:${p}";
            fi;
        done;
        stripped_path="${cur_path#:*}";
        shift;
    done;
    if [ "${old_IFS:-unset}" != "unset" ]; then
        IFS="${old_IFS}";
        unset old_IFS;
    else
        unset IFS;
    fi;
    PATH="${stripped_path}"
}
replace_all_version_separators () 
{ 
    __versionator_shopt_toggle on;
    local c;
    c=($(get_all_version_components "${2:-${PV}}" ));
    c="${c[@]//[-._]/$1}";
    echo ${c// };
    __versionator_shopt_toggle off
}
replace_version_separator () 
{ 
    __versionator_shopt_toggle on;
    local w i c found=0 v="${3:-${PV}}";
    w=${1:-1};
    c=($(get_all_version_components ${v} ));
    if [[ "${w//[[:digit:]]/}" == "${w}" ]]; then
        for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 ))
        do
            if [[ "${c[${i}]}" == "${w}" ]]; then
                c[${i}]="${2}";
                break;
            fi;
        done;
    else
        for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 ))
        do
            if [[ -n "${c[${i}]//[^-._]}" ]]; then
                found=$(($found + 1));
                if [[ "$found" == "${w}" ]]; then
                    c[${i}]="${2}";
                    break;
                fi;
            fi;
        done;
    fi;
    c=${c[@]};
    echo ${c// };
    __versionator_shopt_toggle off
}
require_configured_kernel () 
{ 
    if ! linux_config_exists; then
        qeerror "Could not find a usable .config in the kernel source directory.";
        qeerror "Please ensure that ${KERNEL_DIR} points to a configured set of Linux sources.";
        qeerror "If you are using KBUILD_OUTPUT, please set the environment var so that";
        qeerror "it points to the necessary object directory so that it might find .config.";
        die "Kernel not configured; no .config found in ${KV_OUT_DIR}";
    fi
}
save_ebuild_env () 
{ 
    ( if hasq --exclude-init-phases $*; then
        unset S _E_DOCDESTTREE_ _E_EXEDESTTREE_;
        unset -f pkg_nofetch src_unpack src_prepare src_configure src_compile src_test src_install;
        if [[ -n $PYTHONPATH ]]; then
            export PYTHONPATH=${PYTHONPATH/${PORTAGE_PYM_PATH}:};
            [[ -z $PYTHONPATH ]] && unset PYTHONPATH;
        fi;
    fi;
    unset BASH HOSTTYPE IFS MACHTYPE OLDPWD OPTERR OPTIND OSTYPE PS4 PWD SHELL SHLVL;
    unset COLORTERM DISPLAY EDITOR LESS LESSOPEN LOGNAME LS_COLORS PAGER TERM TERMCAP USER;
    unset ECHANGELOG_USER GPG_AGENT_INFO SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY;
    unset ${!CCACHE_*} ${!DISTCC_*};
    for x in pkg_setup pkg_nofetch src_unpack src_prepare src_configure src_compile src_test src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm;
    do
        unset -f default_$x _eapi{0,1,2}_$x;
    done;
    unset x;
    unset -f dump_trace die diefunc quiet_mode vecho elog_base eqawarn elog esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has hasg hasgq hasv hasq qa_source qa_call addread addwrite adddeny addpredict _sb_append_var lchown lchgrp esyslog use usev useq has_version portageq best_version use_with use_enable register_die_hook check_KV keepdir unpack strip_duplicate_slashes econf einstall dyn_setup dyn_unpack dyn_clean into insinto exeinto docinto insopts diropts exeopts libopts abort_handler abort_prepare abort_configure abort_compile abort_test abort_install dyn_prepare dyn_configure dyn_compile dyn_test dyn_install dyn_preinst dyn_help debug-print debug-print-function debug-print-section inherit EXPORT_FUNCTIONS newdepend newrdepend newpdepend do_newdepend remove_path_entry save_ebuild_env filter_readonly_variables preprocess_ebuild_env source_all_bashrcs ebuild_main ebuild_phase ebuild_phase_with_hooks _ebuild_arg_to_phase _ebuild_phase_funcs default _source_ebuild ${QA_INTERCEPTORS};
    unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR EBUILD_EXIT_STATUS_FILE EBUILD_FORCE_TEST EBUILD_MASTER_PID ECLASSDIR ECLASS_DEPTH ENDCOL FAKEROOTKEY GOOD HILITE HOME IMAGE LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC PORTAGE_BASHRCS_SOURCED PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR PORTAGE_COLORMAP PORTAGE_CONFIGROOT PORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_GID PORTAGE_INST_GID PORTAGE_INST_UID PORTAGE_LOG_FILE PORTAGE_MASTER_PID PORTAGE_QUIET PORTAGE_REPO_NAME PORTAGE_RESTRICT PORTAGE_UPDATE_ENV PORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTDIR PORTDIR_OVERLAY ${!PORTAGE_SANDBOX_*} PREROOTPATH PROFILE_PATHS PWORKDIR QA_INTERCEPTORS RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION READONLY_EBUILD_METADATA READONLY_PORTAGE_VARS ROOT ROOTPATH RPMDIR STARTDIR TMP TMPDIR USE_EXPAND WARN XARGS _RC_GET_KV_CACHE;
    unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK;
    set;
    export )
}
seq () 
{ 
    local p=$(type -P seq);
    case $# in 
        1)
            min=1 max=$1 step=1
        ;;
        2)
            min=$1 max=$2 step=1
        ;;
        3)
            min=$1 max=$3 step=$2
        ;;
        *)
            die "seq called with wrong number of arguments"
        ;;
    esac;
    if [[ -z ${p} ]]; then
        local reps;
        if [[ ${step} != 0 ]]; then
            reps=$(( ($max-$min) / $step +1 ));
        else
            reps=0;
        fi;
        jot $reps $min $max $step;
    else
        "${p}" $min $step $max;
    fi
}
set_arch_to_kernel () 
{ 
    export ARCH=$(tc-arch-kernel)
}
set_arch_to_portage () 
{ 
    export ARCH=$(tc-arch)
}
set_colors () 
{ 
    COLS=${COLUMNS:-0};
    (( COLS == 0 )) && COLS=$(set -- $(stty size 2>/dev/null) ; echo $2);
    (( COLS > 0 )) || (( COLS = 80 ));
    COLS=$((${COLS} - 8));
    [[ $TERM = cons25 || $TERM = dumb ]] && ((COLS--));
    ENDCOL='^[[A^[['${COLS}'C';
    if [ -n "${PORTAGE_COLORMAP}" ]; then
        eval ${PORTAGE_COLORMAP};
    else
        GOOD='^[[32;01m';
        WARN='^[[33;01m';
        BAD='^[[31;01m';
        HILITE='^[[36;01m';
        BRACKET='^[[34;01m';
    fi;
    NORMAL='^[[0m'
}
set_kvobj () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if kernel_is 2 6; then
        KV_OBJ="ko";
    else
        KV_OBJ="o";
    fi
}
source_all_bashrcs () 
{ 
    [[ $PORTAGE_BASHRCS_SOURCED = 1 ]] && return 0;
    PORTAGE_BASHRCS_SOURCED=1;
    local x;
    local OCC="${CC}" OCXX="${CXX}";
    if [[ $EBUILD_PHASE != depend ]]; then
        [ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}";
        IFS='
';
        local path_array=($PROFILE_PATHS);
        if [ "${old_IFS:-unset}" != "unset" ]; then
            IFS="${old_IFS}";
            unset old_IFS;
        else
            unset IFS;
        fi;
        for x in "${path_array[@]}";
        do
            [ -f "$x/profile.bashrc" ] && qa_source "$x/profile.bashrc";
        done;
    fi;
    if [ -f "${PORTAGE_BASHRC}" ]; then
        if [ "$PORTAGE_DEBUG" != "1" ] || [ "${-/x/}" != "$-" ]; then
            source "${PORTAGE_BASHRC}";
        else
            set -x;
            source "${PORTAGE_BASHRC}";
            set +x;
        fi;
    fi;
    [ ! -z "${OCC}" ] && export CC="${OCC}";
    [ ! -z "${OCXX}" ] && export CXX="${OCXX}"
}
src_compile () 
{ 
    linux-mod_src_compile;
    einfo "Building fgl_glxgears";
    cd "${S}"/extra/fgl_glxgears;
    "$(tc-getCC)" -o fgl_glxgears ${CFLAGS} ${LDFLAGS} -DUSE_GLU -I"${S}"/common/usr/include fgl_glxgears.c -lGL -lGLU -lX11 -lm || die "fgl_glxgears build failed";
    einfo "Building fglrx_gamma lib";
    cd "${S}"/extra/lib/fglrx_gamma;
    "$(tc-getCC)" -shared -fpic -o libfglrx_gamma.so.1.0 ${CFLAGS} ${LDFLAGS} -DXF86MISC -Wl,-soname,libfglrx_gamma.so.1.0 fglrx_gamma.c -lXext || die "fglrx_gamma lib build failed";
    ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so || die "ln failed";
    ln -s libfglrx_gamma.so.1.0 libfglrx_gamma.so.1 || die "ln failed";
    einfo "Building fglrx_gamma util";
    cd "${S}"/extra/programs/fglrx_gamma;
    "$(tc-getCC)" -o fglrx_xgamma ${CFLAGS} ${LDFLAGS} -I../../../common/usr/X11R6/include -L../../lib/fglrx_gamma fglrx_xgamma.c -lm -lfglrx_gamma -lX11 || die "fglrx_gamma util build failed"
}
src_install () 
{ 
    linux-mod_src_install;
    echo "COLON_SEPARATED=LIBGL_DRIVERS_PATH" > "${T}/03ati-colon-sep";
    doenvd "${T}/03ati-colon-sep";
    if has_multilib_profile; then
        local OABI=${ABI};
        for ABI in $(get_install_abis);
        do
            src_install-libs;
        done;
        ABI=${OABI};
        unset OABI;
    else
        src_install-libs;
    fi;
    exeinto /usr/$(get_libdir)/xorg/modules/drivers;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/drivers/fglrx_drv.so;
    exeinto /usr/$(get_libdir)/xorg/modules/linux;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/linux/libfglrxdrm.so;
    exeinto /usr/$(get_libdir)/xorg/modules;
    doexe "${MY_BASE_DIR}"/usr/X11R6/${PKG_LIBDIR}/modules/{esut.a,glesx.so,amdxmm.so};
    into /opt;
    if use acpi; then
        dosbin "${ARCH_DIR}"/usr/sbin/atieventsd;
    fi;
    dobin "${ARCH_DIR}"/usr/X11R6/bin/*;
    exeinto /usr/$(get_libdir);
    doexe $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} 		-maxdepth 1 -type f -name '*.so*' -not -name 'libGL.so*');
    insinto /usr/$(get_libdir);
    doins $(find "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR} 		-maxdepth 1 -type f -not -name '*.so*');
    insinto /etc/ati;
    doins common/etc/ati/{logo*,control,atiogl.xml,signature,amdpcsdb.default};
    if use acpi; then
        doins common/etc/ati/authatieventsd.sh;
    fi;
    insinto /usr;
    doins -r common/usr/include;
    insinto /usr/include/X11/extensions;
    doins common/usr/X11R6/include/X11/extensions/fglrx_gamma.h;
    into /usr;
    dosbin common/usr/sbin/*;
    insinto /usr/share;
    doins -r common/usr/share/ati;
    insinto /usr/share/pixmaps;
    doins common/usr/share/icons/ccc_{large,small}.xpm;
    make_desktop_entry amdcccle 'ATI Catalyst Control Center' ccc_large System;
    dohtml -r common/usr/share/doc/fglrx;
    if use acpi; then
        doman common/usr/share/man/man8/atieventsd.8;
        pushd common/usr/share/doc/fglrx/examples/etc/acpi > /dev/null;
        exeinto /etc/acpi;
        doexe ati-powermode.sh;
        insinto /etc/acpi/events;
        doins events/*;
        popd > /dev/null;
    fi;
    dobin extra/fgl_glxgears/fgl_glxgears;
    newdoc extra/fgl_glxgears/README README.fgl_glxgears;
    dolib extra/lib/fglrx_gamma/*so*;
    newdoc extra/lib/fglrx_gamma/README README.libfglrx_gamma;
    dobin extra/programs/fglrx_gamma/fglrx_xgamma;
    doman extra/programs/fglrx_gamma/fglrx_xgamma.1;
    newdoc extra/programs/fglrx_gamma/README README.fglrx_gamma;
    if use acpi; then
        newinitd "${FILESDIR}"/atieventsd.init atieventsd || die "Failed to install atieventsd.init.d";
        echo 'ATIEVENTSDOPTS=""' > "${T}"/atieventsd.conf;
        newconfd "${T}"/atieventsd.conf atieventsd;
    fi
}
src_install-libs () 
{ 
    if [[ "${ABI}" == "amd64" ]]; then
        local EX_BASE_DIR="${BASE_DIR}_64a";
        local pkglibdir=lib64;
        local MY_ARCH_DIR="${S}/arch/x86_64";
    else
        local EX_BASE_DIR="${BASE_DIR}";
        local pkglibdir=lib;
        local MY_ARCH_DIR="${S}/arch/x86";
    fi;
    einfo "ati tree '${pkglibdir}' -> '$(get_libdir)' on system";
    local ATI_ROOT=/usr/$(get_libdir)/opengl/ati;
    local libmajor=1 libminor=2;
    local libver=${libmajor}.${libminor};
    exeinto ${ATI_ROOT}/lib;
    doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/libGL.so.${libver};
    dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so.${libmajor};
    dosym libGL.so.${libver} ${ATI_ROOT}/lib/libGL.so;
    exeinto ${ATI_ROOT}/extensions;
    doexe "${EX_BASE_DIR}"/usr/X11R6/${pkglibdir}/modules/extensions/*;
    exeinto /usr/$(get_libdir)/dri;
    doexe "${MY_ARCH_DIR}"/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so;
    local revision=$(printf '%d%02d%02d' $(get_version_components));
    sed -e "s:\${libmajor}:${libmajor}:g" -e "s:\${libminor}:${libminor}:g" -e "s:\${libdir}:$(get_libdir):g" -e "s:\${revision}:${revision}:g" "${FILESDIR}"/libGL.la.in > "${D}"/${ATI_ROOT}/lib/libGL.la || die "sed failed to make libGL.la";
    local envname="${T}"/04ati-dri-path;
    if [[ -n ${ABI} ]]; then
        envname="${envname}-${ABI}";
    fi;
    echo "LIBGL_DRIVERS_PATH=/usr/$(get_libdir)/dri" > "${envname}";
    doenvd "${envname}"
}
src_test () 
{ 
    _eapi0_src_test "$@"
}
src_unpack () 
{ 
    local src="${DISTDIR}/${A}";
    sh "${src}" --extract "${S}" 2 /dev/null >&1;
    rm "${ARCH_DIR}"/usr/X11R6/bin/{fgl_glxgears,fglrx_xgamma} "${ARCH_DIR}"/usr/X11R6/${PKG_LIBDIR}/libfglrx_gamma* || die "bin rm failed";
    if use debug; then
        sed -i '/^#define DRM_DEBUG_CODE/s/0/1/' "${MODULE_DIR}/firegl_public.c" || die "Failed to enable debug output.";
    fi;
    if use acpi; then
        sed -i -e "s:/var/lib/xdm/authdir/authfiles/:/var/run/xauth/:" -e "s:/var/lib/gdm/:/var/gdm/:" "${S}/common/etc/ati/authatieventsd.sh" || die "sed failed.";
        sed -i -e 's:finger:who:' "${S}/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh" || die "Replacing 'finger' with 'who' failed.";
        epatch "${FILESDIR}"/${PV}/ati-powermode-opt-path-2.patch;
    fi;
    pushd ${MODULE_DIR} > /dev/null;
    ln -s "${ARCH_DIR}"/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC$(gcc-major-version) || die "symlinking precompiled core failed";
    convert_to_m 2.6.x/Makefile || die "convert_to_m failed";
    sed -i -e 's/__SMP__/CONFIG_SMP/' *.c *h || die "SMP sed failed";
    sed -i -e 's/ifdef MODVERSIONS/ifdef CONFIG_MODVERSIONS/' *.c *.h || die "MODVERSIONS sed failed";
    popd > /dev/null;
    mkdir extra || die "mkdir failed";
    cd extra;
    unpack ./../common/usr/src/ati/fglrx_sample_source.tgz;
    sed -i -e 's:include/extensions/extutil.h:X11/extensions/extutil.h:' lib/fglrx_gamma/fglrx_gamma.c || die "include fixup failed";
    mv programs/fglrx_gamma/fglrx_xgamma.{man,1} || die "man mv failed";
    cd ..
}
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
                    hasq ${f} ${ls} && newls="${newls} ${f}";
                else
                    hasq ${f} ${ls} || newls="${newls} ${f}";
                fi;
            done;
            ls=${newls};
        done;
    else
        ls="$@";
    fi;
    nols="";
    newls="";
    for f in ${LINGUAS};
    do
        if hasq ${f} ${ls}; then
            newls="${newls} ${f}";
        else
            nols="${nols} ${f}";
        fi;
    done;
    [[ -n ${nols} ]] && ewarn "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
    export LINGUAS=${newls:1}
}
strip_duplicate_slashes () 
{ 
    if [[ -n $1 ]]; then
        local removed=$1;
        while [[ ${removed} == *//* ]]; do
            removed=${removed//\/\///};
        done;
        echo ${removed};
    fi
}
strip_modulenames () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local i;
    for i in ${MODULE_IGNORE};
    do
        MODULE_NAMES=${MODULE_NAMES//${i}(*};
    done
}
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 
        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*)
            echo big
        ;;
        s390*)
            echo big
        ;;
        sh*b*)
            echo big
        ;;
        sh*)
            echo little
        ;;
        sparc*)
            echo big
        ;;
        x86_64*)
            echo little
        ;;
        *)
            echo wtf
        ;;
    esac
}
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-getAR () 
{ 
    tc-getPROG AR ar "$@"
}
tc-getAS () 
{ 
    tc-getPROG AS as "$@"
}
tc-getBUILD_CC () 
{ 
    local v;
    for v in CC_FOR_BUILD BUILD_CC HOSTCC;
    do
        if [[ -n ${!v} ]]; then
            export BUILD_CC=${!v};
            echo "${!v}";
            return 0;
        fi;
    done;
    local search=;
    if [[ -n ${CBUILD} ]]; then
        search=$(type -p ${CBUILD}-gcc);
        search=${search##*/};
    fi;
    search=${search:-gcc};
    export BUILD_CC=${search};
    echo "${search}"
}
tc-getCC () 
{ 
    tc-getPROG CC gcc "$@"
}
tc-getCPP () 
{ 
    tc-getPROG CPP cpp "$@"
}
tc-getCXX () 
{ 
    tc-getPROG CXX g++ "$@"
}
tc-getF77 () 
{ 
    tc-getPROG F77 f77 "$@"
}
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-getPROG () 
{ 
    local var=$1;
    local prog=$2;
    if [[ -n ${!var} ]]; then
        echo "${!var}";
        return 0;
    fi;
    local search=;
    [[ -n $3 ]] && search=$(type -p "$3-${prog}");
    [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}");
    [[ -n ${search} ]] && prog=${search##*/};
    export ${var}=${prog};
    echo "${!var}"
}
tc-getRANLIB () 
{ 
    tc-getPROG RANLIB ranlib "$@"
}
tc-getSTRIP () 
{ 
    tc-getPROG STRIP strip "$@"
}
tc-is-cross-compiler () 
{ 
    return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]])
}
tc-is-softfloat () 
{ 
    case ${CTARGET} in 
        bfin* | h8300*)
            echo "only"
        ;;
        *)
            [[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no"
        ;;
    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}};
    case ${host} in 
        alpha*)
            echo alpha
        ;;
        arm*)
            echo arm
        ;;
        avr*)
            ninj avr32 avr
        ;;
        bfin*)
            ninj blackfin bfin
        ;;
        cris*)
            echo cris
        ;;
        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
        ;;
        mips*)
            echo mips
        ;;
        nios2*)
            echo nios2
        ;;
        nios*)
            echo nios
        ;;
        powerpc*)
            if [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]] && [[ ${type} == "kern" ]]; then
                echo powerpc;
            else
                if [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]] && [[ ${type} == "kern" ]]; 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
        ;;
        sh64*)
            ninj sh64 sh
        ;;
        sh*)
            echo sh
        ;;
        sparc64*)
            ninj sparc64 sparc
        ;;
        sparc*)
            [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
        ;;
        vax*)
            echo vax
        ;;
        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
        ;;
        *)
            echo unknown
        ;;
    esac
}
treecopy () 
{ 
    dest=${!#};
    files_count=$#;
    while (( $# > 1 )); do
        dirstruct=$(dirname "$1");
        mkdir -p "${dest}/${dirstruct}";
        cp -pPR "$1" "${dest}/${dirstruct}";
        shift;
    done
}
unpack () 
{ 
    local srcdir;
    local x;
    local y;
    local myfail;
    local eapi=${EAPI:-0};
    [ -z "$*" ] && die "Nothing passed to the 'unpack' command";
    for x in "$@";
    do
        vecho ">>> Unpacking ${x} to ${PWD}";
        y=${x%.*};
        y=${y##*.};
        if [[ ${x} == "./"* ]]; then
            srcdir="";
        else
            if [[ ${x} == ${DISTDIR%/}/* ]]; then
                die "Arguments to unpack() cannot begin with \${DISTDIR}.";
            else
                if [[ ${x} == "/"* ]]; then
                    die "Arguments to unpack() cannot be absolute";
                else
                    srcdir="${DISTDIR}/";
                fi;
            fi;
        fi;
        [[ ! -s ${srcdir}${x} ]] && die "${x} does not exist";
        function _unpack_tar () 
        { 
            if [ "${y}" == "tar" ]; then
                $1 -dc "$srcdir$x" | tar xof -;
                _pipestatus="${PIPESTATUS[*]}";
                [[ "${_pipestatus// /}" -eq 0 ]] || die "$myfail";
            else
                $1 -dc "${srcdir}${x}" > ${x%.*} || die "$myfail";
            fi
        };
        myfail="failure unpacking ${x}";
        case "${x##*.}" in 
            tar)
                tar xof "$srcdir$x" || die "$myfail"
            ;;
            tgz)
                tar xozf "$srcdir$x" || die "$myfail"
            ;;
            tbz | tbz2)
                bzip2 -dc "$srcdir$x" | tar xof -;
                _pipestatus="${PIPESTATUS[*]}";
                [[ "${_pipestatus// /}" -eq 0 ]] || die "$myfail"
            ;;
            ZIP | zip | jar)
                unzip -qo "${srcdir}${x}" || die "$myfail"
            ;;
            gz | Z | z)
                _unpack_tar gzip
            ;;
            bz2 | bz)
                _unpack_tar bzip2
            ;;
            7Z | 7z)
                local my_output;
                my_output="$(7z x -y "${srcdir}${x}")";
                if [ $? -ne 0 ]; then
                    echo "${my_output}" 1>&2;
                    die "$myfail";
                fi
            ;;
            RAR | rar)
                unrar x -idq -o+ "${srcdir}${x}" || die "$myfail"
            ;;
            LHa | LHA | lha | lzh)
                lha xfq "${srcdir}${x}" || die "$myfail"
            ;;
            a)
                ar x "${srcdir}${x}" || die "$myfail"
            ;;
            deb)
                if type -P deb2targz > /dev/null; then
                    y=${x##*/};
                    local created_symlink=0;
                    if [ ! "$srcdir$x" -ef "$y" ]; then
                        ln -sf "$srcdir$x" "$y" || die "$myfail";
                        created_symlink=1;
                    fi;
                    deb2targz "$y" || die "$myfail";
                    if [ $created_symlink = 1 ]; then
                        rm -f "$y";
                    fi;
                    mv -f "${y%.deb}".tar.gz data.tar.gz || die "$myfail";
                else
                    ar x "$srcdir$x" || die "$myfail";
                fi
            ;;
            lzma)
                _unpack_tar lzma
            ;;
            xz)
                if hasq $eapi 0 1 2; then
                    vecho "unpack ${x}: file format not recognized. Ignoring.";
                else
                    _unpack_tar xz;
                fi
            ;;
            *)
                vecho "unpack ${x}: file format not recognized. Ignoring."
            ;;
        esac;
    done;
    find . -mindepth 1 -maxdepth 1 ! -type l -print0 | ${XARGS} -0 chmod -fR a+rX,u+w,g-w,o-w
}
unpack_makeself () 
{ 
    local src_input=${1:-${A}};
    local src=$(find_unpackable_file "${src_input}");
    local skip=$2;
    local exe=$3;
    [[ -z ${src} ]] && die "Could not locate source for '${src_input}'";
    local shrtsrc=$(basename "${src}");
    echo ">>> Unpacking ${shrtsrc} to ${PWD}";
    if [[ -z ${skip} ]]; then
        local ver=$(grep -a '#.*Makeself' "${src}" | awk '{print $NF}');
        local skip=0;
        exe=tail;
        case ${ver} in 
            1.5.* | 1.6.0-nv)
                skip=$(grep -a ^skip= "${src}" | cut -d= -f2)
            ;;
            2.0 | 2.0.1)
                skip=$(grep -a ^'	'tail "${src}" | awk '{print $2}' | cut -b2-)
            ;;
            2.1.1)
                skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-);
                let skip="skip + 1"
            ;;
            2.1.2)
                skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1);
                let skip="skip + 1"
            ;;
            2.1.3)
                skip=`grep -a ^offset= "${src}" | awk '{print $3}'`;
                let skip="skip + 1"
            ;;
            2.1.4 | 2.1.5)
                skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1);
                skip=$(head -n ${skip} "${src}" | wc -c);
                exe="dd"
            ;;
            *)
                eerror "I'm sorry, but I was unable to support the Makeself file.";
                eerror "The version I detected was '${ver}'.";
                eerror "Please file a bug about the file ${shrtsrc} at";
                eerror "http://bugs.gentoo.org/ so that support can be added.";
                die "makeself version '${ver}' not supported"
            ;;
        esac;
        debug-print "Detected Makeself version ${ver} ... using ${skip} as offset";
    fi;
    case ${exe} in 
        tail)
            exe="tail -n +${skip} '${src}'"
        ;;
        dd)
            exe="dd ibs=${skip} skip=1 obs=1024 conv=sync if='${src}'"
        ;;
        *)
            die "makeself cant handle exe '${exe}'"
        ;;
    esac;
    local tmpfile=$(emktemp);
    eval ${exe} 2> /dev/null | head -c 512 > "${tmpfile}";
    local filetype=$(file -b "${tmpfile}");
    case ${filetype} in 
        *tar\ archive*)
            eval ${exe} | tar --no-same-owner -xf -
        ;;
        bzip2*)
            eval ${exe} | bzip2 -dc | tar --no-same-owner -xf -
        ;;
        gzip*)
            eval ${exe} | tar --no-same-owner -xzf -
        ;;
        compress*)
            eval ${exe} | gunzip | tar --no-same-owner -xf -
        ;;
        *)
            eerror "Unknown filetype \"${filetype}\" ?";
            false
        ;;
    esac;
    _pipestatus="${PIPESTATUS[*]}";
    [[ "${_pipestatus// /}" -eq 0 ]] || die "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})"
}
unpack_pdv () 
{ 
    local src=$(find_unpackable_file "$1");
    local sizeoff_t=$2;
    [[ -z ${src} ]] && die "Could not locate source for '$1'";
    [[ -z ${sizeoff_t} ]] && die "No idea what off_t size was used for this pdv :(";
    local shrtsrc=$(basename "${src}");
    echo ">>> Unpacking ${shrtsrc} to ${PWD}";
    local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\");
    local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\");
    local metafile=$(emktemp);
    tail -c +$((${metaskip}+1)) "${src}" > "${metafile}";
    local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1);
    datafile=$(basename "${datafile}");
    local tmpfile=$(emktemp);
    tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > ${tmpfile};
    local iscompressed=$(file -b "${tmpfile}");
    if [[ ${iscompressed:0:8} == "compress" ]]; then
        iscompressed=1;
        mv ${tmpfile}{,.Z};
        gunzip ${tmpfile};
    else
        iscompressed=0;
    fi;
    local istar=$(file -b "${tmpfile}");
    if [[ ${istar:0:9} == "POSIX tar" ]]; then
        istar=1;
    else
        istar=0;
    fi;
    if [ ${iscompressed} -eq 1 ]; then
        if [ ${istar} -eq 1 ]; then
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -;
        else
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile};
        fi;
    else
        if [ ${istar} -eq 1 ]; then
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -;
        else
            tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile};
        fi;
    fi;
    true
}
unset_colors () 
{ 
    COLS="25 80";
    ENDCOL=;
    GOOD=;
    WARN=;
    BAD=;
    NORMAL=;
    HILITE=;
    BRACKET=
}
update_depmod () 
{ 
    debug-print-function ${FUNCNAME} $*;
    get_version;
    ebegin "Updating module dependencies for ${KV_FULL}";
    if [ -r ${KV_OUT_DIR}/System.map ]; then
        depmod -ae -F ${KV_OUT_DIR}/System.map -b ${ROOT} -r ${KV_FULL};
        eend $?;
    else
        ewarn;
        ewarn "${KV_OUT_DIR}/System.map not found.";
        ewarn "You must manually update the kernel module dependencies using depmod.";
        eend 1;
        ewarn;
    fi
}
update_moduledb () 
{ 
    debug-print-function ${FUNCNAME} $*;
    local MODULEDB_DIR=${ROOT}/var/lib/module-rebuild/;
    move_old_moduledb;
    if [[ ! -f ${MODULEDB_DIR}/moduledb ]]; then
        [[ ! -d ${MODULEDB_DIR} ]] && mkdir -p ${MODULEDB_DIR};
        touch ${MODULEDB_DIR}/moduledb;
    fi;
    if ! grep -qs ${CATEGORY}/${PN}-${PVR} ${MODULEDB_DIR}/moduledb; then
        einfo "Adding module to moduledb.";
        echo "a:1:${CATEGORY}/${PN}-${PVR}" >> ${MODULEDB_DIR}/moduledb;
    fi
}
update_modules () 
{ 
    debug-print-function ${FUNCNAME} $*;
    if [ -x /sbin/update-modules ] && grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* > /dev/null 2>&1; then
        ebegin "Updating modules.conf";
        /sbin/update-modules;
        eend $?;
    else
        if [ -x /sbin/update-modules ] && grep -v -e "^#" -e "^$" ${D}/etc/modules.d/* > /dev/null 2>&1; then
            ebegin "Updating modules.conf";
            /sbin/update-modules;
            eend $?;
        fi;
    fi
}
use () 
{ 
    useq ${1}
}
use_enable () 
{ 
    if [ -z "$1" ]; then
        echo "!!! use_enable() called without a parameter." 1>&2;
        echo "!!! use_enable <USEFLAG> [<flagname> [value]]" 1>&2;
        return 1;
    fi;
    local UE_SUFFIX="";
    if [ ! -z "${3}" ]; then
        UE_SUFFIX="=${3}";
    fi;
    local UWORD="$2";
    if [ -z "${UWORD}" ]; then
        UWORD="$1";
    fi;
    if useq $1; then
        echo "--enable-${UWORD}${UE_SUFFIX}";
    else
        echo "--disable-${UWORD}";
    fi;
    return 0
}
use_m () 
{ 
    debug-print-function ${FUNCNAME} $*;
    get_version;
    [ ${KV_MAJOR} -eq 2 -a ${KV_MINOR} -gt 5 -a ${KV_PATCH} -gt 5 ] && return 0 || return 1
}
use_with () 
{ 
    if [ -z "$1" ]; then
        echo "!!! use_with() called without a parameter." 1>&2;
        echo "!!! use_with <USEFLAG> [<flagname> [value]]" 1>&2;
        return 1;
    fi;
    local UW_SUFFIX="";
    if [ ! -z "${3}" ]; then
        UW_SUFFIX="=${3}";
    fi;
    local UWORD="$2";
    if [ -z "${UWORD}" ]; then
        UWORD="$1";
    fi;
    if useq $1; then
        echo "--with-${UWORD}${UW_SUFFIX}";
    else
        echo "--without-${UWORD}";
    fi;
    return 0
}
useq () 
{ 
    local u=$1;
    local found=0;
    if [[ ${u:0:1} == "!" ]]; then
        u=${u:1};
        found=1;
    fi;
    if [[ $EBUILD_PHASE = depend ]]; then
        if [[ -n $EAPI ]] && ! hasq "$EAPI" 0 1 2; then
            die "use() called during invalid phase: $EBUILD_PHASE";
        fi;
    else
        if [[ -n $PORTAGE_IUSE && -n $EBUILD_PHASE ]]; then
            [[ $u =~ $PORTAGE_IUSE ]] || eqawarn "QA Notice: USE Flag '${u}' not" "in IUSE for ${CATEGORY}/${PF}";
        fi;
    fi;
    if hasq ${u} ${USE}; then
        return ${found};
    else
        return $((!found));
    fi
}
usev () 
{ 
    if useq ${1}; then
        echo "${1}";
        return 0;
    fi;
    return 1
}
validate_desktop_entries () 
{ 
    if [[ -x /usr/bin/desktop-file-validate ]]; then
        einfo "Checking desktop entry validity";
        local directories="";
        for d in /usr/share/applications $@;
        do
            [[ -d ${D}${d} ]] && directories="${directories} ${D}${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/${D}/}:};
            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
}
vecho () 
{ 
    quiet_mode || echo "$@"
}
version_compare () 
{ 
    __versionator_shopt_toggle on;
    local ver_a=${1} ver_b=${2} parts_a parts_b cur_idx_a=0 cur_idx_b=0;
    parts_a=($(get_all_version_components "${ver_a}" ));
    parts_b=($(get_all_version_components "${ver_b}" ));
    local inf_loop=0;
    while true; do
        inf_loop=$(( ${inf_loop} + 1 ));
        [[ ${inf_loop} -gt 20 ]] && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]";
        local cur_tok_a=${parts_a[${cur_idx_a}]};
        local cur_tok_b=${parts_b[${cur_idx_b}]};
        if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then
            cur_idx_a=$(( ${cur_idx_a} + 1 ));
            [[ ${parts_a[${cur_idx_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=$(( ${cur_idx_b} + 1 ));
            [[ ${parts_b[${cur_idx_b}]} == "." ]] && cur_idx_b=$(( ${cur_idx_b} + 1 ));
        else
            cur_tok_b="";
        fi;
        [[ -z ${cur_tok_a} ]] && [[ -z ${cur_tok_b} ]] && break;
        cur_tok_a=${cur_tok_a##+(0)};
        cur_tok_b=${cur_tok_b##+(0)};
        [[ -z ${cur_tok_a} ]] && cur_tok_a=0;
        [[ -z ${cur_tok_b} ]] && cur_tok_b=0;
        [[ ${cur_tok_a} -lt ${cur_tok_b} ]] && __versionator_shopt_toggle off && return 1;
        [[ ${cur_tok_a} -gt ${cur_tok_b} ]] && __versionator_shopt_toggle off && return 3;
    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=$(( ${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=$(( ${cur_idx_b} + 1 ));
    else
        letter_b="@";
    fi;
    [[ ${letter_a} < ${letter_b} ]] && __versionator_shopt_toggle off && return 1;
    [[ ${letter_a} > ${letter_b} ]] && __versionator_shopt_toggle off && return 3;
    local suffix rule part r_lt r_gt;
    for rule in "alpha=1" "beta=1" "pre=1" "rc=1" "p=3" "r=3";
    do
        suffix=${rule%%=*};
        r_lt=${rule##*=};
        [[ ${r_lt} -eq 1 ]] && r_gt=3 || r_gt=1;
        local suffix_a=;
        for part in ${parts_a[@]};
        do
            [[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_a=${part#${suffix}}0;
        done;
        local suffix_b=;
        for part in ${parts_b[@]};
        do
            [[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_b=${part#${suffix}}0;
        done;
        [[ -z ${suffix_a} ]] && [[ -z ${suffix_b} ]] && continue;
        [[ -z ${suffix_a} ]] && __versionator_shopt_toggle off && return ${r_gt};
        [[ -z ${suffix_b} ]] && __versionator_shopt_toggle off && return ${r_lt};
        suffix_a=${suffix_a##+(0)};
        suffix_a=${suffix_a:-0};
        suffix_b=${suffix_b##+(0)};
        suffix_b=${suffix_b:-0};
        [[ ${suffix_a} -lt ${suffix_b} ]] && __versionator_shopt_toggle off && return 1;
        [[ ${suffix_a} -gt ${suffix_b} ]] && __versionator_shopt_toggle off && return 3;
    done;
    __versionator_shopt_toggle off;
    return 2
}
version_is_at_least () 
{ 
    __versionator_shopt_toggle on;
    local want_s="$1" have_s="${2:-${PVR}}" r;
    version_compare "${want_s}" "${have_s}";
    r=$?;
    case $r in 
        1 | 2)
            __versionator_shopt_toggle off;
            return 0
        ;;
        3)
            __versionator_shopt_toggle off;
            return 1
        ;;
        *)
            __versionator_shopt_toggle off;
            die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]"
        ;;
    esac;
    __versionator_shopt_toggle off
}
version_sort () 
{ 
    __versionator_shopt_toggle on;
    local items= left=0;
    items=($@);
    while [[ ${left} -lt ${#items[@]} ]]; do
        local lowest_idx=${left};
        local idx=$(( ${lowest_idx} + 1 ));
        while [[ ${idx} -lt ${#items[@]} ]]; do
            version_compare "${items[${lowest_idx}]}" "${items[${idx}]}";
            [[ $? -eq 3 ]] && lowest_idx=${idx};
            idx=$(( ${idx} + 1 ));
        done;
        local tmp=${items[${lowest_idx}]};
        items[${lowest_idx}]=${items[${left}]};
        items[${left}]=${tmp};
        left=$(( ${left} + 1 ));
    done;
    echo ${items[@]};
    __versionator_shopt_toggle off
}
declare -x ABI="amd64"
declare -x ALSA_CARDS=""
declare -x ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"
declare -x ANT_HOME="/usr/share/ant"
declare -x APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias"
declare -x ARCH="amd64"
declare -x ASFLAGS_x86="--32"
declare -x BUILD_PREFIX="/var/tmp/portage"
declare -x CATEGORY="x11-drivers"
declare -x CBUILD="x86_64-pc-linux-gnu"
declare -x CCACHE_DIR="/var/tmp/ccache"
declare -x CDEFINE_amd64="__x86_64__"
declare -x CDEFINE_default="__unix__"
declare -x CDEFINE_x86="__i386__"
declare -x CFLAGS="-Os -march=opteron -mtune=opteron -fomit-frame-pointer -ggdb"
declare -x CFLAGS_default
declare -x CFLAGS_x86="-m32"
declare -x CHOST="x86_64-pc-linux-gnu"
declare -x CHOST_amd64="x86_64-pc-linux-gnu"
declare -x CHOST_default="x86_64-pc-linux-gnu"
declare -x CHOST_x86="i686-pc-linux-gnu"
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="x86_64-pc-linux-gnu"
declare -x CVS_RSH="ssh"
declare -x CXXFLAGS="-Os -march=opteron -mtune=opteron -fomit-frame-pointer -ggdb"
declare -rx D="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/image/"
declare -x DCCC_PATH="/usr/lib64/distcc/bin"
declare -x DEFAULT_ABI="amd64"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x DISPLAY=":0.0"
declare -x DISTCC_LOG=""
declare -x DISTCC_VERBOSE="0"
declare -x DISTDIR="/usr/portage/distfiles"
declare -rx EAPI="0"
declare -rx EBUILD="/usr/portage/x11-drivers/ati-drivers/ati-drivers-8.552-r2.ebuild"
declare -x EBUILD_EXIT_STATUS_FILE="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/.exit_status"
declare -x EBUILD_MASTER_PID="12754"
declare -rx EBUILD_PHASE="setup"
declare -x ECLASSDIR="/usr/portage/eclass"
declare -ix ECLASS_DEPTH="0"
declare -x EDITOR="/bin/nano"
declare -x ELIBC="glibc"
declare -rx EMERGE_FROM="ebuild"
declare -x EXEOPTIONS="-m0755"
declare -x FEATURES="ccache distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
declare -rx FILESDIR="/usr/portage/x11-drivers/ati-drivers/files"
declare -x GCC_SPECS=""
declare -x GDK_USE_XFT="1"
declare -x GUILE_LOAD_PATH="/usr/share/guile/1.8"
declare -x G_FILENAME_ENCODING="@locale"
declare -x HOME="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/homedir"
declare -rx INHERITED="toolchain-funcs portability versionator multilib linux-info linux-mod eutils"
declare -x INPUT_DEVICES="keyboard mouse"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac"
declare -x JAVACC_HOME="/usr/share/javacc/"
declare -x JAVA_HOME="/etc/java-config-2/current-system-vm"
declare -x JDK_HOME="/etc/java-config-2/current-system-vm"
declare -x KDEDIRS="/usr"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="amd64"
declare -rx KEYWORDS="amd64 x86"
declare -x KV=""
declare -x LANG="en_US.utf-8"
declare -x LCD_DEVICES=""
declare -x LC_ALL="C"
declare -x LDFLAGS="-Wl,-O1"
declare -x LDFLAGS_default
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LESS="-R -M --shift 5"
declare -x LESSOPEN="|lesspipe.sh %s"
declare -x LIBDIR_amd64="lib64"
declare -x LIBDIR_amd64_fbsd="lib64"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_ppc="lib32"
declare -x LIBDIR_ppc64="lib64"
declare -x LIBDIR_sparc32="lib32"
declare -x LIBDIR_sparc64="lib64"
declare -x LIBDIR_x86="lib32"
declare -x LIBDIR_x86_fbsd="lib32"
declare -x LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib32/dri"
declare -x LIBOPTIONS="-m0644"
declare -rx LICENSE="AMD GPL-2 QPL-1.0 as-is"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
declare -x MAKEOPTS="-j5"
declare -x MOPREFIX="ati-drivers"
declare -x MULTILIB_ABIS="amd64 x86"
declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -x OLDPWD="/root"
declare -x OPENGL_PROFILE="xorg-x11"
declare -x P="ati-drivers-8.552"
declare -x PAGER="/usr/bin/less"
declare -x PATH="/usr/lib/ccache/bin:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin"
declare -x PF="ati-drivers-8.552-r2"
declare -x PKGDIR="/usr/portage/packages"
declare -x PKGUSE=""
declare -x PKG_CONFIG_PATH="/usr/qt/3/lib64/pkgconfig"
declare -x PKG_LOGDIR="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/logging"
declare -x PKG_TMPDIR="/var/tmp/binpkgs"
declare -x PN="ati-drivers"
declare -x PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha hppa amd64-fbsd sparc-fbsd"
declare -x PORTAGE_BASHRC="/etc/portage/bashrc"
declare -rx PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
declare -x PORTAGE_BUILDDIR="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2"
declare -x PORTAGE_COLORMAP="GOOD=\$'^[[32;01m'
WARN=\$'^[[33;01m'
BAD=\$'^[[31;01m'
HILITE=\$'^[[36m'
BRACKET=\$'^[[34;01m'"
declare -x PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
declare -x PORTAGE_CONFIGROOT="/"
declare -x PORTAGE_DEBUG="0"
declare -x PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
declare -x PORTAGE_GID="250"
declare -x PORTAGE_INST_GID="0"
declare -x PORTAGE_INST_UID="0"
declare -rx PORTAGE_IUSE="^(3dfx|acpi|adabas|alpha|alsa\\_cards\\_aoa|alsa\\_cards\\_aoa\\-fabric\\-layout|alsa\\_cards\\_aoa\\-onyx|alsa\\_cards\\_aoa\\-soundbus|alsa\\_cards\\_aoa\\-soundbus\\-i2s|alsa\\_cards\\_aoa\\-tas|alsa\\_cards\\_aoa\\-toonie|alsa\\_cards\\_armaaci|alsa\\_cards\\_at91\\-soc|alsa\\_cards\\_at91\\-soc\\-eti\\-b1\\-wm8731|alsa\\_cards\\_au1x00|alsa\\_cards\\_cs5535audio|alsa\\_cards\\_harmony|alsa\\_cards\\_powermac|alsa\\_cards\\_pxa2xx\\-i2sound|alsa\\_cards\\_pxa2xx\\-soc|alsa\\_cards\\_pxa2xx\\-soc\\-corgi|alsa\\_cards\\_pxa2xx\\-soc\\-poodle|alsa\\_cards\\_pxa2xx\\-soc\\-spitz|alsa\\_cards\\_pxa2xx\\-soc\\-tosa|alsa\\_cards\\_sa11xx\\-uda1341ts|alsa\\_cards\\_sun\\-amd7930|alsa\\_cards\\_sun\\-cs4231|alsa\\_cards\\_sun\\-dbri|altivec|amd64|amd64\\-fbsd|aqua|arm|asm|birdstep|bmp|bmpx|bootstrap|build|capslib|clvm|cman|cmucl|coreaudio|crosscompile\\_opts\\_.*|dbmaker|debug|doomsday|drac|elibc\\_AIX|elibc\\_Darwin|elibc\\_DragonFly|elibc\\_FreeBSD|elibc\\_HPUX|elibc\\_IRIX|elibc\\_Interix|elibc\\_NetBSD|elibc\\_OpenBSD|elibc\\_SunOS|elibc\\_.*|elibc\\_glibc|elibc\\_mintlib|elibc\\_uclibc|emf|empress|empress\\-bcs|esoob|fdftk|filepro|firebird|fixed\\-point|frontbase|gamess|gcc64|gulm|hppa|ia64|ibm|infopipe|informix|ingres|kdeprefix|kernel\\_AIX|kernel\\_Darwin|kernel\\_FreeBSD|kernel\\_HPUX|kernel\\_IRIX|kernel\\_Interix|kernel\\_NetBSD|kernel\\_OpenBSD|kernel\\_SunOS|kernel\\_.*|kernel\\_freemint|kernel\\_linux|lcd\\_devices\\_svga|m68k|macbook|mips|multilib|n32|n64|osp|pam\\_console|pbbuttonsd|pfpro|plugin|ppc|ppc64|ppcsha1|prefix|psyco|pvm|real|realcodecs|s390|selinux|sh|solid|sparc|sparc\\-fbsd|svga|sybase|sybase\\-ct|tcc|uclibc|ultra1|userland\\_BSD|userland\\_GNU|userland\\_.*|video\\_cards\\_geode|video\\_cards\\_i740|video\\_cards\\_impact|video\\_cards\\_imstt|video\\_cards\\_newport|video\\_cards\\_nsc|video\\_cards\\_sunbw2|video\\_cards\\_suncg14|video\\_cards\\_suncg3|video\\_cards\\_suncg6|video\\_cards\\_sunffb|video\\_cards\\_sunleo|video\\_cards\\_suntcx|video\\_cards\\_vermilion|video\\_cards\\_xgi|vidix|vis|win32codecs|x86|x86\\-fbsd|xmms|yellownet)\$"
declare -x PORTAGE_LOG_FILE="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp/build.log"
declare -x PORTAGE_MASTER_PID="25750"
declare -rx PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
declare -x PORTAGE_REPO_NAME="gentoo"
declare -x PORTAGE_RESTRICT=""
declare -rx PORTAGE_TMPDIR="/var/tmp"
declare -x PORTAGE_UPDATE_ENV="/var/db/pkg/x11-drivers/xf86-input-keyboard-1.3.2/environment.bz2"
declare -x PORTAGE_VERBOSE="1"
declare -x PORTAGE_WORKDIR_MODE="0700"
declare -x PORTDIR="/usr/portage"
declare -x PORTDIR_OVERLAY=""
declare -x PR="r2"
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -x PROFILE_PATHS="/usr/portage/profiles/base
/usr/portage/profiles/default/linux
/usr/portage/profiles/arch/base
/usr/portage/profiles/features/multilib
/usr/portage/profiles/arch/amd64
/usr/portage/profiles/default/linux/amd64
/usr/portage/profiles/releases
/usr/portage/profiles/releases/2008.0
/usr/portage/profiles/default/linux/amd64/2008.0
/etc/portage/profile"
declare -x PROPERTIES=""
declare -rx PROVIDE=""
declare -x PV="8.552"
declare -x PVR="8.552-r2"
declare -x PWD="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2"
declare -x QMAKESPEC="linux-g++"
declare -x QTDIR="/usr/qt/3"
declare -rx RESTRICT=""
declare -x ROOT="/"
declare -x ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.2:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin"
declare -x RPMDIR="/usr/portage/rpm"
declare -x RSYNC_EXCLUDEFROM="/etc/portage/rsync_excludes"
declare -x R_HOME="/usr/lib64/R"
declare -x S="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work"
declare -x SAGE_ROOT="/usr/local/sage-2.8.2-debian32-i686-Linux"
declare -x SANDBOX_LOG="x11-drivers_-_ati-drivers-8.552-r2"
declare -x SANDBOX_ON="0"
declare -x SANDBOX_PREDICT="/proc/self/maps:/dev/console:/dev/random"
declare -x SANDBOX_READ="/:/dev/shm:/dev/stdin:/var/tmp:/var/tmp/ccache"
declare -x SANDBOX_WRITE="/dev/shm:/dev/stdout:/dev/stderr:/var/tmp:/var/tmp/ccache"
declare -x SCHEME_LIBRARY_PATH="/usr/share/slib/"
declare -x SGML_CATALOG_FILES="/etc/sgml/sgml-docbook.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/dsssl-docbook-stylesheets.cat"
declare -x SHELL="/bin/bash"
declare -x SHLVL="3"
declare -rx SLOT="0"
declare -x STAGE1_USE="multilib nptl nptlonly unicode"
declare -x STARTDIR="/root"
declare -x SYMLINK_LIB="yes"
declare -rx T="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp"
declare -x TERM="xterm"
declare -x TMP="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp"
declare -x TMPDIR="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/temp"
declare -x USE="acpi amd64 elibc_glibc kernel_linux multilib userland_GNU"
declare -x USER="root"
declare -x USERLAND="GNU"
declare -x USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS USERLAND VIDEO_CARDS"
declare -x VIDEO_CARDS=""
declare -rx WORKDIR="/var/tmp/portage/x11-drivers/ati-drivers-8.552-r2/work"
declare -x XARGS="xargs -r"
declare -x XAUTHORITY="/root/.xauthEmg9wZ"
declare -x XDG_CONFIG_DIRS="/etc/xdg"
declare -x XDG_DATA_DIRS="/usr/local/share:/usr/kde/3.5/share:/usr/share"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2009-06-23  3:25 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-21 17:47 [gentoo-amd64] emerge -eav system failed with ati-drivers John P. Burkett
2009-06-21 17:55 ` Drake Donahue
2009-06-21 18:17   ` David Relson
2009-06-21 18:54     ` John P. Burkett
2009-06-21 19:10       ` David Relson
2009-06-21 19:19         ` John P. Burkett
2009-06-21 20:10           ` David Relson
2009-06-21 20:48           ` Drake Donahue
2009-06-21 21:55             ` John P. Burkett
2009-06-21 23:05               ` David Fellows
2009-06-21 23:13                 ` Mark Knecht
2009-06-21 23:58                 ` John P. Burkett
2009-06-22 14:19                   ` David Fellows
2009-06-22 15:49                     ` John P. Burkett
2009-06-22 17:54                       ` David Fellows
2009-06-22 22:59                         ` John P. Burkett
2009-06-23  3:25                         ` [gentoo-amd64] " Duncan
2009-06-22 14:00                 ` [gentoo-amd64] " John P. Burkett
2009-06-21 23:19               ` [gentoo-amd64] " Duncan
2009-06-22  0:02                 ` John P. Burkett
2009-06-22  0:46                   ` David Relson
2009-06-21 18:40   ` [gentoo-amd64] " John P. Burkett
  -- strict thread matches above, loose matches on Subject: below --
2009-06-22  0:44 John P. Burkett
2009-06-20 23:01 John P. Burkett
2009-06-21  4:49 ` Drake Donahue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox