public inbox for gentoo-amd64@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-amd64] Failures on updating KDE to 4.4.1 - unable to update kmail
@ 2010-03-08 10:12 Paul Stear
  2010-03-08 10:12 ` Paul Stear
  2010-03-08 16:54 ` [gentoo-amd64] " Duncan
  0 siblings, 2 replies; 10+ messages in thread
From: Paul Stear @ 2010-03-08 10:12 UTC (permalink / raw
  To: gentoo-amd64

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

SORRY FORGOT TO ADD THE ATTACHMENTS.
Hi,
I have been trying for days to get my kde system working again properly.
kmail hasn't been updated yet because kdepim-runtime-4.4.1 fails with the
following error:-

-----------------------------------------------------------------------------
-- The following REQUIRED packages could NOT be located on your system.
-- You must install these packages before continuing.
-----------------------------------------------------------------------------
      * Nepomuk  <http://www.kde.org>
        The Nepomuk libraries
        Nepomuk extends the search and tagging functionalities in KMail and
Akonadi

-----------------------------------------------------------------------------

CMake Error at /usr/share/apps/cmake/modules/MacroLogFeature.cmake:141
(MESSAGE):
     Exiting: Missing Requirements
Call Stack (most recent call first):
     CMakeLists.txt:128 (macro_display_feature_log)

I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems that
kdepim can not find it.
I attach the complete build log and the output of 'emerge -pqv
=kde-base/kdepim-runtime-4.4.1
and The ebuild environment file is located at
'/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/temp/environment

The following is emerge info:

~/ > emerge --info =kde-base/kdepim-runtime-4.4.1
Portage 2.1.8.1 (default/linux/amd64/10.0/desktop, gcc-4.3.4,
glibc-2.11-r1, 2.6.32-gentoo-r1 x86_64)
=================================================================
                           System Settings
=================================================================
System uname:
Linux-2.6.32-gentoo-r1-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4600+-with-gentoo-2.0.1
Timestamp of tree: Mon, 08 Mar 2010 07:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.1_p2
dev-java/java-config: 2.1.10
dev-lang/python:     2.6.4-r1, 3.1.1-r1
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.8.0-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.0-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1
sys-devel/gcc:       4.3.4, 4.4.3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.33
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe
-fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/
/etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/java-config/vms/
/etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo
/etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d
/etc/texmf/web2c"
CXXFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe
-fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FEATURES="assume-digests ccache distlocks fixpackages metadata-transfer
news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs
unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org
http://www.ibiblio.org/pub/Linux/distributions/gentoo
http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/
ftp://mirror.qubenet.net/mirror/gentoo/
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo
http://pandemonium.tiscali.de/pub/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,--as-needed,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
LINGUAS="en_GB"
MAKEOPTS="-j5 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times
--compress --force --whole-file --delete --stats --timeout=180
--exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 avi bash-completion
berkdb bluetooth branding bzip2 cairo cdparanoia cdr clamav cli consolekit
cracklib crypt cups cxx dbus divx divx4linux dri dts dv dvb dvd dvdr
dvdread eds embedded emboss encode evo examples fam ffmpeg flac fortran
gdbm gif gphoto2 gpm gstreamer hal iconv imagemagick ipv6 jack java java6
javascript jpeg kde kerberos lame ldap libnotify lm_sensors logrotate mad
mikmod mjpeg mmx mng modules mp3 mp4 mpeg mplayer mudflap multilib mysql
ncurses nls nptl nptlonly nsplugin nvidia ogg opengl openmp pam pascal
pcre pdf perl png ppds pppd python qt3support qt4 quicktime readline
reflection ruby samba scanner sdl session spell spl sql sqlite sse sse2
ssl startup-notification svg sysfs tcpd theora thunar tiff tk truetype
unicode usb v4l vorbis webkit x264 xcomposite xine xinerama xml xml2 xorg
xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm
alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug
ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route
share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias
authn_anon authn_dbm authn_default authn_file authz_dbm authz_default
authz_groupfile authz_host authz_owner authz_user autoindex cache dav
dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache
filter headers include info log_config logio mem_cache mime mime_magic
negotiation rewrite setenvif speling status unique_id userdir usertrack
vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev wacom" KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb
ncurses text" LINGUAS="en_GB" RUBY_TARGETS="ruby18" USERLAND="GNU"
VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS,
PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Any ideas? I just don't know what to try next.
regards
Paul

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

[-- Attachment #2: kde-base:kdepim-runtime-4.4.1:20100308-095959.log --]
[-- Type: application/octet-stream, Size: 7179 bytes --]

[-- Attachment #3: environment --]
[-- Type: application/octet-stream, Size: 145058 bytes --]

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 authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
declare -x ARCH="amd64"
declare -x ASFLAGS_x86="--32"
declare -- BASE_EXPF="src_unpack src_compile src_install src_prepare src_configure"
declare -x BUILD_TYPE="release"
declare -x CBUILD="x86_64-pc-linux-gnu"
declare -x CDEFINE_amd64="__x86_64__"
declare -x CDEFINE_default="__unix__"
declare -x CDEFINE_x86="__i386__"
declare -x CFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe -fomit-frame-pointer"
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 -- CMAKE_BUILD_TYPE="Gentoo"
declare -- CMAKE_EXPF="src_compile src_test src_install src_configure"
declare -- CMAKE_REQUIRED="always"
declare -x COLORFGBG="15;0"
declare -- CPPUNIT_REQUIRED="never"
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="x86_64-pc-linux-gnu"
declare -x CVS_RSH="ssh"
declare -x CXXFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe -fomit-frame-pointer"
declare -x DEFAULT_ABI="amd64"
declare -- DEFINED_PHASES=" compile configure install postinst postrm prepare setup test unpack"
declare -- DEPEND="
	app-misc/strigi
	>=app-office/akonadi-server-1.2.1
	dev-libs/boost
	dev-libs/libxml2:2
	dev-libs/libxslt
	 !kdeprefix? ( >=kde-base/kdelibs-4.4.1[aqua=,-kdeprefix,semantic-desktop] )
 kdeprefix? ( >=kde-base/kdelibs-4.4.1:4.4[aqua=,kdeprefix,semantic-desktop] )
	 !kdeprefix? ( >=kde-base/kdepimlibs-4.4.1[aqua=,-kdeprefix,akonadi] )
 kdeprefix? ( >=kde-base/kdepimlibs-4.4.1:4.4[aqua=,kdeprefix,akonadi] )
	 !kdeprefix? ( >=kde-base/libkdepim-4.4.1[aqua=,-kdeprefix] )
 kdeprefix? ( >=kde-base/libkdepim-4.4.1:4.4[aqua=,kdeprefix] )
	x11-misc/shared-mime-info
  >=dev-util/cmake-2.6.2-r1 userland_GNU? ( >=sys-apps/findutils-4.4.0 )  
	dev-util/pkgconfig
	!aqua? (
		|| ( >=x11-libs/libXtst-1.1.0 <x11-proto/xextproto-7.1.0 )
		x11-proto/xf86vidmodeproto
	)
  
	dev-lang/perl
	>=x11-libs/qt-core-4.6.0:4[qt3support,ssl]
	>=x11-libs/qt-gui-4.6.0:4[accessibility,dbus]
	>=x11-libs/qt-qt3support-4.6.0:4[accessibility,kde]
	>=x11-libs/qt-script-4.6.0:4
	>=x11-libs/qt-sql-4.6.0:4[qt3support]
	>=x11-libs/qt-svg-4.6.0:4
	>=x11-libs/qt-test-4.6.0:4
	!aqua? (
		x11-libs/libXext
		x11-libs/libXt
		x11-libs/libXxf86vm
	)
  !kdeprefix? ( >=kde-base/kdelibs-4.4.1[aqua=,-kdeprefix] )
 kdeprefix? ( >=kde-base/kdelibs-4.4.1:4.4[aqua=,kdeprefix] )"
declare -- DESCRIPTION="KDE PIM runtime plugin collection"
declare -x DESKTOP_SESSION="default"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x DM_CONTROL="/var/run/xdmctl"
declare -x EAPI="3"
declare -- EKDEDIR="/usr"
declare -x ELIBC="glibc"
declare -- EPATCH_EXCLUDE=""
declare -- EPATCH_FORCE="no"
declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..."
declare -- EPATCH_OPTS="-g0 -E --no-backup-if-mismatch"
declare -- EPATCH_SINGLE_MSG=""
declare -- EPATCH_SOURCE="/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/work/patch"
declare -- EPATCH_SUFFIX="patch.bz2"
declare -x EXEOPTIONS="-m0755"
declare -x FEATURES="assume-digests ccache distlocks fixpackages metadata-transfer news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.1.10/html"
declare -x GDK_USE_XFT="1"
declare -x GS_LIB="/home/paul/.fonts"
declare -x GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/paul/.gtkrc-2.0::/home/paul/.kde4/share/config/gtkrc-2.0"
declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/paul/.gtkrc::/home/paul/.kde4/share/config/gtkrc"
declare -x HISTCONTROL="ignoredups"
declare -x HISTFILESIZE="1000"
declare -x HISTSIZE="1000"
declare -- HOMEPAGE="http://www.kde.org/"
declare -x INHERITED="toolchain-funcs kde4-base portability flag-o-matic versionator multilib kde4-functions base cmake-utils eutils"
declare -x INPUT_DEVICES="evdev wacom"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare -- IUSE="debug   kdeprefix aqua kdeenablefinal"
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 -- KDEBASE="kde-base"
declare -- KDEDIR="/usr"
declare -x KDEDIRS="/usr"
declare -x KDESU_USER="paul"
declare -a KDE_LIVE_SLOTS='([0]="live")'
declare -- KDE_MINIMAL="4.4"
declare -- KDE_MINIMAL_VALID="1"
declare -x KDE_MULTIHEAD="false"
declare -- KDE_REQUIRED="always"
declare -x KDE_SESSION_UID="1000"
declare -x KDE_SESSION_VERSION="4"
declare -a KDE_SLOTS='([0]="4.1" [1]="4.2" [2]="4.3" [3]="4.4" [4]="4.5")'
declare -x KERNEL="linux"
declare -x KERNEL_ABI="amd64"
declare -x KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
declare -x KONSOLE_DBUS_SERVICE=":1.0"
declare -x KONSOLE_DBUS_SESSION="/Sessions/1"
declare -x KV="2.6.32-gentoo-r1"
declare -x LADSPA_PATH="/usr/lib64/ladspa"
declare -x LANG="en_GB.UTF-8"
declare -x LANGUAGE=""
declare -x LCD_DEVICES=""
declare -x LDFLAGS="-Wl,--as-needed,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
declare -x LDFLAGS_default=""
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LIBDIR_amd64="lib64"
declare -x LIBDIR_amd64_fbsd="lib64"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_ppc="lib32"
declare -x LIBDIR_ppc64="lib64"
declare -x LIBDIR_sparc32="lib32"
declare -x LIBDIR_sparc64="lib64"
declare -x LIBDIR_x86="lib32"
declare -x LIBDIR_x86_fbsd="lib32"
declare -x LIBOPTIONS="-m0644"
declare -x LICENSE="GPL-2"
declare -x LINGUAS="en_GB"
declare -x MAKEOPTS="-j5 -s"
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 -- MULTIMEDIA_REQUIRED="never"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -x OPENGL_PROFILE="xorg-x11"
declare -- OPENGL_REQUIRED="never"
declare -x PATH="/usr/lib/ccache/bin:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.3.4"
declare -- PDEPEND=" "
declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig"
declare -x PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
declare -- PREFIX="/usr"
declare -x PRELINK_PATH_MASK="/usr/lib64/klibc"
declare -x PROFILEHOME=""
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -x PROPERTIES=""
declare -x PROVIDE=""
declare -x PYTHONDOCS="/usr/share/doc/python-docs-2.6.2-r1/html/library"
declare -x PYTHONDOCS_2_6="/usr/share/doc/python-docs-2.6.2-r1/html/library"
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -- QT_MINIMAL="4.6.0"
declare -x QT_PLUGIN_PATH="/usr/lib64/kde4/plugins/"
declare -x RDEPEND="
	app-misc/strigi
	>=app-office/akonadi-server-1.2.1
	dev-libs/boost
	dev-libs/libxml2:2
	dev-libs/libxslt
	 !kdeprefix? ( >=kde-base/kdelibs-4.4.1[aqua=,-kdeprefix,semantic-desktop] )
 kdeprefix? ( >=kde-base/kdelibs-4.4.1:4.4[aqua=,kdeprefix,semantic-desktop] )
	 !kdeprefix? ( >=kde-base/kdepimlibs-4.4.1[aqua=,-kdeprefix,akonadi] )
 kdeprefix? ( >=kde-base/kdepimlibs-4.4.1:4.4[aqua=,kdeprefix,akonadi] )
	 !kdeprefix? ( >=kde-base/libkdepim-4.4.1[aqua=,-kdeprefix] )
 kdeprefix? ( >=kde-base/libkdepim-4.4.1:4.4[aqua=,kdeprefix] )
	x11-misc/shared-mime-info

	 !kdeprefix? ( >=kde-base/kdepim-icons-4.4.1[aqua=,-kdeprefix] )
 kdeprefix? ( >=kde-base/kdepim-icons-4.4.1:4.4[aqua=,kdeprefix] )
  !kdeprefix? ( !kde-base/akonadi:4.1[-kdeprefix] )
 !kdeprefix? ( !kde-base/akonadi:4.2[-kdeprefix] )
 !kdeprefix? ( !kde-base/akonadi:4.3[-kdeprefix] )
 !<kde-base/akonadi-4.3.90:4.4    !kdeprefix? ( !kde-base/kdepim-runtime:4.1[-kdeprefix] )
 !kdeprefix? ( !kde-base/kdepim-runtime:4.2[-kdeprefix] )
 !kdeprefix? ( !kde-base/kdepim-runtime:4.3[-kdeprefix] )
 !kdeprefix? ( !kde-base/kdepim-runtime:4.5[-kdeprefix] )
 !kdeprefix? ( !kde-base/kdepim-runtime:live[-kdeprefix] )  
	dev-lang/perl
	>=x11-libs/qt-core-4.6.0:4[qt3support,ssl]
	>=x11-libs/qt-gui-4.6.0:4[accessibility,dbus]
	>=x11-libs/qt-qt3support-4.6.0:4[accessibility,kde]
	>=x11-libs/qt-script-4.6.0:4
	>=x11-libs/qt-sql-4.6.0:4[qt3support]
	>=x11-libs/qt-svg-4.6.0:4
	>=x11-libs/qt-test-4.6.0:4
	!aqua? (
		x11-libs/libXext
		x11-libs/libXt
		x11-libs/libXxf86vm
	)
  !kdeprefix? ( >=kde-base/kdelibs-4.4.1[aqua=,-kdeprefix] )
 kdeprefix? ( >=kde-base/kdelibs-4.4.1:4.4[aqua=,kdeprefix] )"
declare -x RESTRICT=""
declare -x RUBYOPT="-rauto_gem"
declare -x RUBY_TARGETS=""
declare -x R_HOME="/usr/lib64/R"
declare -x S="/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/work/kdepim-runtime-4.4.1"
declare -x SANDBOX_DEBUG="0"
declare -x SANDBOX_DENY=""
declare -x SANDBOX_PID="6819"
declare -x SANDBOX_PREDICT="/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/homedir:/dev/crypto:/var/cache/fontconfig"
declare -x SANDBOX_READ="/:/dev/stdin:/var/tmp:/var/tmp/ccache"
declare -x SANDBOX_VERBOSE="1"
declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp:/tmp/:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/lib/cf:/usr/lib/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp:/var/tmp/:/var/tmp/ccache:/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/homedir/.bash_history"
declare -x SANE_CONFIG_DIR="/etc/sane.d"
declare -x SLOT="4.4"
declare -- SRC_URI="mirror://kde/stable/4.4.1/src/kdepim-runtime-4.4.1.tar.bz2"
declare -x STAGE1_USE="multilib nptl nptlonly unicode"
declare -x STRIGI_PLUGIN_PATH="/usr/lib64/strigi:"
declare -x SYMLINK_LIB="yes"
declare -x USB_DEVFS_PATH="/dev/bus/usb"
declare -x USE="amd64 elibc_glibc kernel_linux multilib userland_GNU"
declare -x USERLAND="GNU"
declare -x VIDEO_CARDS=""
declare -- WANT_CMAKE="always"
declare -- WEBKIT_REQUIRED="never"
declare -x WINDOWID="54525989"
declare -x WINDOWPATH="7"
declare -x XCURSOR_THEME="Oxygen_Black"
declare -x XDG_CONFIG_DIRS="/etc/xdg"
declare -x XDG_CONFIG_HOME="/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/temp"
declare -x XDG_DATA_DIRS="/usr/share:/usr/local/share:/usr/share"
declare -x XDG_SESSION_COOKIE="14c6119df954357e78fc020045b776d5-1268032892.316736-440498668"
declare -x XDM_MANAGED="method=classic"
declare -- _="PKG_INSTALL_MASK"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
declare -- ___ECLASS_RECUR_MULTILIB="yes"
declare -- ___ECLASS_RECUR_TOOLCHAIN_FUNCS="yes"
declare -- conf="kdepim-runtime-4.4.1-r0"
declare -- filter_opts=""
declare -- str="base_src_prepare: entering function"
__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
}
_check_build_dir () 
{ 
    : ${CMAKE_USE_DIR:=${S}};
    if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
        CMAKE_BUILD_DIR="${CMAKE_USE_DIR}";
    else
        if [[ ${CMAKE_USE_DIR} = ${WORKDIR} ]]; then
            CMAKE_BUILD_DIR="${CMAKE_USE_DIR}/build";
        else
            [[ ${1} = init || -d ${CMAKE_USE_DIR}_build ]] && SUF="_build" || SUF="";
            CMAKE_BUILD_DIR="${CMAKE_USE_DIR}${SUF}";
        fi;
    fi;
    echo ">>> Working in BUILD_DIR: \"$CMAKE_BUILD_DIR\""
}
_do_blocker () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    [[ -z ${1} ]] && die "Missing parameter";
    local pkg=kde-base/$1;
    shift;
    local param slot def="unset" var atom;
    for slot in 3.5 ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]};
    do
        local block_${slot//./_}="unset";
    done;
    for param in "$@";
    do
        if [[ ${param/:} == ${param} ]]; then
            def=${param};
        else
            slot=${param#*:};
            local block_${slot//./_}=${param%:*};
        fi;
    done;
    for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]};
    do
        var=block_${slot//./_};
        [[ ${!var} == "unset" ]] && var=def;
        if [[ ${!var} == "unset" ]] || [[ -z ${!var} ]] || _greater_max_in_slot ${!var#<} ${slot}; then
            atom=${pkg};
        else
            if [[ ${!var} == "0" ]] || _less_min_in_slot ${!var#<} ${slot}; then
                continue;
            else
                if [[ ${!var:0:1} == "<" ]]; then
                    atom="<${pkg}-${!var:1}";
                else
                    atom="<=${pkg}-${!var}";
                fi;
            fi;
        fi;
        if [[ ${SLOT} == ${slot} ]]; then
            echo " !${atom}:${slot}";
        else
            echo " !kdeprefix? ( !${atom}:${slot}[-kdeprefix] )";
        fi;
    done;
    if [[ ${block_3_5} != "unset" && ${block_3_5} != "0" ]]; then
        if [[ -z ${block_3_5} ]]; then
            atom=${pkg};
        else
            if [[ ${block_3_5:0:1} == "<" ]]; then
                atom="<${pkg}-${block_3_5:1}";
            else
                atom="<=${pkg}-${block_3_5}";
            fi;
        fi;
        echo " !${atom}:3.5";
    fi
}
_execute_optionaly () 
{ 
    local phase="$1";
    shift;
    if [[ ${WANT_CMAKE} = always ]]; then
        enable_cmake-utils_${phase} "$@";
    else
        use ${WANT_CMAKE} && enable_cmake-utils_${phase} "$@";
    fi
}
_filter-hardened () 
{ 
    local f;
    for f in "$@";
    do
        case "${f}" in 
            -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)
                gcc-specs-pie || continue;
                is-flagq -nopie || append-flags -nopie
            ;;
            -fstack-protector)
                gcc-specs-ssp || continue;
                is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)
            ;;
            -fstack-protector-all)
                gcc-specs-ssp-to-all || continue;
                is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)
            ;;
            -fno-strict-overflow)
                gcc-specs-nostrict || continue;
                is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)
            ;;
        esac;
    done
}
_filter-var () 
{ 
    local f x VAR VAL;
    declare -a new;
    VAR=$1;
    shift;
    eval VAL=\${${VAR}};
    for f in ${VAL};
    do
        for x in "$@";
        do
            [[ ${f} == ${x} ]] && continue 2;
        done;
        eval new\[\${\#new\[@]}]=\${f};
    done;
    eval export ${VAR}=\${new\[*]}
}
_gcc-install-dir () 
{ 
    echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw () 
{ 
    local cc=$(tc-getCC);
    local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
    ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }
$1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }
	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
	{ spec=spec $0 }
END	{ print spec }';
    return 0
}
_gcc-specs-exists () 
{ 
    [[ -f $(_gcc-install-dir)/$1 ]]
}
_greater_max_in_slot () 
{ 
    local ver=$1;
    local slot=$2;
    [[ $slot == live ]] && return 1;
    local test=${slot}.50;
    version_compare $1 ${test};
    (( $? != 1 ))
}
_is_flagq () 
{ 
    local x;
    for x in ${!1};
    do
        [[ ${x} == $2 ]] && return 0;
    done;
    return 1
}
_less_min_in_slot () 
{ 
    local ver=$1;
    local slot=$2;
    local test=9999_pre;
    [[ $slot != live ]] && test=${slot%.*}.$((${slot#*.} - 1)).50;
    version_compare $1 ${test};
    (( $? != 3 ))
}
_modify-cmakelists () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE.*)/{s/^/#IGNORE /g}' {} + -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_INSTALL_PREFIX.*)/{s/^/#IGNORE /g}' {} + || die "${LINENO}: failed to disable hardcoded settings";
    cat >> CMakeLists.txt  <<-_EOF_

MESSAGE(STATUS "<<< Gentoo configuration >>>
Build type: \${CMAKE_BUILD_TYPE}
Install path: \${CMAKE_INSTALL_PREFIX}\n")
_EOF_

}
_unpack_tar () 
{ 
    if [ "${y}" == "tar" ]; then
        $1 -dc "$srcdir$x" | tar xof -;
        assert "$myfail";
    else
        $1 -dc "${srcdir}${x}" > ${x%.*} || die "$myfail";
    fi
}
_use_me_now () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local uper capitalised x;
    [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
    if [[ ! -z $3 ]]; then
        echo "-D$1$3=$(use $2 && echo ON || echo OFF)";
    else
        uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
        capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
        for x in $2 $uper $capitalised;
        do
            echo "-D$1$x=$(use $2 && echo ON || echo OFF) ";
        done;
    fi
}
_use_me_now_inverted () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local uper capitalised x;
    [[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
    if [[ ! -z $3 ]]; then
        echo "-D$1$3=$(use $2 && echo OFF || echo ON)";
    else
        uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
        capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
        for x in $2 $uper $capitalised;
        do
            echo "-D$1$x=$(use $2 && echo OFF || echo ON) ";
        done;
    fi
}
add_blocker () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    RDEPEND+=" $(_do_blocker "$@")"
}
add_kdebase_dep () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    [[ -z ${1} ]] && die "Missing parameter";
    local use=${2:+,${2}};
    echo " !kdeprefix? ( >=kde-base/${1}-${PV}[aqua=,-kdeprefix${use}] )";
    echo " kdeprefix? ( >=kde-base/${1}-${PV}:${SLOT}[aqua=,kdeprefix${use}] )"
}
append-cflags () 
{ 
    [[ -z $* ]] && return 0;
    export CFLAGS="${CFLAGS} $*";
    return 0
}
append-cppflags () 
{ 
    [[ -z $* ]] && return 0;
    export CPPFLAGS="${CPPFLAGS} $*";
    return 0
}
append-cxxflags () 
{ 
    [[ -z $* ]] && return 0;
    export CXXFLAGS="${CXXFLAGS} $*";
    return 0
}
append-fflags () 
{ 
    [[ -z $* ]] && return 0;
    export FFLAGS="${FFLAGS} $*";
    export FCFLAGS="${FCFLAGS} $*";
    return 0
}
append-flags () 
{ 
    [[ -z $* ]] && return 0;
    append-cflags "$@";
    append-cxxflags "$@";
    append-fflags "$@";
    return 0
}
append-ldflags () 
{ 
    [[ -z $* ]] && return 0;
    local flag;
    for flag in "$@";
    do
        [[ ${flag} == -l* ]] && ewarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";
    done;
    export LDFLAGS="${LDFLAGS} $*";
    return 0
}
append-lfs-flags () 
{ 
    [[ -n $@ ]] && die "append-lfs-flags takes no arguments";
    append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
base_src_compile () 
{ 
    debug-print-function $FUNCNAME "$@";
    has src_configure ${BASE_EXPF} || base_src_configure;
    base_src_make $@
}
base_src_configure () 
{ 
    debug-print-function $FUNCNAME "$@";
    [[ -x ${ECONF_SOURCE:-.}/configure ]] && econf
}
base_src_install () 
{ 
    debug-print-function $FUNCNAME "$@";
    emake DESTDIR="${D}" $@ install || die "died running make install, $FUNCNAME:make";
    base_src_install_docs
}
base_src_install_docs () 
{ 
    debug-print-function $FUNCNAME "$@";
    local x;
    pushd "${S}" > /dev/null;
    if [[ "$(declare -p DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
        for x in "${DOCS[@]}";
        do
            debug-print "$FUNCNAME: docs: creating document from ${x}";
            dodoc "${x}" || die "dodoc failed";
        done;
    fi;
    if [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
        for x in "${HTML_DOCS[@]}";
        do
            debug-print "$FUNCNAME: docs: creating html document from ${x}";
            dohtml -r "${x}" || die "dohtml failed";
        done;
    fi;
    popd > /dev/null
}
base_src_make () 
{ 
    debug-print-function $FUNCNAME "$@";
    if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
        emake $@ || die "died running emake, $FUNCNAME:make";
    fi
}
base_src_prepare () 
{ 
    debug-print-function $FUNCNAME "$@";
    debug-print "$FUNCNAME: PATCHES=$PATCHES";
    local patches_failed=0;
    pushd "${S}" > /dev/null;
    if [[ "$(declare -p PATCHES 2>/dev/null 2>&1)" == "declare -a"* ]]; then
        for x in "${PATCHES[@]}";
        do
            debug-print "$FUNCNAME: applying patch from ${x}";
            if [[ -d "${x}" ]]; then
                EPATCH_SUFFIX=${EPATCH_SUFFIX:=patch};
                oldval=${EPATCH_SOURCE};
                EPATCH_SOURCE=${x};
                epatch;
                EPATCH_SOURCE=${oldval};
            else
                if [[ -f "${x}" ]]; then
                    epatch "${x}";
                else
                    ewarn "QA: File or directory \"${x}\" does not exist.";
                    ewarn "QA: Check your PATCHES array or add missing file/directory.";
                    patches_failed=1;
                fi;
            fi;
        done;
        [[ ${patches_failed} -eq 1 ]] && die "Some patches failed. See above messages.";
    else
        for x in ${PATCHES};
        do
            debug-print "$FUNCNAME: patching from ${x}";
            epatch "${x}";
        done;
    fi;
    debug-print "$FUNCNAME: applying user patches";
    epatch_user;
    popd > /dev/null
}
base_src_unpack () 
{ 
    debug-print-function $FUNCNAME "$@";
    pushd "${WORKDIR}" > /dev/null;
    [[ -n "${A}" ]] && unpack ${A};
    has src_prepare ${BASE_EXPF} || base_src_prepare;
    popd > /dev/null
}
bashrc_has () 
{ 
    [[ " ${*:2} " == *" $1 "* ]]
}
block_other_slots () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    _do_blocker ${PN} 0:${SLOT}
}
buildsycoca () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if [[ ${EAPI} == 2 ]] && ! use prefix; then
        EROOT=${ROOT};
    fi;
    local KDE3DIR="${EROOT}usr/kde/3.5";
    if [[ -z ${EROOT%%/} && -x "${KDE3DIR}"/bin/kbuildsycoca ]]; then
        touch "${KDE3DIR}"/share/services/ksycoca;
        chmod 644 "${KDE3DIR}"/share/services/ksycoca;
        ebegin "Running kbuildsycoca to build global database";
        XDG_DATA_DIRS="${EROOT}usr/local/share:${KDE3DIR}/share:${EROOT}usr/share" DISPLAY="" "${KDE3DIR}"/bin/kbuildsycoca --global --noincremental &>/dev/null;
        eend $?;
    fi;
    for x in share/{config,kde4};
    do
        [[ ${KDEDIR} == /usr ]] && DIRS=${EROOT}usr || DIRS="${EROOT}usr ${EROOT}${KDEDIR}";
        for y in ${DIRS};
        do
            [[ -d "${y}/${x}" ]] || break;
            if [[ $(stat --format=%a "${y}/${x}") != 755 ]]; then
                ewarn "QA Notice:";
                ewarn "Package ${PN} is breaking ${y}/${x} permissions.";
                ewarn "Please report this issue to gentoo bugzilla.";
                einfo "Permissions will get adjusted automatically now.";
                find "${y}/${x}" -type d -print0 | xargs -0 chmod 755;
            fi;
        done;
    done
}
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_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;
    local l="`basename ${lic}`";
    local alic;
    eshopts_push -o noglob;
    for alic in ${ACCEPT_LICENSE};
    do
        if [[ ${alic} == ${l} ]]; then
            eshopts_pop;
            return 0;
        fi;
    done;
    eshopts_pop;
    [ ! -f "${lic}" ] && die "Could not find requested license ${lic}";
    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
}
cmake-utils_src_compile () 
{ 
    _execute_optionaly "src_compile" "$@"
}
cmake-utils_src_configure () 
{ 
    _execute_optionaly "src_configure" "$@"
}
cmake-utils_src_install () 
{ 
    _execute_optionaly "src_install" "$@"
}
cmake-utils_src_make () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    _check_build_dir;
    pushd "${CMAKE_BUILD_DIR}" &>/dev/null;
    [[ -e Makefile ]] || die "Makefile not found. Error during configure stage.";
    if [[ -n ${CMAKE_VERBOSE} ]]; then
        emake VERBOSE=1 "$@" || die "Make failed!";
    else
        emake "$@" || die "Make failed!";
    fi;
    popd &>/dev/null
}
cmake-utils_src_test () 
{ 
    _execute_optionaly "src_test" "$@"
}
cmake-utils_use () 
{ 
    _use_me_now "" "$@"
}
cmake-utils_use_build () 
{ 
    _use_me_now BUILD_ "$@"
}
cmake-utils_use_disable () 
{ 
    _use_me_now_inverted DISABLE_ "$@"
}
cmake-utils_use_enable () 
{ 
    _use_me_now ENABLE_ "$@"
}
cmake-utils_use_has () 
{ 
    _use_me_now HAVE_ "$@"
}
cmake-utils_use_no () 
{ 
    _use_me_now_inverted NO_ "$@"
}
cmake-utils_use_want () 
{ 
    _use_me_now WANT_ "$@"
}
cmake-utils_use_with () 
{ 
    _use_me_now WITH_ "$@"
}
comment_all_add_subdirectory () 
{ 
    find "$@" -name CMakeLists.txt -print0 | grep -vFzZ "./cmake" | xargs -0 sed -i -e '/^[[:space:]]*add_subdirectory/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*macro_optional_add_subdirectory/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' || die "${LINENO}: Initial sed died"
}
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 () 
{ 
    [[ -z ${ED} ]] && local ED=${D};
    local basedir file;
    for basedir in "$@";
    do
        for file in $(find "${ED}"/${basedir} -type f);
        do
            echo ${file/${ED}\/${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=$@;
    [[ -z ${ED} ]] && local ED=${D};
    dodir ${dest};
    local basedir;
    for basedir in ${basedirs};
    do
        local dir;
        for dir in $(find "${ED}"/${basedir} -type d);
        do
            dodir ${dest}/${dir/${ED}\/${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
}
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
}
dlopen_lib () 
{ 
    case "${CHOST}" in 
        *-linux-gnu* | *-linux-uclibc | *-interix*)
            echo "-ldl"
        ;;
    esac
}
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} )
}
dyn_pretend () 
{ 
    ebuild_phase_with_hooks pkg_pretend
}
ebeep () 
{ 
    ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
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$//'
}
egetent () 
{ 
    case ${CHOST} in 
        *-darwin[678])
            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
        ;;
        *-darwin*)
            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
        ;;
        *-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
}
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
}
enable_cmake-utils_src_compile () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    has src_configure ${CMAKE_EXPF} || cmake-utils_src_configure;
    cmake-utils_src_make "$@"
}
enable_cmake-utils_src_configure () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    _check_build_dir init;
    if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]]; then
        eerror "I was unable to locate CMakeLists.txt under:";
        eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"";
        eerror "You should consider not inheriting the cmake eclass.";
        die "FATAL: Unable to find CMakeLists.txt";
    fi;
    _modify-cmakelists;
    export XDG_CONFIG_HOME="${T}";
    if [[ ${CMAKE_BUILD_TYPE} = Gentoo ]]; then
        if ! has debug ${IUSE//+} || ! use debug; then
            append-cppflags -DNDEBUG;
        fi;
    fi;
    local build_rules=${T}/gentoo_rules.cmake;
    cat > "${build_rules}"  <<-_EOF_
SET (CMAKE_C_COMPILER $(type -P $(tc-getCC)) CACHE FILEPATH "C compiler" FORCE)
SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile command" FORCE)
SET (CMAKE_CXX_COMPILER $(type -P $(tc-getCXX)) CACHE FILEPATH "C++ compiler" FORCE)
SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE)
_EOF_

    if use prefix; then
        cat >> "${build_rules}";
    fi  <<-_EOF_
# in Prefix we need rpath and must ensure cmake gets our default linker path
# right ... except for Darwin hosts
IF (NOT APPLE)
SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
SET (CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH "${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)"
CACHE STRING "" FORCE)
ENDIF (NOT APPLE)
_EOF_

    local common_config=${T}/gentoo_common_config.cmake;
    local libdir=$(get_libdir);
    cat > "${common_config}"  <<-_EOF_
SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE)
_EOF_

    [[ -n ${NOCOLOR} ]] || echo 'SET (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}";
    if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
        local mycmakeargs_local=(${mycmakeargs});
    else
        local mycmakeargs_local=("${mycmakeargs[@]}");
    fi;
    has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
    local cmakeargs=(-C "${common_config}" -DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX:-/usr}" "${mycmakeargs_local[@]}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_INSTALL_DO_STRIP=OFF -DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}" "${MYCMAKEARGS}");
    mkdir -p "${CMAKE_BUILD_DIR}";
    pushd "${CMAKE_BUILD_DIR}" > /dev/null;
    debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${mycmakeargs_local[*]}";
    echo cmake "${cmakeargs[@]}" "${CMAKE_USE_DIR}";
    cmake "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
    popd > /dev/null
}
enable_cmake-utils_src_install () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    _check_build_dir;
    pushd "${CMAKE_BUILD_DIR}" &>/dev/null;
    emake install DESTDIR="${D}" || die "Make install failed";
    popd &>/dev/null;
    [[ -n "${DOCS}" ]] && { 
        dodoc ${DOCS} || die "dodoc failed"
    };
    [[ -n "${HTML_DOCS}" ]] && { 
        dohtml -r ${HTML_DOCS} || die "dohtml failed"
    }
}
enable_cmake-utils_src_test () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    _check_build_dir;
    pushd "${CMAKE_BUILD_DIR}" &>/dev/null;
    if emake -j1 check -n &>/dev/null; then
        einfo ">>> Test phase [check]: ${CATEGORY}/${PF}";
        if ! emake -j1 check; then
            die "Make check failed. See above for details.";
        fi;
    else
        if emake -j1 test -n &>/dev/null; then
            einfo ">>> Test phase [test]: ${CATEGORY}/${PF}";
            if ! emake -j1 test; then
                die "Make test failed. See above for details.";
            fi;
        else
            einfo ">>> Test phase [none]: ${CATEGORY}/${PF}";
        fi;
    fi;
    popd &>/dev/null
}
enable_selected_doc_linguas () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if ! $(env | grep -q "^LINGUAS="); then
        return 0;
    fi;
    KDE_DOC_DIRS=${KDE_DOC_DIRS:='doc/%lingua'};
    local linguas;
    for pattern in ${KDE_DOC_DIRS};
    do
        local handbookdir=`dirname ${pattern}`;
        local translationdir=`basename ${pattern}`;
        [[ "${handbookdir}" = '.' ]] && handbookdir=${translationdir} && translationdir=;
        [[ -d "${handbookdir}" ]] || die 'wrong doc dir specified';
        if ! use handbook; then
            sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${handbookdir}[[:space:]]*)/s/^/#DONOTCOMPILE /" -e "/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${handbookdir}[[:space:]]*)/s/^/#DONOTCOMPILE /" -i CMakeLists.txt || die 'failed to comment out all handbooks';
        else
            comment_all_add_subdirectory "${handbookdir}";
            local lingua;
            for lingua in en ${KDE_LINGUAS};
            do
                if [[ ${lingua} = 'en' ]] || use linguas_${lingua}; then
                    if [[ -d "${handbookdir}/${translationdir//%lingua/${lingua}}" ]]; then
                        sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${translationdir//%lingua/${lingua}}/s/^#DONOTCOMPILE //" -e "/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${translationdir//%lingua/${lingua}}/s/^#DONOTCOMPILE //" -i "${handbookdir}"/CMakeLists.txt && ! has ${lingua} ${linguas} && linguas="${linguas} ${lingua}";
                    fi;
                fi;
            done;
        fi;
    done;
    [[ -n "${linguas}" ]] && einfo "Enabling handbook translations:${linguas}"
}
enable_selected_linguas () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local lingua linguas sr_mess wp;
    if ! $(env | grep -q "^LINGUAS="); then
        return 0;
    fi;
    KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:="po"};
    [[ -d "${KDE_LINGUAS_DIR}" ]] || die "wrong linguas dir specified";
    comment_all_add_subdirectory "${KDE_LINGUAS_DIR}";
    pushd "${KDE_LINGUAS_DIR}" > /dev/null;
    sr_mess="sr@latn sr@latin sr@Latin";
    for wp in ${sr_mess};
    do
        [[ -e "${wp}.po" ]] && mv "${wp}.po" "sr@Latn.po";
        if [[ -d "${wp}" ]]; then
            mv "${wp}" "sr@Latn";
            sed -i -e "s:${wp}:sr@Latin:g" CMakeLists.txt;
        fi;
    done;
    for lingua in ${KDE_LINGUAS};
    do
        if [[ -e "${lingua}.po" ]]; then
            mv "${lingua}.po" "${lingua}.po.old";
        fi;
    done;
    for lingua in ${KDE_LINGUAS};
    do
        if use linguas_${lingua}; then
            if [[ -d "${lingua}" ]]; then
                linguas="${linguas} ${lingua}";
                sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed.";
            fi;
            if [[ -e "${lingua}.po.old" ]]; then
                linguas="${linguas} ${lingua}";
                mv "${lingua}.po.old" "${lingua}.po";
            fi;
        fi;
    done;
    [[ -n "${linguas}" ]] && einfo "Enabling languages: ${linguas}";
    popd > /dev/null
}
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} -c "added by portage for ${PN}" ${euser} || 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//?/=}"
    };
    unset P4CONFIG P4PORT P4USER;
    if [[ $# -gt 1 ]]; then
        local m;
        for m in "$@";
        do
            epatch "${m}";
        done;
        return 0;
    fi;
    local SINGLE_PATCH="no";
    [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}";
    if [[ -f $1 ]]; then
        SINGLE_PATCH="yes";
        set -- "$1";
        local EPATCH_SUFFIX=$1;
    else
        if [[ -d $1 ]]; then
            set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"};
        else
            [[ $# -ne 0 ]] && EPATCH_SOURCE=$1;
            echo;
            eerror "Cannot find \$EPATCH_SOURCE!  Value for \$EPATCH_SOURCE is:";
            eerror;
            eerror "  ${EPATCH_SOURCE}";
            eerror "  ( ${EPATCH_SOURCE##*/} )";
            echo;
            die "Cannot find \$EPATCH_SOURCE!";
        fi;
    fi;
    local PIPE_CMD;
    case ${EPATCH_SUFFIX##*\.} in 
        xz)
            PIPE_CMD="xz -dc"
        ;;
        lzma)
            PIPE_CMD="lzma -dc"
        ;;
        bz2)
            PIPE_CMD="bzip2 -dc"
        ;;
        gz | Z | z)
            PIPE_CMD="gzip -dc"
        ;;
        ZIP | zip)
            PIPE_CMD="unzip -p"
        ;;
        *)

        ;;
    esac;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}";
    local x;
    for x in "$@";
    do
        [[ ! -f ${x} ]] && continue;
        local patchname=${x##*/};
        local a=${patchname#*_};
        a=${a%%_*};
        if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then
            continue;
        fi;
        if [[ -n ${EPATCH_EXCLUDE} ]]; then
            eshopts_push -o noglob;
            local ex;
            for ex in ${EPATCH_EXCLUDE};
            do
                if [[ ${patchname} == ${ex} ]]; then
                    eshopts_pop;
                    continue 2;
                fi;
            done;
            eshopts_pop;
        fi;
        if [[ ${SINGLE_PATCH} == "yes" ]]; then
            if [[ -n ${EPATCH_SINGLE_MSG} ]]; then
                einfo "${EPATCH_SINGLE_MSG}";
            else
                einfo "Applying ${patchname} ...";
            fi;
        else
            einfo "  ${patchname} ...";
        fi;
        local STDERR_TARGET="${T}/${patchname}.out";
        if [[ -e ${STDERR_TARGET} ]]; then
            STDERR_TARGET="${T}/${patchname}-$$.out";
        fi;
        printf "***** %s *****\n\n" "${patchname}" > "${STDERR_TARGET}";
        local count=0;
        local PATCH_TARGET;
        if [[ -n ${PIPE_CMD} ]]; then
            PATCH_TARGET="${T}/$$.patch";
            echo "PIPE_COMMAND:  ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}";
            if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
                echo;
                eerror "Could not extract patch!";
                count=5;
                break;
            fi;
        else
            PATCH_TARGET=${x};
        fi;
        local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
        if [[ -n ${abs_paths} ]]; then
            count=1;
            printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}";
        fi;
        while [[ ${count} -lt 5 ]]; do
            ( _epatch_draw_line "***** ${patchname} *****";
            echo;
            echo "PATCH COMMAND:  patch -p${count} ${EPATCH_OPTS} < '${PATCH_TARGET}'";
            echo;
            _epatch_draw_line "***** ${patchname} *****" ) >> "${STDERR_TARGET}";
            if ( patch -p${count} ${EPATCH_OPTS} --dry-run -f < "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
                ( _epatch_draw_line "***** ${patchname} *****";
                echo;
                echo "ACTUALLY APPLYING ${patchname} ...";
                echo;
                _epatch_draw_line "***** ${patchname} *****";
                patch -p${count} ${EPATCH_OPTS} < "${PATCH_TARGET}" 2>&1 ) >> "${STDERR_TARGET}";
                if [ $? -ne 0 ]; then
                    echo;
                    eerror "A dry-run of patch command succeeded, but actually";
                    eerror "applying the patch failed!";
                    count=5;
                fi;
                break;
            fi;
            : $(( count++ ));
        done;
        if [[ -n ${PIPE_CMD} ]]; then
            rm -f "${PATCH_TARGET}";
        fi;
        if [[ ${count} -ge 5 ]]; then
            echo;
            eerror "Failed Patch: ${patchname} !";
            eerror " ( ${PATCH_TARGET} )";
            eerror;
            eerror "Include in your bugreport the contents of:";
            eerror;
            eerror "  ${STDERR_TARGET}";
            echo;
            die "Failed Patch: ${patchname}!";
        fi;
        rm -f "${STDERR_TARGET}";
        eend 0;
    done;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
    :
}
epatch_user () 
{ 
    [[ $# -ne 0 ]] && die "epatch_user takes no options";
    local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
    for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}};
    do
        EPATCH_SOURCE=${base}/${CTARGET}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check};
        if [[ -d ${EPATCH_SOURCE} ]]; then
            EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch;
            break;
        fi;
    done
}
epause () 
{ 
    ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
epunt_cxx () 
{ 
    local dir=$1;
    [[ -z ${dir} ]] && dir=${S};
    ebegin "Removing useless C++ checks";
    local f;
    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
}
eshopts_pop () 
{ 
    [[ $# -ne 0 ]] && die "eshopts_pop takes no arguments";
    local i=$(( ${#__ESHOPTS_SAVE__[@]} - 1 ));
    [[ ${i} -eq -1 ]] && die "eshopts_{push,pop}: unbalanced pair";
    local s=${__ESHOPTS_SAVE__[$i]};
    unset __ESHOPTS_SAVE__[$i];
    if [[ ${s} == "shopt -"* ]]; then
        eval "${s}" || die "eshopts_pop: sanity: invalid shopt options: ${s}";
    else
        set +$- || die "eshopts_pop: sanity: invalid shell settings: $-";
        set -${s} || die "eshopts_pop: sanity: unable to restore saved shell settings: ${s}";
    fi
}
eshopts_push () 
{ 
    local i=${#__ESHOPTS_SAVE__[@]};
    if [[ $1 == -[su] ]]; then
        __ESHOPTS_SAVE__[$i]=$(shopt -p);
        [[ $# -eq 0 ]] && return 0;
        shopt "$@" || die "eshopts_push: bad options to shopt: $*";
    else
        __ESHOPTS_SAVE__[$i]=$-;
        [[ $# -eq 0 ]] && return 0;
        set "$@" || die "eshopts_push: bad options to set: $*";
    fi
}
esvn_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
filter-flags () 
{ 
    _filter-hardened "$@";
    _filter-var CFLAGS "$@";
    _filter-var CPPFLAGS "$@";
    _filter-var CXXFLAGS "$@";
    _filter-var FFLAGS "$@";
    _filter-var FCFLAGS "$@";
    return 0
}
filter-ldflags () 
{ 
    _filter-var LDFLAGS "$@";
    return 0
}
filter-lfs-flags () 
{ 
    [[ -n $@ ]] && die "filter-lfs-flags takes no arguments";
    filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
filter-mfpmath () 
{ 
    local orig_mfpmath new_math prune_math;
    orig_mfpmath=$(get-flag -mfpmath);
    new_math=$(get-flag mfpmath);
    new_math=" ${new_math//,/ } ";
    prune_math="";
    for prune_math in "$@";
    do
        new_math=${new_math/ ${prune_math} / };
    done;
    new_math=$(echo ${new_math});
    new_math=${new_math// /,};
    if [[ -z ${new_math} ]]; then
        filter-flags ${orig_mfpmath};
    else
        replace-flags ${orig_mfpmath} -mfpmath=${new_math};
    fi;
    return 0
}
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
}
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;
                    if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                fi;
                if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
                    chmod u+w "${ED}${libdir}/${tlib}";
                    local nowrite=yes;
                fi;
                install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
                [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            *-aix* | *-irix* | *64*-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
            ;;
            hppa*-hpux*)
                if ${auto}; then
                    tlib=$(chatr "${ED}"/usr/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=$(chatr "${ED}"/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                fi;
                pushd "${ED}"/usr/${libdir} > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                [[ ${tlib} != ${lib} ]] && ln -snf "../../${libdir}/${tlib}" "${tlib}";
                popd > /dev/null
            ;;
            *)
                if ${auto}; then
                    tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                    [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=${lib};
                fi;
                cat > "${ED}/usr/${libdir}/${lib}"  <<-END_LDSCRIPT
/* GNU ld script
   Since Gentoo has critical dynamic libraries in /lib, and the static versions
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
   run into linking problems.  This "fake" dynamic lib is a linker script that
   redirects the linker to the real lib.  And yes, this works in the cross-
   compiling scenario as the sysroot-ed linker will prepend the real path.

   See bug http://bugs.gentoo.org/4411 for more info.
 */
${output_format}
GROUP ( ${EPREFIX}/${libdir}/${tlib} )
END_LDSCRIPT

            ;;
        esac
        fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
    done
}
get-flag () 
{ 
    local f findflag="$1";
    for f in ${CFLAGS} ${CXXFLAGS} ${FFLAGS} ${FCFLAGS};
    do
        if [ "${f/${findflag}}" != "${f}" ]; then
            printf "%s\n" "${f/-${findflag}=}";
            return 0;
        fi;
    done;
    return 1
}
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_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_build_type () 
{ 
    if [[ ${SLOT} = live || ${PV} = *9999* ]]; then
        BUILD_TYPE="live";
    else
        BUILD_TYPE="release";
    fi;
    export BUILD_TYPE
}
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"
        ;;
        hppa*-hpux*)
            libname="sl"
        ;;
        *)
            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_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_modname () 
{ 
    local modname;
    local ver=$1;
    case ${CHOST} in 
        *-darwin*)
            modname="bundle"
        ;;
        *)
            modname="so"
        ;;
    esac;
    echo ".${modname}"
}
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_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
}
has_hardened () 
{ 
    ewarn "has_hardened: deprecated, please use gcc-specs-{relro,now}()!" 1>&2;
    test_version_info Hardened && return 0;
    [[ -f ${GCC_SPECS} && ${GCC_SPECS} != ${GCC_SPECS/hardened/} ]]
}
has_m32 () 
{ 
    [ "$(tc-arch)" = "amd64" ] && has_multilib_profile && return 0;
    local temp=$(emktemp);
    echo "int main() { return(0); }" > "${temp}".c;
    MY_CC=$(tc-getCC);
    ${MY_CC/ .*/} -m32 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
    local ret=$?;
    rm -f "${temp}".c;
    [[ ${ret} != 1 ]] && return 0;
    return 1
}
has_m64 () 
{ 
    local temp="$(emktemp)";
    echo "int main() { return(0); }" > "${temp}".c;
    MY_CC=$(tc-getCC);
    ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
    local ret=$?;
    rm -f "${temp}".c;
    [[ ${ret} != 1 ]] && return 0;
    return 1
}
has_multilib_profile () 
{ 
    [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
has_pic () 
{ 
    ewarn "has_pic: deprecated, please use gcc-specs-pie()!" 1>&2;
    [[ ${CFLAGS/-fPIC} != ${CFLAGS} || ${CFLAGS/-fpic} != ${CFLAGS} ]] || gcc-specs-pie
}
has_pie () 
{ 
    ewarn "has_pie: deprecated, please use gcc-specs-pie()!" 1>&2;
    [[ ${CFLAGS/-fPIE} != ${CFLAGS} || ${CFLAGS/-fpie} != ${CFLAGS} ]] || gcc-specs-pie
}
has_ssp () 
{ 
    ewarn "has_ssp: deprecated, please use gcc-specs-ssp()!" 1>&2;
    [[ ${CFLAGS/-fstack-protector} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP__) ]] || gcc-specs-ssp
}
has_ssp_all () 
{ 
    ewarn "has_ssp_all: deprecated, please use gcc-specs-ssp()!" 1>&2;
    [[ ${CFLAGS/-fstack-protector-all} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP_ALL__) ]] || gcc-specs-ssp-to-all
}
install_library_dependencies () 
{ 
    local depsfile="${T}/${PN}:${SLOT}";
    ebegin "Installing library dependencies as ${depsfile##*/}";
    insinto /var/lib/kde;
    doins "${depsfile}" || die "Failed to install library dependencies.";
    eend $?
}
is-flag () 
{ 
    is-flagq "$@" && echo true
}
is-flagq () 
{ 
    [[ -n $2 ]] && die "Usage: is-flag <flag>";
    _is_flagq CFLAGS $1 || _is_flagq CXXFLAGS $1 || _is_flagq FFLAGS $1 || _is_flagq FCFLAGS $1
}
is-ldflag () 
{ 
    is-ldflagq "$@" && echo true
}
is-ldflagq () 
{ 
    [[ -n $2 ]] && die "Usage: is-ldflag <flag>";
    _is_flagq LDFLAGS $1
}
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} ]]
}
kde4-base_pkg_postinst () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    buildsycoca;
    if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
        echo;
        einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}";
        einfo "Use it at your own risk.";
        einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!";
        echo;
    else
        if [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
            echo;
            ewarn "WARNING! You have the kdeprefix useflag enabled.";
            ewarn "This setting is strongly discouraged and might lead to potential trouble";
            ewarn "with KDE update strategies.";
            ewarn "You are using this setup at your own risk and the kde team does not";
            ewarn "take responsibilities for dead kittens.";
            echo;
        fi;
    fi;
    if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! has_version 'kde-base/kdebase-runtime-meta' && ! has_version 'kde-base/kdebase-startkde'; then
        if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
            echo;
            ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\"";
            ewarn "nor \"kde-base/kdebase-startkde\". You need one of above.";
            ewarn "With this setting you are unsupported by KDE team.";
            ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID.";
        fi;
    fi
}
kde4-base_pkg_postrm () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    buildsycoca
}
kde4-base_pkg_setup () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if [[ ${EAPI} == 2 ]] && ! use prefix; then
        EPREFIX=;
        EROOT=${ROOT};
    fi;
    [[ ${EROOT} = */ ]] || EROOT+="/";
    [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL}).";
    unset KDEHOME;
    if [[ ${KDEBASE} = kde-base ]]; then
        if use kdeprefix; then
            KDEDIR=/usr/kde/${_kdedir};
        else
            KDEDIR=/usr;
        fi;
        : ${PREFIX:=${KDEDIR}};
    else
        KDEDIR=;
        local kde_minimal_met;
        for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]};
        do
            [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1;
            if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
                if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
                    KDEDIR=/usr/kde/${slot};
                else
                    KDEDIR=/usr;
                fi;
                break;
            fi;
        done;
        unset slot;
        if [[ ${KDE_REQUIRED} = always ]] || { 
            [[ ${KDE_REQUIRED} = optional ]] && use kde
        }; then
            [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!";
        else
            [[ -z ${KDEDIR} ]] && KDEDIR=/usr;
        fi;
        : ${PREFIX:=/usr};
    fi;
    EKDEDIR=${EPREFIX}${KDEDIR};
    export PKG_CONFIG_PATH="${EKDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}";
    QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/";
    export XDG_CONFIG_HOME="${T}";
    unset _kdedir
}
kde4-base_src_compile () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    cmake-utils_src_compile "$@"
}
kde4-base_src_configure () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local cmakeargs=(-DKDE4_BUILD_TESTS=OFF);
    if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
        cmakeargs+=(-DKDE4_ENABLE_FINAL=ON);
    fi;
    if has debug ${IUSE//+} && use debug; then
        CMAKE_BUILD_TYPE="Debugfull";
    else
        append-cppflags -DQT_NO_DEBUG;
    fi;
    [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo);
    cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}");
    QTEST_COLORED=1;
    unset KDEDIRS;
    if [[ ${KDEDIR} != /usr ]]; then
        PATH="${EKDEDIR}/bin:${PATH}";
        LDPATH="${EKDEDIR}/$(get_libdir)${LDPATH+:}${LDPATH}";
        cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF);
        cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}");
    fi;
    if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
        cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc);
    fi;
    if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
        mycmakeargs=(${mycmakeargs});
    fi;
    mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}");
    cmake-utils_src_configure
}
kde4-base_src_install () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if [[ ${EAPI} == 2 ]] && ! use prefix; then
        ED=${D};
    fi;
    if [[ -n ${KMSAVELIBS} ]]; then
        install_library_dependencies;
    fi;
    kde4-base_src_make_doc;
    cmake-utils_src_install
}
kde4-base_src_make_doc () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local doc;
    for doc in AUTHORS ChangeLog* README* NEWS TODO;
    do
        [[ -s ${doc} ]] && dodoc ${doc};
    done;
    if [[ -z ${KMNAME} ]]; then
        for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*};
        do
            if [[ -s ${doc} ]]; then
                local doc_complete=${doc};
                doc="${doc#*/}";
                newdoc "$doc_complete" "${doc%/*}.${doc##*/}";
            fi;
        done;
    fi
}
kde4-base_src_prepare () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if [[ -n ${KDE_LINGUAS} ]]; then
        enable_selected_linguas;
    fi;
    if ! has kde4-meta ${INHERITED}; then
        has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas;
    fi;
    [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare;
    base_src_prepare;
    epatch_user;
    if [[ -n ${KMSAVELIBS} ]]; then
        save_library_dependencies;
    fi;
    if [[ -n ${KMLOADLIBS} ]]; then
        load_library_dependencies;
    fi
}
kde4-base_src_test () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    mycmakeargs+=(-DKDE4_BUILD_TESTS=ON);
    cmake-utils_src_configure;
    kde4-base_src_compile;
    cmake-utils_src_test
}
kde4-base_src_unpack () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    if [[ ${BUILD_TYPE} = live ]]; then
        migrate_store_dir;
        subversion_src_unpack;
    else
        if [[ ${EAPI} == 2 ]]; then
            local file;
            for file in ${A};
            do
                case ${file} in 
                    *.tar.xz)
                        echo ">>> Unpacking ${file} to ${PWD}";
                        xz -dc "${DISTDIR}"/${file} | tar xof -;
                        assert "failed unpacking ${file}"
                    ;;
                    *)
                        unpack ${file}
                    ;;
                esac;
            done;
        else
            unpack ${A};
        fi;
    fi
}
load_library_dependencies () 
{ 
    local pn i depsfile;
    ebegin "Injecting library dependencies from '${KMLOADLIBS}'";
    i=0;
    for pn in ${KMLOADLIBS};
    do
        ((i++));
        depsfile="${EPREFIX}/var/lib/kde/${pn}:${SLOT}";
        [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}.";
        sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || die "Failed to include library dependencies for ${pn}";
    done;
    eend $?
}
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
                    ;;
                esac
            ;;
            dev)
                type="Development"
            ;;
            games)
                case ${catmin} in 
                    action | fps)
                        type=ActionGame
                    ;;
                    arcade)
                        type=ArcadeGame
                    ;;
                    board)
                        type=BoardGame
                    ;;
                    emulation)
                        type=Emulator
                    ;;
                    kids)
                        type=KidsGame
                    ;;
                    puzzle)
                        type=LogicGame
                    ;;
                    roguelike)
                        type=RolePlaying
                    ;;
                    rpg)
                        type=RolePlaying
                    ;;
                    simulation)
                        type=Simulation
                    ;;
                    sports)
                        type=SportsGame
                    ;;
                    strategy)
                        type=StrategyGame
                    ;;
                esac;
                type="Game;${type}"
            ;;
            gnome)
                type="Gnome;GTK"
            ;;
            kde)
                type="KDE;Qt"
            ;;
            mail)
                type="Network;Email"
            ;;
            media)
                case ${catmin} in 
                    gfx)
                        type=Graphics
                    ;;
                    *)
                        case ${catmin} in 
                            radio)
                                type=Tuner
                            ;;
                            sound)
                                type=Audio
                            ;;
                            tv)
                                type=TV
                            ;;
                            video)
                                type=Video
                            ;;
                        esac;
                        type="AudioVideo;${type}"
                    ;;
                esac
            ;;
            net)
                case ${catmin} in 
                    dialup)
                        type=Dialup
                    ;;
                    ftp)
                        type=FileTransfer
                    ;;
                    im)
                        type=InstantMessaging
                    ;;
                    irc)
                        type=IRCClient
                    ;;
                    mail)
                        type=Email
                    ;;
                    news)
                        type=News
                    ;;
                    nntp)
                        type=News
                    ;;
                    p2p)
                        type=FileTransfer
                    ;;
                    voip)
                        type=Telephony
                    ;;
                esac;
                type="Network;${type}"
            ;;
            sci)
                case ${catmin} in 
                    astro*)
                        type=Astronomy
                    ;;
                    bio*)
                        type=Biology
                    ;;
                    calc*)
                        type=Calculator
                    ;;
                    chem*)
                        type=Chemistry
                    ;;
                    elec*)
                        type=Electronics
                    ;;
                    geo*)
                        type=Geology
                    ;;
                    math*)
                        type=Math
                    ;;
                    physics)
                        type=Physics
                    ;;
                    visual*)
                        type=DataVisualization
                    ;;
                esac;
                type="Education;Science;${type}"
            ;;
            sys)
                type="System"
            ;;
            www)
                case ${catmin} in 
                    client)
                        type=WebBrowser
                    ;;
                esac;
                type="Network;${type}"
            ;;
            *)
                type=
            ;;
        esac;
    fi;
    if [ "${SLOT}" == "0" ]; then
        local desktop_name="${PN}";
    else
        local desktop_name="${PN}-${SLOT}";
    fi;
    local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
    type=${type%;}${type:+;};
    eshopts_push -s extglob;
    if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then
        ewarn "As described in the Icon Theme Specification, icon file extensions are not";
        ewarn "allowed in .desktop files if the value is not an absolute path.";
        icon=${icon%.@(xpm|png|svg)};
    fi;
    eshopts_pop;
    cat > "${desktop}"  <<-EOF
[Desktop Entry]
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type}
EOF

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

    ( insinto /usr/share/xsessions;
    doins "${desktop}" )
}
make_wrapper () 
{ 
    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
}
migrate_store_dir () 
{ 
    local cleandir="${ESVN_STORE_DIR}/KDE";
    if [[ -d "${cleandir}" ]]; then
        ewarn "'${cleandir}' has been found. Moving contents to new location.";
        addwrite "${ESVN_STORE_DIR}";
        local module;
        if pushd "${cleandir}"/kdebase/kdebase > /dev/null; then
            for module in `find . -maxdepth 1 -type d -name [a-z0-9]\*`;
            do
                module="${module#./}";
                mkdir -p "${ESVN_STORE_DIR}/kdebase-${module}" && mv -f "${module}" "${ESVN_STORE_DIR}/kdebase-${module}" || die "Failed to move to '${ESVN_STORE_DIR}/kdebase-${module}'.";
            done;
            popd > /dev/null;
            rm -fr "${cleandir}/kdebase" || die "Failed to remove ${cleandir}/kdebase. You need to remove it manually.";
        fi;
        local pkg;
        for pkg in "${cleandir}"/*;
        do
            mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "Failed to move '${pkg}'";
        done;
        rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue.";
    fi;
    if ! hasq kde4-meta ${INHERITED}; then
        case ${KMNAME} in 
            extragear* | playground*)
                local svnlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}";
                if [[ -d "${svnlocalpath}" ]]; then
                    local destdir="${ESVN_STORE_DIR}"/"${ESVN_PROJECT}"/"`basename "${ESVN_REPO_URI}"`";
                    ewarn "'${svnlocalpath}' has been found.";
                    ewarn "Moving contents to new location: ${destdir}";
                    addwrite "${ESVN_STORE_DIR}";
                    mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${svnlocalpath}" "${destdir}" || die "Failed to move to '${svnlocalpath}'";
                    rmdir "`dirname "${svnlocalpath}"`" 2> /dev/null;
                fi
            ;;
        esac;
    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
}
newicon () 
{ 
    ( insinto /usr/share/pixmaps;
    newins "$@" )
}
newmenu () 
{ 
    ( insinto /usr/share/applications;
    newins "$@" )
}
no-as-needed () 
{ 
    case $($(tc-getLD) -v 2>&1 </dev/null) in 
        *GNU*)
            echo "-Wl,--no-as-needed"
        ;;
    esac
}
nonfatal () 
{ 
    if has "${EAPI:-0}" 0 1 2 3 3_pre2; then
        die "$FUNCNAME() not supported in this EAPI";
    fi;
    if [[ $# -lt 1 ]]; then
        die "$FUNCNAME(): Missing argument";
    fi;
    PORTAGE_NONFATAL=1 "$@"
}
number_abis () 
{ 
    get_install_abis | wc -w
}
pkg_nofetch () 
{ 
    _eapi0_pkg_nofetch "$@"
}
pkg_postinst () 
{ 
    kde4-base_pkg_postinst "$@"
}
pkg_postrm () 
{ 
    kde4-base_pkg_postrm "$@"
}
pkg_setup () 
{ 
    kde4-base_pkg_setup "$@"
}
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
}
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
}
raw-ldflags () 
{ 
    local x input="$@";
    [[ -z ${input} ]] && input=${LDFLAGS};
    set --;
    for x in ${input};
    do
        x=${x#-Wl,};
        set -- "$@" ${x//,/ };
    done;
    echo "$@"
}
register_success_hook () 
{ 
    local x;
    for x in $*;
    do
        hasq $x $EBUILD_SUCCESS_HOOKS || export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x";
    done
}
remove_flag () 
{ 
    local remove="${1}";
    shift;
    while [[ -n "${1}" ]]; do
        [[ "${1}" != "${remove}" ]] && echo -n "${1} ";
        shift;
    done
}
replace-cpu-flags () 
{ 
    local newcpu="$#";
    newcpu="${!newcpu}";
    while [ $# -gt 1 ]; do
        replace-flags "-march=${1}" "-march=${newcpu}";
        replace-flags "-mcpu=${1}" "-mcpu=${newcpu}";
        replace-flags "-mtune=${1}" "-mtune=${newcpu}";
        shift;
    done;
    return 0
}
replace-flags () 
{ 
    [[ $# != 2 ]] && echo && eerror "Usage: replace-flags <old flag> <new flag>" && die "replace-flags takes 2 arguments, not $#";
    local f fset;
    declare -a new_CFLAGS new_CXXFLAGS new_FFLAGS new_FCFLAGS;
    for fset in CFLAGS CXXFLAGS FFLAGS FCFLAGS;
    do
        for f in ${!fset};
        do
            [[ ${f} == ${1} ]] && f=${2};
            eval new_${fset}\[\${\#new_${fset}\[@]}]=\${f};
        done;
        eval export ${fset}=\${new_${fset}\[*]};
    done;
    return 0
}
replace-sparc64-flags () 
{ 
    local SPARC64_CPUS="ultrasparc3 ultrasparc v9";
    if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then
        for x in ${SPARC64_CPUS};
        do
            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";
        done;
    else
        for x in ${SPARC64_CPUS};
        do
            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
        done;
    fi;
    if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then
        for x in ${SPARC64_CPUS};
        do
            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";
        done;
    else
        for x in ${SPARC64_CPUS};
        do
            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
        done;
    fi;
    export CFLAGS CXXFLAGS
}
replace_all_version_separators () 
{ 
    __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
}
save_library_dependencies () 
{ 
    local depsfile="${T}/${PN}:${SLOT}";
    ebegin "Saving library dependencies in ${depsfile##*/}";
    echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || die "Failed to save the library dependencies.";
    eend $?
}
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
}
setup-allowed-flags () 
{ 
    if [[ -z ${ALLOWED_FLAGS} ]]; then
        export ALLOWED_FLAGS="-pipe";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -mcpu -march -mtune";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking -fno-strict-overflow";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident";
        export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w";
    fi;
    ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all 		-fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer";
    ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs 		-mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 		-mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow 		-mno-popcnt -mno-abm 		-mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt 		-msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu 		-mieee -mieee-with-inexact -mschedule 		-mtls-direct-seg-refs -mno-tls-direct-seg-refs 		-mflat -mno-flat -mno-faster-structs -mfaster-structs 		-m32 -m64 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC 		-mlive-g0 -mcmodel -mstack-bias -mno-stack-bias 		-msecure-plt -m*-toc -D* -U*";
    export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks";
    return 0
}
slot_is_at_least () 
{ 
    [[ "${2}" > "${1}" || "${2}" = "${1}" ]]
}
src_compile () 
{ 
    kde4-base_src_compile "$@"
}
src_configure () 
{ 
    kde4-base_src_configure "$@"
}
src_install () 
{ 
    kde4-base_src_install "$@"
}
src_prepare () 
{ 
    kde4-base_src_prepare "$@"
}
src_test () 
{ 
    kde4-base_src_test "$@"
}
src_unpack () 
{ 
    kde4-base_src_unpack "$@"
}
strip-flags () 
{ 
    local x y flag NEW_CFLAGS NEW_CXXFLAGS NEW_FFLAGS NEW_FCFLAGS;
    setup-allowed-flags;
    local NEW_CFLAGS="";
    local NEW_CXXFLAGS="";
    local NEW_FFLAGS="";
    local NEW_FCFLAGS="";
    if has "~$(tc-arch)" ${ACCEPT_KEYWORDS}; then
        ALLOWED_FLAGS="${ALLOWED_FLAGS} ${UNSTABLE_FLAGS}";
    fi;
    set -f;
    for x in ${CFLAGS};
    do
        for y in ${ALLOWED_FLAGS};
        do
            flag=${x%%=*};
            if [ "${flag%%${y}}" = "" ]; then
                NEW_CFLAGS="${NEW_CFLAGS} ${x}";
                break;
            fi;
        done;
    done;
    for x in ${CXXFLAGS};
    do
        for y in ${ALLOWED_FLAGS};
        do
            flag=${x%%=*};
            if [ "${flag%%${y}}" = "" ]; then
                NEW_CXXFLAGS="${NEW_CXXFLAGS} ${x}";
                break;
            fi;
        done;
    done;
    for x in ${FFLAGS};
    do
        for y in ${ALLOWED_FLAGS};
        do
            flag=${x%%=*};
            if [ "${flag%%${y}}" = "" ]; then
                NEW_FFLAGS="${NEW_FFLAGS} ${x}";
                break;
            fi;
        done;
    done;
    for x in ${FCFLAGS};
    do
        for y in ${ALLOWED_FLAGS};
        do
            flag=${x%%=*};
            if [ "${flag%%${y}}" = "" ]; then
                NEW_FCFLAGS="${NEW_FCFLAGS} ${x}";
                break;
            fi;
        done;
    done;
    if [ "${CFLAGS/-O}" != "${CFLAGS}" -a "${NEW_CFLAGS/-O}" = "${NEW_CFLAGS}" ]; then
        NEW_CFLAGS="${NEW_CFLAGS} -O2";
    fi;
    if [ "${CXXFLAGS/-O}" != "${CXXFLAGS}" -a "${NEW_CXXFLAGS/-O}" = "${NEW_CXXFLAGS}" ]; then
        NEW_CXXFLAGS="${NEW_CXXFLAGS} -O2";
    fi;
    if [ "${FFLAGS/-O}" != "${FFLAGS}" -a "${NEW_FFLAGS/-O}" = "${NEW_FFLAGS}" ]; then
        NEW_FFLAGS="${NEW_FFLAGS} -O2";
    fi;
    if [ "${FCFLAGS/-O}" != "${FCFLAGS}" -a "${NEW_FCFLAGS/-O}" = "${NEW_FCFLAGS}" ]; then
        NEW_FCFLAGS="${NEW_FCFLAGS} -O2";
    fi;
    set +f;
    export CFLAGS="${NEW_CFLAGS}";
    export CXXFLAGS="${NEW_CXXFLAGS}";
    export FFLAGS="${NEW_FFLAGS}";
    export FCFLAGS="${NEW_FCFLAGS}";
    return 0
}
strip-linguas () 
{ 
    local ls newls nols;
    if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
        local op=$1;
        shift;
        ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
        shift;
        local d f;
        for d in "$@";
        do
            if [[ ${op} == "-u" ]]; then
                newls=${ls};
            else
                newls="";
            fi;
            for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
            do
                if [[ ${op} == "-i" ]]; then
                    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-unsupported-flags () 
{ 
    export CFLAGS=$(test-flags-CC ${CFLAGS});
    export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});
    export FFLAGS=$(test-flags-F77 ${FFLAGS});
    export FCFLAGS=$(test-flags-FC ${FCFLAGS})
}
tc-arch () 
{ 
    tc-ninja_magic_to_arch portage "$@"
}
tc-arch-kernel () 
{ 
    tc-ninja_magic_to_arch kern "$@"
}
tc-endian () 
{ 
    local host=$1;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    host=${host%%-*};
    case ${host} in 
        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-getPKG_CONFIG () 
{ 
    tc-getPROG PKG_CONFIG pkg-config "$@"
}
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-has-tls () 
{ 
    local base="${T}/test-tc-tls";
    cat > "${base}.c"  <<-EOF
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}
EOF

    local flags;
    case $1 in 
        -s)
            flags="-S"
        ;;
        -c)
            flags="-c"
        ;;
        -l)

        ;;
        -*)
            die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
        ;;
    esac;
    : ${flags:=-fPIC -shared -Wl,-z,defs};
    [[ $1 == -* ]] && shift;
    $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-is-cross-compiler () 
{ 
    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
}
test-flag-CC () 
{ 
    test-flag-PROG "CC" "$1"
}
test-flag-CXX () 
{ 
    test-flag-PROG "CXX" "$1"
}
test-flag-F77 () 
{ 
    test-flag-PROG "F77" "$1"
}
test-flag-FC () 
{ 
    test-flag-PROG "FC" "$1"
}
test-flag-PROG () 
{ 
    local comp=$1;
    local flags="$2";
    [[ -z ${comp} || -z ${flags} ]] && return 1;
    local PROG=$(tc-get${comp});
    ${PROG} ${flags} -S -o /dev/null -xc /dev/null > /dev/null 2>&1
}
test-flags () 
{ 
    test-flags-CC "$@"
}
test-flags-CC () 
{ 
    test-flags-PROG "CC" "$@"
}
test-flags-CXX () 
{ 
    test-flags-PROG "CXX" "$@"
}
test-flags-F77 () 
{ 
    test-flags-PROG "F77" "$@"
}
test-flags-FC () 
{ 
    test-flags-PROG "FC" "$@"
}
test-flags-PROG () 
{ 
    local comp=$1;
    local flags;
    local x;
    shift;
    [[ -z ${comp} ]] && return 1;
    x="";
    for x in "$@";
    do
        test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}";
    done;
    echo "${flags}";
    [[ -n ${flags} ]]
}
test_flag () 
{ 
    ewarn "test_flag: deprecated, please use test-flags()!" 1>&2;
    test-flags-CC "$@"
}
test_version_info () 
{ 
    if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then
        return 0;
    else
        return 1;
    fi
}
treecopy () 
{ 
    dest=${!#};
    files_count=$#;
    while (( $# > 1 )); do
        dirstruct=$(dirname "$1");
        mkdir -p "${dest}/${dirstruct}";
        cp -pPR "$1" "${dest}/${dirstruct}";
        shift;
    done
}
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;
    assert "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
}
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
}
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
}

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

* [gentoo-amd64] Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-08 10:12 [gentoo-amd64] Failures on updating KDE to 4.4.1 - unable to update kmail Paul Stear
@ 2010-03-08 10:12 ` Paul Stear
  2010-03-08 16:54 ` [gentoo-amd64] " Duncan
  1 sibling, 0 replies; 10+ messages in thread
From: Paul Stear @ 2010-03-08 10:12 UTC (permalink / raw
  To: gentoo-amd64

Hi,
I have been trying for days to get my kde system working again properly.  
kmail hasn't been updated yet because kdepim-runtime-4.4.1 fails with the  
following error:-

-----------------------------------------------------------------------------
-- The following REQUIRED packages could NOT be located on your system.
-- You must install these packages before continuing.
-----------------------------------------------------------------------------
    * Nepomuk  <http://www.kde.org>
      The Nepomuk libraries
      Nepomuk extends the search and tagging functionalities in KMail and  
Akonadi

-----------------------------------------------------------------------------

CMake Error at /usr/share/apps/cmake/modules/MacroLogFeature.cmake:141  
(MESSAGE):
   Exiting: Missing Requirements
Call Stack (most recent call first):
   CMakeLists.txt:128 (macro_display_feature_log)

I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems that  
kdepim can not find it.
I attach the complete build log and the output of 'emerge -pqv  
=kde-base/kdepim-runtime-4.4.1
and The ebuild environment file is located at  
'/var/tmp/portage/kde-base/kdepim-runtime-4.4.1/temp/environment

The following is emerge info:

~/ > emerge --info =kde-base/kdepim-runtime-4.4.1
Portage 2.1.8.1 (default/linux/amd64/10.0/desktop, gcc-4.3.4,  
glibc-2.11-r1, 2.6.32-gentoo-r1 x86_64)
=================================================================
                         System Settings
=================================================================
System uname:  
Linux-2.6.32-gentoo-r1-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_4600+-with-gentoo-2.0.1
Timestamp of tree: Mon, 08 Mar 2010 07:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.1_p2
dev-java/java-config: 2.1.10
dev-lang/python:     2.6.4-r1, 3.1.1-r1
dev-util/ccache:     2.4-r8
dev-util/cmake:      2.8.0-r2
sys-apps/baselayout: 2.0.1
sys-apps/openrc:     0.6.0-r1
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.13, 2.65
sys-devel/automake:  1.7.9-r2, 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.20.1
sys-devel/gcc:       4.3.4, 4.4.3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.33
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe  
-fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/  
/etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/java-config/vms/  
/etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo  
/etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d  
/etc/texmf/web2c"
CXXFLAGS="-Os -march=k8 -mno-tls-direct-seg-refs -mmmx -msse3 -pipe  
-fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--with-bdeps y"
FEATURES="assume-digests ccache distlocks fixpackages metadata-transfer  
news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs  
unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org  
http://www.ibiblio.org/pub/Linux/distributions/gentoo  
http://ftp.belnet.be/mirror/rsync.gentoo.org/gentoo/  
ftp://mirror.qubenet.net/mirror/gentoo/  
ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo  
http://pandemonium.tiscali.de/pub/gentoo/"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,--as-needed,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"
LINGUAS="en_GB"
MAKEOPTS="-j5 -s"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times  
--compress --force --whole-file --delete --stats --timeout=180  
--exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 avi bash-completion  
berkdb bluetooth branding bzip2 cairo cdparanoia cdr clamav cli consolekit  
cracklib crypt cups cxx dbus divx divx4linux dri dts dv dvb dvd dvdr  
dvdread eds embedded emboss encode evo examples fam ffmpeg flac fortran  
gdbm gif gphoto2 gpm gstreamer hal iconv imagemagick ipv6 jack java java6  
javascript jpeg kde kerberos lame ldap libnotify lm_sensors logrotate mad  
mikmod mjpeg mmx mng modules mp3 mp4 mpeg mplayer mudflap multilib mysql  
ncurses nls nptl nptlonly nsplugin nvidia ogg opengl openmp pam pascal  
pcre pdf perl png ppds pppd python qt3support qt4 quicktime readline  
reflection ruby samba scanner sdl session spell spl sql sqlite sse sse2  
ssl startup-notification svg sysfs tcpd theora thunar tiff tk truetype  
unicode usb v4l vorbis webkit x264 xcomposite xine xinerama xml xml2 xorg  
xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm  
alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug  
ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route  
share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias  
authn_anon authn_dbm authn_default authn_file authz_dbm authz_default  
authz_groupfile authz_host authz_owner authz_user autoindex cache dav  
dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache  
filter headers include info log_config logio mem_cache mime mime_magic  
negotiation rewrite setenvif speling status unique_id userdir usertrack  
vhost_alias" ELIBC="glibc" INPUT_DEVICES="evdev wacom" KERNEL="linux"  
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb  
ncurses text" LINGUAS="en_GB" RUBY_TARGETS="ruby18" USERLAND="GNU"  
VIDEO_CARDS="nvidia"
Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS,  
PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Any ideas? I just don't know what to try next.
regards
Paul

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



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

* [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-08 10:12 [gentoo-amd64] Failures on updating KDE to 4.4.1 - unable to update kmail Paul Stear
  2010-03-08 10:12 ` Paul Stear
@ 2010-03-08 16:54 ` Duncan
  2010-03-09 11:14   ` Paul Stear
  2010-03-10  6:03   ` Duncan
  1 sibling, 2 replies; 10+ messages in thread
From: Duncan @ 2010-03-08 16:54 UTC (permalink / raw
  To: gentoo-amd64

Paul Stear posted on Mon, 08 Mar 2010 11:12:51 +0100 as excerpted:

> I have been trying for days to get my kde system working again properly.
> kmail hasn't been updated yet because kdepim-runtime-4.4.1 fails with
> the following error:-

[ can't find Nepomuk ]

> I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems
> that kdepim can not find it.

FWIW, I've not upgraded for a couple weeks now, as I've been doing other 
things.  So I've not yet done the 4.4.1 upgrade myself yet.  If someone 
else hasn't helped you fix the issue by the time I do, I'll see what 
happens when I try, and answer again then.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




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

* Re: [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-08 16:54 ` [gentoo-amd64] " Duncan
@ 2010-03-09 11:14   ` Paul Stear
  2010-03-09 23:08     ` Duncan
  2010-03-10  6:03   ` Duncan
  1 sibling, 1 reply; 10+ messages in thread
From: Paul Stear @ 2010-03-09 11:14 UTC (permalink / raw
  To: gentoo-amd64

On Mon, 08 Mar 2010 17:54:01 +0100, Duncan <1i5t5.duncan@cox.net> wrote:

> Paul Stear posted on Mon, 08 Mar 2010 11:12:51 +0100 as excerpted:
>
>> I have been trying for days to get my kde system working again properly.
>> kmail hasn't been updated yet because kdepim-runtime-4.4.1 fails with
>> the following error:-
>
> [ can't find Nepomuk ]
>
>> I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems
>> that kdepim can not find it.
>
> FWIW, I've not upgraded for a couple weeks now, as I've been doing other
> things.  So I've not yet done the 4.4.1 upgrade myself yet.  If someone
> else hasn't helped you fix the issue by the time I do, I'll see what
> happens when I try, and answer again then.
>

Thanks Duncan, I hope you do not have problems but can still help me.
Just a few other observations:
1, I removed all of kdepim from my system, removed from world etc but if I  
tried to upgrade kmail it draged in kdepin-runtime. I just can't see why  
kmail should be dependent on kdepim-runtime.
2, Tied in with this might be the problems I had with amarok not working  
when mysql was updated.  I have masked the mysql update and reverted to  
dev-db/mysql-5.0.90-r2, virtual/mysql-5.0, dev-perl/DBD-mysql-4.01.3,  
dev-java/jdbc-mysql-5.1.11

I might be leading you up the garden path with this.
I look forward to hearing how your upgrade went,
regards
Paul

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



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

* [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-09 11:14   ` Paul Stear
@ 2010-03-09 23:08     ` Duncan
  0 siblings, 0 replies; 10+ messages in thread
From: Duncan @ 2010-03-09 23:08 UTC (permalink / raw
  To: gentoo-amd64

Paul Stear posted on Tue, 09 Mar 2010 12:14:10 +0100 as excerpted:

> Thanks Duncan, I hope you do not have problems but can still help me.

FWIW, I'm upgrading in the background right now.  I'm doing it twice, 
~amd64 on my main machine, and ~x86 on the image (on my main machine, but) 
for my netbook, some 270+ packages on each, including the non-kde ones (I 
don't run a full kde or it'd be more).

FWIW, there were some issues with mysql reported, tho they /should/ be 
fixed with the latest versions of everything.  That would affect akonadi/
kaddressbook/kmail, which I run, and amarok, which I dumped due to 
developers more interested in more features I didn't want (after removing 
several I used) than in the fact that they were breaking it for the amd64 
segment of their userbase, back when they switched to mysql-embedded.  

IMO, you'll be better off choosing a simpler music player, unless of 
course you actually /use/ all that database functionality, scoring, 
wikipedia artist lookup, etc, and value it above having a player that 
actually /works/ for playing /music/.  After a bit of research, I went 
with mpd and a few chosen front-ends, in part so I could have 
uninterrupted play when I wasn't running X and when I was, but there's all 
sorts of players for all sorts of styles.  And unless your style exactly 
matches the amarok one, it's very likely simply way too many complex 
dependencies to be worth running it.  But if amarok's your style, by all 
means, continue to use it!  It's just not mine and even when I was running 
it back in kde3, I found it rather bloated for my tastes.  But the switch 
to mysql-embedded was the last straw for me, so I switched, and am very 
glad I did. =:^)

More on the rest when I'm done with the upgrade...

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




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

* [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-08 16:54 ` [gentoo-amd64] " Duncan
  2010-03-09 11:14   ` Paul Stear
@ 2010-03-10  6:03   ` Duncan
  2010-03-10  7:05     ` Paul Stear
  1 sibling, 1 reply; 10+ messages in thread
From: Duncan @ 2010-03-10  6:03 UTC (permalink / raw
  To: gentoo-amd64

Duncan posted on Mon, 08 Mar 2010 16:54:01 +0000 as excerpted:

> Paul Stear posted on Mon, 08 Mar 2010 11:12:51 +0100 as excerpted:
> 
>> I have been trying for days to get my kde system working again
>> properly. kmail hasn't been updated yet because kdepim-runtime-4.4.1
>> fails with the following error:-
> 
> [ can't find Nepomuk ]
> 
>> I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems
>> that kdepim can not find it.

> I've not yet done the 4.4.1 upgrade myself yet.

Just restarted kde after a successful upgrade, so it worked here. =:^)

And the mysql upgrade must have gone fine as well; the kaddressbook 
database came thru it just fine, AFAICT.

So you know it /should/ work, but why it's not, for you...

I'll try to investigate that a bit more later.  Just posting a quick 
"working here" report ATM.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




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

* Re: [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-10  6:03   ` Duncan
@ 2010-03-10  7:05     ` Paul Stear
  2010-03-10 21:34       ` Duncan
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Stear @ 2010-03-10  7:05 UTC (permalink / raw
  To: gentoo-amd64

On Wed, 10 Mar 2010 07:03:38 +0100, Duncan <1i5t5.duncan@cox.net> wrote:

> Duncan posted on Mon, 08 Mar 2010 16:54:01 +0000 as excerpted:
>
>> Paul Stear posted on Mon, 08 Mar 2010 11:12:51 +0100 as excerpted:
>>
>>> I have been trying for days to get my kde system working again
>>> properly. kmail hasn't been updated yet because kdepim-runtime-4.4.1
>>> fails with the following error:-
>>
>> [ can't find Nepomuk ]
>>
>>> I have installed and re-installed kdebase/nepomuk-4.4.1 but it seems
>>> that kdepim can not find it.
>
>> I've not yet done the 4.4.1 upgrade myself yet.
>
> Just restarted kde after a successful upgrade, so it worked here. =:^)
>
> And the mysql upgrade must have gone fine as well; the kaddressbook
> database came thru it just fine, AFAICT.
>
> So you know it /should/ work, but why it's not, for you...
>
> I'll try to investigate that a bit more later.  Just posting a quick
> "working here" report ATM.
>
Thanks for the info Duncan,
I have just un-installed amarok and am starting to upgrade world including  
mysql etc.
When I get the system working correctly I will then look for a replacement  
to amarok.
Will let you know what happens.
Paul

-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



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

* [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-10  7:05     ` Paul Stear
@ 2010-03-10 21:34       ` Duncan
  2010-03-11 14:48         ` Paul Stear
  0 siblings, 1 reply; 10+ messages in thread
From: Duncan @ 2010-03-10 21:34 UTC (permalink / raw
  To: gentoo-amd64

Paul Stear posted on Wed, 10 Mar 2010 08:05:32 +0100 as excerpted:

> I have just un-installed amarok and am starting to upgrade world
> including mysql etc.

One additional thing I should mention.  For me it's routine so sometimes I 
forget that it may not be that way for everyone.

The scriptlets I normally use to upgrade all use -NuD, so an update is 
always a FULL update, all the way thru the dependencies (deep), and 
updating any packages with changed USE flags as well.  Personally, I don't 
have much use for half-way updates, as I believe they'll cause me more 
pain than the time they'll save.

Similarly, I always finish with a scriptlet that runs lafilefixer
--justfixit, and then revdep-rebuild $* -- -a1.  (Actually, it's slightly 
more complicated than that, as I source a config file that sets a parallel 
jobs environmental variable, and add that variable to the revdep-rebuild 
command line as well, so it takes advantage of portage's parallel emerge 
features where it can.)  Of course, Between lafilefixer and the fact that 
I run as-needed in my LDFLAGS, my revdep-rebuild load is far lower than it 
would be otherwise, which helps. =:^)

Then another scriptlet runs emerge --ask --depclean, and if it cleaned 
anything major, I run the rebuild scriptlet again just to double-check 
that the removals didn't leave any hanging needed rebuilds.

Of course, another scriptlet takes care of the etc-updates.

So when I'm done, not only are all dependencies deep updated along with 
all packages with new USE flags, but I've ensured all stale linkages are 
fixed and removed all the old no longer depended packages as well, 
rerunning the stale linkages check after the cruft removal.

I also take care to read all the elogged messages (or at least skim them, 
as most are repeats I'm familiar with by now) and do all the config 
updates.

I'm unsure how many problems such a thoroughly proactive update regime 
saves me, but I'm sure it's non-zero.  If you're not regularly running 
revdep-rebuild after updates, try it, with --ask or --pretend first, as 
you may have quite a few rebuilds built up the first time you run it.  The 
--newuse and --deep emerge flags are mostly me being extra cautious (plus 
I just like being updated thru and thru), as in theory they shouldn't be 
needed.  But it shouldn't need stated that theory doesn't always match 
reality.  And if you're not running emerge --depclean routinely, do be 
extremely careful the first few times you run it, absolutely run it with
--pretend the first time, and go thru its list looking for stuff you want 
to keep and add it to your world file (emerge --select --noreplace), 
before running --depclean for real.  Removing that cruft does help because 
sometimes packages get mixed up and link to the old versions, if they're 
still around.  Plus, there's potential security vulns to think about, 
since they're no longer in the dependency tree portage checks for updates.

Using such a program, you should proactively avoid many problems, and then 
you'll be the one shrugging your shoulders and saying "it works for me." 
=:^)  Of course it won't fix them all, but the ones that are left are much 
more likely to have real bugs associated with them, not the fuzzy bugs 
associated with a system not kept in peak running order.

(Also keep in mind that perl-cleaner and python-updater are the parallel 
to revdep-rebuild in their respective language domains.  But unless you're 
doing python/perl development or scripting on your own, it's unlikely 
you'll need them as often as revdep-rebuild, as the number of apps using 
them isn't as high, and the usage isn't as "system-core", as C/C++.)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman




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

* Re: [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-10 21:34       ` Duncan
@ 2010-03-11 14:48         ` Paul Stear
  2010-03-12 11:37           ` Paul Stear
  0 siblings, 1 reply; 10+ messages in thread
From: Paul Stear @ 2010-03-11 14:48 UTC (permalink / raw
  To: gentoo-amd64

Hi again,
Well my system seems to be working now all accept nepomuk which is  
installed but the following programs can't find it !!!!

[ebuild   R   ] kde-base/kde-meta-4.4.1  USE="nls semantic-desktop*  
-accessibility (-aqua) (-kdeprefix)" 0 kB
[ebuild  N    ]  kde-base/kdepim-meta-4.4.1  USE="semantic-desktop (-aqua)  
(-kdeprefix)" 0 kB
[ebuild  N    ]   kde-base/kaddressbook-4.4.1  USE="handbook kontact  
(-aqua) -debug (-kdeenablefinal) (-kdeprefix)" 0 kB
[ebuild  N    ]   kde-base/akonadi-4.4.1  USE="(-aqua) -debug  
(-kdeenablefinal) (-kdeprefix)" 0 kB
[ebuild  N    ]   kde-base/kmail-4.4.1  USE="handbook kontact (-aqua)  
-ayatana -debug (-kdeenablefinal) (-kdeprefix)" 0 kB
[nomerge      ] kde-base/kde-meta-4.4.1  USE="nls semantic-desktop*  
-accessibility (-aqua) (-kdeprefix)"
[nomerge      ]  kde-base/kdegraphics-meta-4.4.1  USE="(-aqua)  
(-kdeprefix)"
[ebuild   R   ]   kde-base/gwenview-4.4.1-r1  USE="handbook  
semantic-desktop* (-aqua) -debug (-kdeenablefinal) (-kdeprefix) -kipi" 0 kB
[nomerge      ] kde-base/kdepim-meta-4.4.1  USE="semantic-desktop (-aqua)  
(-kdeprefix)"
[ebuild  N    ]  kde-base/kdepim-runtime-4.4.1  USE="(-aqua) -debug  
(-kdeenablefinal) (-kdeprefix)" 0 kB

I wonder if I have a link missing
What starts nepomuk ?
A few weeks ago on this list was a mail about switching on  
indexing/semantic-desktop. I did this and all worked well until my update  
to kde 4.4.1.
I thought I would check to see if semantic-desktop was turned on but for  
the life of me I can't find that option anywhere.
Any thoughts?
This is driving me crazy, I'm sure the solution will be something simple.
Any help appreciated
regards
Paul
-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



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

* Re: [gentoo-amd64] Re: Failures on updating KDE to 4.4.1 - unable to update kmail
  2010-03-11 14:48         ` Paul Stear
@ 2010-03-12 11:37           ` Paul Stear
  0 siblings, 0 replies; 10+ messages in thread
From: Paul Stear @ 2010-03-12 11:37 UTC (permalink / raw
  To: gentoo-amd64

My problems are now resolved, after changing gcc and doing various updates  
I finally emerged kdelibs again and then kdepim and kmail installed with  
no problems.
Thanks to all who helped,
  regards
  Paul


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



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

end of thread, other threads:[~2010-03-12 12:03 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-08 10:12 [gentoo-amd64] Failures on updating KDE to 4.4.1 - unable to update kmail Paul Stear
2010-03-08 10:12 ` Paul Stear
2010-03-08 16:54 ` [gentoo-amd64] " Duncan
2010-03-09 11:14   ` Paul Stear
2010-03-09 23:08     ` Duncan
2010-03-10  6:03   ` Duncan
2010-03-10  7:05     ` Paul Stear
2010-03-10 21:34       ` Duncan
2010-03-11 14:48         ` Paul Stear
2010-03-12 11:37           ` Paul Stear

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