ALSA_CARDS='intel8x0 intel8x0m pxa2xx-ac97 hda-intel' ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol' ANT_HOME=/usr/share/ant APACHE2_MODULES='actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias' ARCH=x86 AT_GNUCONF_UPDATE=no AT_M4DIR= BLASTDB=/usr/share/ncbi/formatdb BLASTMAT=/usr/share/ncbi/data BLOCK_SIZE=human-readable CAMERAS=all CBUILD=i686-pc-linux-gnu CDEFINE_default=__unix__ CDF_BASE=/usr CDF_BIN='${CDF_BASE}/bin' CDF_HELP='${CDF_BASE}/lib/cdf/help' CDF_INC='${CDF_BASE}/include' CDF_LIB='${CDF_BASE}/lib' CFLAGS='-O2 -mtune=prescott -march=prescott -pipe' CFLAGS_default= CHOST=i686-pc-linux-gnu CHOST_default=i686-pc-linux-gnu CLASSPATH=. CPPFLAGS= CTARGET_default=i686-pc-linux-gnu CVS_RSH=ssh CXXFLAGS='-O2 -mtune=prescott -march=prescott -pipe' DCCC_PATH=/usr/lib/distcc/bin DEFAULT_ABI=default DEPEND=$'>=app-antivirus/clamav-0.90 >=kde-base/kdelibs-3.4 =x11-libs/qt-3.3* =sys-devel/automake-1.9*\n\t>=sys-devel/autoconf-2.61\n\tsys-devel/libtool sys-devel/make\n\tdev-util/pkgconfig\n\tdev-lang/perl\n\tx11-libs/libXt\n\tx11-proto/xf86vidmodeproto\n\txinerama? ( x11-proto/xineramaproto ) arts? ( kde-base/arts )' DESCRIPTION='KlamAV is a KDE frontend for the ClamAV antivirus.' DESTTREE=/usr DIROPTIONS=-m0755 EAPI= ELIBC=glibc ELIBTOOL_VERSION=2.0.2 ELT_APPLIED_PATCHES= ELT_LTMAIN_SH= ELT_PATCH_DIR=/home/gentoo/portage/eclass/ELT-patches EPATCH_EXCLUDE= EPATCH_FORCE=no EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...' EPATCH_OPTS='-g0 -E --no-backup-if-mismatch' EPATCH_SINGLE_MSG= EPATCH_SOURCE=/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/work/patch EPATCH_SUFFIX=patch.bz2 EXEOPTIONS=-m0755 F77FLAGS='-O2 -mtune=prescott -march=prescott -pipe' FCFLAGS='-O2 -mtune=prescott -march=prescott -pipe' FEATURES='candy ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch userpriv usersandbox' FFLAGS='-O2 -mtune=prescott -march=prescott -pipe' FLTK_DOCDIR=/usr/share/doc/fltk-1.1.7-r3/html GCC_SPECS= GDK_USE_XFT=1 GENERATION=2 GMTHOME=/usr/share/gmt-4.1.1 GUILE_LOAD_PATH=/usr/share/guile/1.8 HOMEPAGE=http://klamav.sourceforge.net/ IFSBACKUP=$' \t\n' INHERITED='toolchain-funcs qt3 portability flag-o-matic kde versionator multilib base kde-functions libtool autotools eutils' INPUT_DEVICES='keyboard mouse jamstudio evdev' INSDESTTREE= INSOPTIONS=-m0644 IUSE=' debug xinerama elibc_FreeBSD arts' JAVAC=/etc/java-config-2/current-system-vm/bin/javac JAVA_HOME=/etc/java-config-2/current-system-vm JDK_HOME=/etc/java-config-2/current-system-vm KDEDIR=/usr/kde/3.5 KDEDIRS=/usr:/usr/local:/usr/kde/3.5 KDEMAJORVER=3 KDEMINORVER=4 KDEREVISION=0 KDEVER=3.4 KDE_DERIVATION_MAP=$'\nkde-base/kdeaccessibility kde-base/kbstateapplet\nkde-base/kdeaccessibility kde-base/kdeaccessibility-iconthemes\nkde-base/kdeaccessibility kde-base/kmag\nkde-base/kdeaccessibility kde-base/kmousetool\nkde-base/kdeaccessibility kde-base/kmouth\nkde-base/kdeaccessibility kde-base/kttsd\nkde-base/kdeaccessibility kde-base/ksayit\nkde-base/kdeaddons kde-base/atlantikdesigner\nkde-base/kdeaddons kde-base/kaddressbook-plugins\nkde-base/kdeaddons kde-base/kate-plugins\nkde-base/kdeaddons kde-base/kdeaddons-docs-konq-plugins\nkde-base/kdeaddons kde-base/kdeaddons-kfile-plugins\nkde-base/kdeaddons kde-base/kicker-applets\nkde-base/kdeaddons kde-base/knewsticker-scripts\nkde-base/kdeaddons kde-base/konq-plugins\nkde-base/kdeaddons kde-base/konqueror-akregator\nkde-base/kdeaddons kde-base/ksig\nkde-base/kdeaddons kde-base/noatun-plugins\nkde-base/kdeaddons kde-base/renamedlg-audio\nkde-base/kdeaddons kde-base/renamedlg-images\nkde-base/kdeadmin kde-base/kcron\nkde-base/kdeadmin kde-base/kdat\nkde-base/kdeadmin kde-base/kdeadmin-kfile-plugins\nkde-base/kdeadmin kde-base/kpackage\nkde-base/kdeadmin kde-base/ksysv\nkde-base/kdeadmin kde-base/kuser\nkde-base/kdeadmin kde-base/lilo-config\nkde-base/kdeadmin kde-base/secpolicy\nkde-base/kdeartwork kde-base/kdeartwork-emoticons\nkde-base/kdeartwork kde-base/kdeartwork-icewm-themes\nkde-base/kdeartwork kde-base/kdeartwork-iconthemes\nkde-base/kdeartwork kde-base/kdeartwork-kscreensaver\nkde-base/kdeartwork kde-base/kdeartwork-kwin-styles\nkde-base/kdeartwork kde-base/kdeartwork-kworldclock\nkde-base/kdeartwork kde-base/kdeartwork-kworldwatch\nkde-base/kdeartwork kde-base/kdeartwork-sounds\nkde-base/kdeartwork kde-base/kdeartwork-styles\nkde-base/kdeartwork kde-base/kdeartwork-wallpapers\nkde-base/kdebase kde-base/drkonqi\nkde-base/kdebase kde-base/kappfinder\nkde-base/kdebase kde-base/kate\nkde-base/kdebase kde-base/kcheckpass\nkde-base/kdebase kde-base/kcminit\nkde-base/kdebase kde-base/kcontrol\nkde-base/kdebase kde-base/kdcop\nkde-base/kdebase kde-base/kdebase-data\nkde-base/kdebase kde-base/kdebase-kioslaves\nkde-base/kdebase kde-base/kdebase-startkde\nkde-base/kdebase kde-base/kdebugdialog\nkde-base/kdebase kde-base/kdepasswd\nkde-base/kdebase kde-base/kdeprint\nkde-base/kdebase kde-base/kdesktop\nkde-base/kdebase kde-base/kdesu\nkde-base/kdebase kde-base/kdialog\nkde-base/kdebase kde-base/kdm\nkde-base/kdebase kde-base/kfind\nkde-base/kdebase kde-base/khelpcenter\nkde-base/kdebase kde-base/khotkeys\nkde-base/kdebase kde-base/kicker\nkde-base/kdebase kde-base/klipper\nkde-base/kdebase kde-base/kmenuedit\nkde-base/kdebase kde-base/knetattach\nkde-base/kdebase kde-base/konqueror\nkde-base/kdebase kde-base/konsole\nkde-base/kdebase kde-base/kpager\nkde-base/kdebase kde-base/kpersonalizer\nkde-base/kdebase kde-base/kreadconfig\nkde-base/kdebase kde-base/kscreensaver\nkde-base/kdebase kde-base/ksmserver\nkde-base/kdebase kde-base/ksplashml\nkde-base/kdebase kde-base/kstart\nkde-base/kdebase kde-base/ksysguard\nkde-base/kdebase kde-base/ksystraycmd\nkde-base/kdebase kde-base/ktip\nkde-base/kdebase kde-base/kwin\nkde-base/kdebase kde-base/kxkb\nkde-base/kdebase kde-base/libkonq\nkde-base/kdebase kde-base/nsplugins\nkde-base/kdebindings kde-base/dcopc\nkde-base/kdebindings kde-base/dcopjava\nkde-base/kdebindings kde-base/dcopperl\nkde-base/kdebindings kde-base/dcoppython\nkde-base/kdebindings kde-base/kalyptus\nkde-base/kdebindings kde-base/kdejava\nkde-base/kdebindings kde-base/kjsembed\nkde-base/kdebindings kde-base/korundum\nkde-base/kdebindings kde-base/pykde\nkde-base/kdebindings kde-base/qtjava\nkde-base/kdebindings kde-base/qtruby\nkde-base/kdebindings kde-base/qtsharp\nkde-base/kdebindings kde-base/smoke\nkde-base/kdebindings kde-base/xparts\nkde-base/kdeedu kde-base/blinken\nkde-base/kdeedu kde-base/kalzium\nkde-base/kdeedu kde-base/kanagram\nkde-base/kdeedu kde-base/kbruch\nkde-base/kdeedu kde-base/kdeedu-applnk\nkde-base/kdeedu kde-base/keduca\nkde-base/kdeedu kde-base/kgeography\nkde-base/kdeedu kde-base/khangman\nkde-base/kdeedu kde-base/kig\nkde-base/kdeedu kde-base/kiten\nkde-base/kdeedu kde-base/klatin\nkde-base/kdeedu kde-base/klettres\nkde-base/kdeedu kde-base/kmathtool\nkde-base/kdeedu kde-base/kmessedwords\nkde-base/kdeedu kde-base/kmplot\nkde-base/kdeedu kde-base/kpercentage\nkde-base/kdeedu kde-base/kstars\nkde-base/kdeedu kde-base/ktouch\nkde-base/kdeedu kde-base/kturtle\nkde-base/kdeedu kde-base/kverbos\nkde-base/kdeedu kde-base/kvoctrain\nkde-base/kdeedu kde-base/kwordquiz\nkde-base/kdeedu kde-base/libkdeedu\nkde-base/kdegames kde-base/atlantik\nkde-base/kdegames kde-base/kasteroids\nkde-base/kdegames kde-base/katomic\nkde-base/kdegames kde-base/kbackgammon\nkde-base/kdegames kde-base/kbattleship\nkde-base/kdegames kde-base/kblackbox\nkde-base/kdegames kde-base/kbounce\nkde-base/kdegames kde-base/kenolaba\nkde-base/kdegames kde-base/kfouleggs\nkde-base/kdegames kde-base/kgoldrunner\nkde-base/kdegames kde-base/kjumpingcube\nkde-base/kdegames kde-base/klickety\nkde-base/kdegames kde-base/klines\nkde-base/kdegames kde-base/kmahjongg\nkde-base/kdegames kde-base/kmines\nkde-base/kdegames kde-base/knetwalk\nkde-base/kdegames kde-base/kolf\nkde-base/kdegames kde-base/konquest\nkde-base/kdegames kde-base/kpat\nkde-base/kdegames kde-base/kpoker\nkde-base/kdegames kde-base/kreversi\nkde-base/kdegames kde-base/ksame\nkde-base/kdegames kde-base/kshisen\nkde-base/kdegames kde-base/ksirtet\nkde-base/kdegames kde-base/ksmiletris\nkde-base/kdegames kde-base/ksnake\nkde-base/kdegames kde-base/ksokoban\nkde-base/kdegames kde-base/kspaceduel\nkde-base/kdegames kde-base/ktron\nkde-base/kdegames kde-base/ktuberling\nkde-base/kdegames kde-base/kwin4\nkde-base/kdegames kde-base/libkdegames\nkde-base/kdegames kde-base/libksirtet\nkde-base/kdegames kde-base/lskat\nkde-base/kdegraphics kde-base/kamera\nkde-base/kdegraphics kde-base/kcoloredit\nkde-base/kdegraphics kde-base/kdegraphics-kfile-plugins\nkde-base/kdegraphics kde-base/kdvi\nkde-base/kdegraphics kde-base/kfax\nkde-base/kdegraphics kde-base/kgamma\nkde-base/kdegraphics kde-base/kghostview\nkde-base/kdegraphics kde-base/kiconedit\nkde-base/kdegraphics kde-base/kmrml\nkde-base/kdegraphics kde-base/kolourpaint\nkde-base/kdegraphics kde-base/kooka\nkde-base/kdegraphics kde-base/kpdf\nkde-base/kdegraphics kde-base/kpovmodeler\nkde-base/kdegraphics kde-base/kruler\nkde-base/kdegraphics kde-base/ksnapshot\nkde-base/kdegraphics kde-base/ksvg\nkde-base/kdegraphics kde-base/kuickshow\nkde-base/kdegraphics kde-base/kview\nkde-base/kdegraphics kde-base/kviewshell\nkde-base/kdegraphics kde-base/libkscan\nkde-base/kdemultimedia kde-base/akode\nkde-base/kdemultimedia kde-base/artsplugin-akode\nkde-base/kdemultimedia kde-base/artsplugin-audiofile\nkde-base/kdemultimedia kde-base/artsplugin-mpeglib\nkde-base/kdemultimedia kde-base/artsplugin-mpg123\nkde-base/kdemultimedia kde-base/artsplugin-xine\nkde-base/kdemultimedia kde-base/juk\nkde-base/kdemultimedia kde-base/kaboodle\nkde-base/kdemultimedia kde-base/kaudiocreator\nkde-base/kdemultimedia kde-base/kdemultimedia-arts\nkde-base/kdemultimedia kde-base/kdemultimedia-kappfinder-data\nkde-base/kdemultimedia kde-base/kdemultimedia-kfile-plugins\nkde-base/kdemultimedia kde-base/kdemultimedia-kioslaves\nkde-base/kdemultimedia kde-base/kmid\nkde-base/kdemultimedia kde-base/kmix\nkde-base/kdemultimedia kde-base/krec\nkde-base/kdemultimedia kde-base/kscd\nkde-base/kdemultimedia kde-base/libkcddb\nkde-base/kdemultimedia kde-base/mpeglib\nkde-base/kdemultimedia kde-base/noatun\nkde-base/kdenetwork kde-base/dcoprss\nkde-base/kdenetwork kde-base/kdenetwork-filesharing\nkde-base/kdenetwork kde-base/kdenetwork-kfile-plugins\nkde-base/kdenetwork kde-base/kdict\nkde-base/kdenetwork kde-base/kdnssd\nkde-base/kdenetwork kde-base/kget\nkde-base/kdenetwork kde-base/knewsticker\nkde-base/kdenetwork kde-base/kopete\nkde-base/kdenetwork kde-base/kpf\nkde-base/kdenetwork kde-base/kppp\nkde-base/kdenetwork kde-base/krdc\nkde-base/kdenetwork kde-base/krfb\nkde-base/kdenetwork kde-base/ksirc\nkde-base/kdenetwork kde-base/ktalkd\nkde-base/kdenetwork kde-base/kwifimanager\nkde-base/kdenetwork kde-base/librss\nkde-base/kdenetwork kde-base/lisa\nkde-base/kdepim kde-base/akregator\nkde-base/kdepim kde-base/certmanager\nkde-base/kdepim kde-base/kaddressbook\nkde-base/kdepim kde-base/kalarm\nkde-base/kdepim kde-base/kandy\nkde-base/kdepim kde-base/karm\nkde-base/kdepim kde-base/kdepim-kioslaves\nkde-base/kdepim kde-base/kdepim-kresources\nkde-base/kdepim kde-base/kdepim-wizards\nkde-base/kdepim kde-base/kitchensync\nkde-base/kdepim kde-base/kmail\nkde-base/kdepim kde-base/kmailcvt\nkde-base/kdepim kde-base/knode\nkde-base/kdepim kde-base/knotes\nkde-base/kdepim kde-base/kode\nkde-base/kdepim kde-base/konsolekalendar\nkde-base/kdepim kde-base/kontact\nkde-base/kdepim kde-base/kontact-specialdates\nkde-base/kdepim kde-base/korganizer\nkde-base/kdepim kde-base/korn\nkde-base/kdepim kde-base/kpilot\nkde-base/kdepim kde-base/ksync\nkde-base/kdepim kde-base/ktnef\nkde-base/kdepim kde-base/libkcal\nkde-base/kdepim kde-base/libkdenetwork\nkde-base/kdepim kde-base/libkdepim\nkde-base/kdepim kde-base/libkholidays\nkde-base/kdepim kde-base/libkmime\nkde-base/kdepim kde-base/libkpgp\nkde-base/kdepim kde-base/libkpimexchange\nkde-base/kdepim kde-base/libkpimidentities\nkde-base/kdepim kde-base/libksieve\nkde-base/kdepim kde-base/mimelib\nkde-base/kdepim kde-base/networkstatus\nkde-base/kdesdk kde-base/cervisia\nkde-base/kdesdk kde-base/kapptemplate\nkde-base/kdesdk kde-base/kbabel\nkde-base/kdesdk kde-base/kbugbuster\nkde-base/kdesdk kde-base/kcachegrind\nkde-base/kdesdk kde-base/kdesdk-kfile-plugins\nkde-base/kdesdk kde-base/kdesdk-kioslaves\nkde-base/kdesdk kde-base/kdesdk-misc\nkde-base/kdesdk kde-base/kdesdk-scripts\nkde-base/kdesdk kde-base/kmtrace\nkde-base/kdesdk kde-base/kompare\nkde-base/kdesdk kde-base/kspy\nkde-base/kdesdk kde-base/kuiviewer\nkde-base/kdesdk kde-base/umbrello\nkde-base/kdetoys kde-base/amor\nkde-base/kdetoys kde-base/eyesapplet\nkde-base/kdetoys kde-base/fifteenapplet\nkde-base/kdetoys kde-base/kmoon\nkde-base/kdetoys kde-base/kodo\nkde-base/kdetoys kde-base/kteatime\nkde-base/kdetoys kde-base/ktux\nkde-base/kdetoys kde-base/kweather\nkde-base/kdetoys kde-base/kworldclock\nkde-base/kdetoys kde-base/kworldwatch\nkde-base/kdeutils kde-base/ark\nkde-base/kdeutils kde-base/kcalc\nkde-base/kdeutils kde-base/kcharselect\nkde-base/kdeutils kde-base/kdelirc\nkde-base/kdeutils kde-base/kdf\nkde-base/kdeutils kde-base/kedit\nkde-base/kdeutils kde-base/kfloppy\nkde-base/kdeutils kde-base/kgpg\nkde-base/kdeutils kde-base/khexedit\nkde-base/kdeutils kde-base/kjots\nkde-base/kdeutils kde-base/klaptopdaemon\nkde-base/kdeutils kde-base/kmilo\nkde-base/kdeutils kde-base/kregexpeditor\nkde-base/kdeutils kde-base/ksim\nkde-base/kdeutils kde-base/ktimer\nkde-base/kdeutils kde-base/kwalletmanager\nkde-base/kdeutils kde-base/superkaramba\nkde-base/kdewebdev kde-base/kfilereplace\nkde-base/kdewebdev kde-base/kimagemapeditor\nkde-base/kdewebdev kde-base/klinkstatus\nkde-base/kdewebdev kde-base/kommander\nkde-base/kdewebdev kde-base/kxsldbg\nkde-base/kdewebdev kde-base/quanta\napp-office/koffice app-office/karbon\napp-office/koffice app-office/kchart\napp-office/koffice app-office/kexi\napp-office/koffice app-office/kformula\napp-office/koffice app-office/kivio\napp-office/koffice app-office/koffice-data\napp-office/koffice app-office/koffice-libs\napp-office/koffice app-office/koffice-meta\napp-office/koffice app-office/koshell\napp-office/koffice app-office/kplato\napp-office/koffice app-office/kpresenter\napp-office/koffice app-office/krita\napp-office/koffice app-office/kspread\napp-office/koffice app-office/kugar\napp-office/koffice app-office/kword\n' KDE_IS_PRELINKED=1 KDE_S=/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/work/klamav-0.41-source/klamav-0.41 KERNEL=linux KERNEL_ABI=default KEYWORDS='amd64 ppc ppc64 sparc x86' KV=2.6.23-gentoo-r4 LADSPA_PATH=/usr/lib/ladspa LANG=en_US.UTF-8 LCD_DEVICES='bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text' LC_ALL=en_US.UTF-8 LDFLAGS_default= LIBDIR_default=lib LIBOPTIONS=-m0644 LICENSE=GPL-2 LINGUAS='en en_US' MAKEOPTS=-j1 MULTILIB_ABIS=default MY_P=klamav-0.41-source NCBI=/etc/ncbi NPTL_KERNEL_VERSION=2.6.23 NPTL_KERN_VER=2.6.23 OPENGL_PROFILE=xorg-x11 PATCHES=/home/gentoo/portage/app-antivirus/klamav/files/klamav-0.41-cl_loaddbdir.patch PBS_SERVER_HOME=/var/spool/torque PDEPEND=' ' PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig PORTAGE_NICENESS=5 PORTAGE_TMPFS=/dev/shm PREFIX=/usr PRELINK_PATH_MASK='/usr/lib/klibc:/lib/modules:/usr/lib/locale:/usr/lib/wine:/usr/lib/valgrind:*.la:*.png:*.py:*.pl:*.pm:*.sh:*.xml:*.xslt:*.a:*.js:/opt/sun-jdk-1.4.2.10:/opt/sun-jdk-1.5.0.06' PROVIDE= PYTHONPATH=/usr/lib/portage/pym QMAKESPEC=linux-g++ QT=qt QT3MAJORVERSIONS='3.3 3.2 3.1 3.0' QT3VERSIONS='3.3.8-r4 3.3.8-r3 3.3.8-r2 3.3.8-r1 3.3.8 3.3.6-r5 3.3.6-r4 3.3.6-r3 3.3.6-r2 3.3.6-r1 3.3.6 3.3.5-r1 3.3.5 3.3.4-r9 3.3.4-r8 3.3.4-r7 3.3.4-r6 3.3.4-r5 3.3.4-r4 3.3.4-r3 3.3.4-r2 3.3.4-r1 3.3.4 3.3.3-r3 3.3.3-r2 3.3.3-r1 3.3.3 3.3.2 3.3.1-r2 3.3.1-r1 3.3.1 3.3.0-r1 3.3.0 3.2.3-r1 3.2.3 3.2.2-r1 3.2.2 3.2.1-r2 3.2.1-r1 3.2.1 3.2.0 3.1.2-r4 3.1.2-r3 3.1.2-r2 3.1.2-r1 3.1.2 3.1.1-r2 3.1.1-r1 3.1.1 3.1.0-r3 3.1.0-r2 3.1.0-r1 3.1.0' QTDIR=/usr/qt/3 QTPKG=x11-libs/qt- QTVER=3.3 RDEPEND='>=app-antivirus/clamav-0.90 >=kde-base/kdelibs-3.4 =x11-libs/qt-3.3* xinerama? ( x11-libs/libXinerama ) arts? ( kde-base/arts )' RESTRICT= RUBYOPT=-rauto_gem S=/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/work/klamav-0.41-source/klamav-0.41 SANDBOX_DENY=/etc/ld.so.preload SANDBOX_PREDICT=:/dev/console:/dev/random:/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/homedir/.:/proc/self/maps:/usr/lib/portage/pym:/usr/lib/python2.0/:/usr/lib/python2.1/:/usr/lib/python2.2/:/usr/lib/python2.3/:/usr/lib/python2.4/:/usr/lib/python2.5/:/usr/lib/python3.0/:/usr/qt/3/etc/settings:/var/cache/edb/dep:/var/db/aliases.db:/var/db/ethers.db:/var/db/group.db:/var/db/hosts.db:/var/db/netgroup.db:/var/db/netmasks.db:/var/db/networks.db:/var/db/passwd.db:/var/db/protocols.db:/var/db/rpc.db:/var/db/services.db: SANDBOX_READ=:/:/dev/shm:/dev/stdin:/home/gentoo/tmp:/home/gentoo/tmp/ccache: SANDBOX_WRITE=:/dev/console:/dev/fd:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/shm/ngpt:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/home/gentoo/tmp:/home/gentoo/tmp/ccache:/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/homedir/.bash_history:/home/gentoo/tmp/portage/app-antivirus/klamav-0.41/homedir/.gconfd/lock:/proc/self/fd:/tmp:/tmp/:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/lib/cf:/usr/lib/conftest:/usr/qt/3/etc/settings:/usr/tmp/cf:/usr/tmp/conftest:/var/log/scrollkeeper.log:/var/tmp:/var/tmp/: SANE_CONFIG_DIR=/etc/sane.d SBCL_HOME=/usr/lib/sbcl SBCL_SOURCE_ROOT=/usr/lib/sbcl/src SGML_CATALOG_FILES=/etc/sgml/sgml-docbook.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook-4.1.cat:/etc/sgml/sgml-docbook-4.0.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/xml-simple-docbook-4.1.2.4.cat:/etc/sgml/xml-simple-docbook-1.0.cat:/etc/sgml/sgml-docbook-4.2.cat:/etc/sgml/sgml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/xml-docbook-4.2.cat:/etc/sgml/xml-docbook-4.3.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/sgml-docbook-4.3.cat:/etc/sgml/sgml-ent.cat SLOT=0 SRC_URI=mirror://sourceforge/klamav/klamav-0.41-source.tar.gz SSH_ASKPASS=/usr/bin/gtk2-ssh-askpass STAGE1_USE='nptl nptlonly unicode' TEXINPUTS=/usr/lib/ocaml/ocamldoc: UIFILES=$'./src/logoptions.ui\n./src/specialfiletypes.ui\n./src/autoscanoptions.ui\n./src/archivelimits.ui\n./src/archivetypes.ui\n./src/arkollon/wizardbase.ui\n./src/arkollon/logdialog.ui\n./src/firstrunwizard.ui' USB_DEVFS_PATH=/dev/bus/usb USE='7zip R X Xaw3d a52 aac aalib accessibility acct acl acpi activefilter addbookmarks additions aim aio akode alias alisp alsa alsa_cards_hda-intel alsa_cards_intel8x0 alsa_cards_intel8x0m alsa_cards_pxa2xx-ac97 alsa_pcm_plugins_adpcm alsa_pcm_plugins_alaw alsa_pcm_plugins_asym alsa_pcm_plugins_copy alsa_pcm_plugins_dmix alsa_pcm_plugins_dshare alsa_pcm_plugins_dsnoop alsa_pcm_plugins_empty alsa_pcm_plugins_extplug alsa_pcm_plugins_file alsa_pcm_plugins_hooks alsa_pcm_plugins_iec958 alsa_pcm_plugins_ioplug alsa_pcm_plugins_ladspa alsa_pcm_plugins_lfloat alsa_pcm_plugins_linear alsa_pcm_plugins_meter alsa_pcm_plugins_mulaw alsa_pcm_plugins_multi alsa_pcm_plugins_null alsa_pcm_plugins_plug alsa_pcm_plugins_rate alsa_pcm_plugins_route alsa_pcm_plugins_share alsa_pcm_plugins_shm alsa_pcm_plugins_softvol amarok amazon amd amr amrnb amrwb animgif ansi ao aoss aotuv apache2 apache2_modules_actions apache2_modules_alias apache2_modules_auth_basic apache2_modules_auth_digest apache2_modules_authn_anon apache2_modules_authn_dbd apache2_modules_authn_dbm apache2_modules_authn_default apache2_modules_authn_file apache2_modules_authz_dbm apache2_modules_authz_default apache2_modules_authz_groupfile apache2_modules_authz_host apache2_modules_authz_owner apache2_modules_authz_user apache2_modules_autoindex apache2_modules_cache apache2_modules_dav apache2_modules_dav_fs apache2_modules_dav_lock apache2_modules_dbd apache2_modules_deflate apache2_modules_dir apache2_modules_disk_cache apache2_modules_env apache2_modules_expires apache2_modules_ext_filter apache2_modules_file_cache apache2_modules_filter apache2_modules_headers apache2_modules_ident apache2_modules_imagemap apache2_modules_include apache2_modules_info apache2_modules_log_config apache2_modules_logio apache2_modules_mem_cache apache2_modules_mime apache2_modules_mime_magic apache2_modules_negotiation apache2_modules_proxy apache2_modules_proxy_ajp apache2_modules_proxy_balancer apache2_modules_proxy_connect apache2_modules_proxy_http apache2_modules_rewrite apache2_modules_setenvif apache2_modules_so apache2_modules_speling apache2_modules_status apache2_modules_unique_id apache2_modules_userdir apache2_modules_usertrack apache2_modules_vhost_alias apm arts artswrappersuid artworkextra asm asterisk async atm auctex audiofile auth authdaemond authfile automount autoreplace background bash-completion bcmath bcp bdf berkdb bigpatch binary-drivers binfilter bittorrent bjam bl blas blender-game bonobo boost branding bzip2 c++ cairo calendar cameras_all cap caps catalogs cblas ccache cdda cddb cdf cdinstall cdio cdparanoia cdr cdrom cgi checkpath chm chroot cli colordiff config_wizard connectionstatus contactnotes context contrib corba cppunit cracklib crypt cscope css ctype cups curl curlwrappers cvs cvsgraph cxx d daap dbm dbus dbx dell deprecated device-mapper dga dhcp dia directfb discard-path discouraged disk-partition divx djvu dmi dnd dnotify dri dts dv dvd dvdr dvdread dvi ecc editor elibc_glibc emboss emerald emf emoticon emovix enca encode enscript epson erandom esd evo examples excel exif expat extensions extra extrafilters extraicons extramodules f90 fam fame fastbuild fastcgi fat fax fbcon fbcondecor fbdev fbsplash festival ffmpeg fftw file filter finger firefox fits flac flash flatfile fltk fmod font-server fontconfig foomaticdb force-cgi-redirect fortran fortran95 fpx freetts ftp fuse gadu galago games gb gcc-libffi gcj gd gdal gdbm geoip geos ggi gif gimp gimpprint ginac gkrellm glade glep glgd glib glitz glut glw gmail gmath gmedia gml gmp gmtfull gmthigh gmtsuppl gmttria gnome gnome-print gnuplot gnutls gocr gopher gpg gpg2-experimental gpgme gphoto2 gpm gps grammar graphics graphviz groupwise gs gsl gssapi gstreamer gtk gtkhtml guile gzip hal hbci hddtemp hdf hdf5 hdri hfs high-ints highlight history hlapi hou hpn html httpd humanities ical iconv icq icu id3 id3tag ide idea idn image imagemagick imap imlib inifile inkjar input_devices_evdev input_devices_jamstudio input_devices_keyboard input_devices_mouse insecure-savers ipod irc isdnlog itcl jack jai java javacomm javascript jbig jce jikes jimi jingle jit john jpeg jpeg2k junit jython kcal kde kdecards kdeenablefinal kdehiddenvisibility kdepim kdexdeltas kernel_linux kexi kipi kpathsea kqemu ladspa lame lapack largefile largeterminal lash latex lcd_devices_bayrad lcd_devices_cfontz lcd_devices_cfontz633 lcd_devices_glk lcd_devices_hd44780 lcd_devices_lb216 lcd_devices_lcdm001 lcd_devices_mtxorb lcd_devices_ncurses lcd_devices_text lcms ldap libcaca libdsk libgcrypt libgda libnotify libsamplerate libwww linguas_en linguas_en_US live lm_sensors logitech-mouse logrotate logwatch lvm2 lzo lzw mad mail maildir mailwrapper maps math matroska mbrola mcal md5sum mgetty mhash midi mikmod mime ming mixer mjpeg mmap mmx mmxext mng mod_python modplug module mono mopac7 motif mozdevelop mozdom moznocompose moznoirc moznomail mozsha1 mp2 mp3 mp4 mp4live mpeg mpeg2 mplayer mpm-threadpool mpqc mtp mudflap multiprocess musepack music musicbrainz mysql na_dd na_dtv na_icons nas ncurses neon net netcdf nethack netmeeting netpbm network network-cron new-clx new-login nfs nls nntp nocd nodrm nosource nowin nowlistening npp nptl nptlonly nsplugin nss ntfs ntlm ntp numeric oav ocaml ocr ocrad octave odk offensive ofx ogdi ogg omega openal openbabel openexr opengl openmp openssl opensslcrypt openstreetmap osc oss pager pam pam_chroot pam_timestamp pango paranoidmsg parport parse-clocks pascal patch patented pbs pch pcntl pcre pdf perl php physfs pic pkcs11 player plib plotutils plugin pmount png pnm pop portaudio posix postfix postproc postscript povray ppds pppd print proj ps pstricks publishers pyste python q32 q8 qhull qt3 qt3support qt4 quicktime quotas quotes radio rar rc5 rdesktop readline real realmedia reflection regex remix rhino rle rogue romio rpc rpm rrdcgi rrdtool rtc rtsp samba sametime sandbox sasl sbcl scanner science screen script scripting sdk sdl sdl-image sdl-sound search sender serial session sftp shared sharedext sharedmem shorten shout silvercity skins slp slurm smime smp sms smtp sndfile soap sockets socks5 sou sound soundex sounds sox spamassassin speech speedo speex spell spl sql sqlite sqlite3 srt sse sse2 ssl startup-notification statistics stlport stream subject-rewrite subtitles subversion suexec suid svg svgz svn-mirror swat symlink sysfs syslog sysvipc szip t1lib taglib tagwriting tcl tcpd tesseract test tetex text texteffect textures tga themes theora thesaurus threads threadsafe tidy tiff timidity tk tntc tokenizer tomsfastmath toolbar tools transcode translator truetype tv_check tv_combiner tv_pick_cgi twolame type1 ucs2 ucs4 umfpack unicode unzip upnp urandom usb userland_GNU userlocales userpriv utempter utils uudeview v4l v4l2 vcd vcdx vdr video_cards_i810 video_cards_i830 videos vidix vim vim-pager vim-with-x visualization vlm vnc vncviewer voice vorbis vorbis-psy wavpack webdav webpresence win32codecs winpopup withsamplescripts wma wmf wmp wordperfect wxwindows x264 x86 xanim xattr xcb xcomposite xerces-c xetex xface xforms xft xine xinetd xml xmlreader xmlrpc xmlwriter xorg xosd xplanet xpm xprint xrandr xscreensaver xsl xslt xtended xterm xv xvid xvmc xvnc yaepg yahoo yv12 zip zlib zoran zvbi' USERLAND=GNU VIDEO_CARDS='i810 i830' VMHANDLE=sun-jdk-1.4 WANT_AUTOCONF=2.5 WANT_AUTOMAKE=1.9 XDG_DATA_DIRS=/usr/share:/usr/kde/3.5/share:/usr/local/share _=_RC_GET_KV_CACHE _E_DOCDESTTREE_= _E_EXEDESTTREE_= ___ECLASS_RECUR_MULTILIB=yes ___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes conf=klamav-0.41-r0 selected_version=3.3 str='base_src_unpack: entering function' x=/home/gentoo/portage/app-antivirus/klamav/files/klamav-0.41-cl_loaddbdir.patch x_DEPEND='>=app-antivirus/clamav-0.90 >=kde-base/kdelibs-3.4' ELT_find_ltmain_sh () { local x=; local dirlist=; for x in $(find "${S}" -name 'ltmain.sh'); do dirlist="${dirlist} ${x%/*}"; done; echo "${dirlist}" } ELT_libtool_version () { local ltmain_sh=$1; local version=; version=$(eval $(grep -e '^[[:space:]]*VERSION=' "${ltmain_sh}"); echo "${VERSION}"); [[ -z ${version} ]] && version="0"; echo "${version}" } ELT_try_and_apply_patch () { local ret=0; local file=$1; local patch=$2; if patch -p0 --dry-run "${file}" "${patch}" >&"${T}/elibtool.log"; then einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."; patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" >&"${T}/elibtool.log"; ret=$?; export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"; else ret=1; fi; return "${ret}" } ELT_walk_patches () { local x=; local y=; local ret=1; local file=$1; local patch_set=$2; local patch_dir=; local rem_int_dep=$3; if [[ -n ${patch_set} ]]; then if [[ -d ${ELT_PATCH_DIR}/${patch_set} ]]; then patch_dir="${ELT_PATCH_DIR}/${patch_set}"; else return "${ret}"; fi; for x in $(ls -d "${patch_dir}"/* 2> /dev/null | grep -v 'CVS' | sort -r); do if [[ -n ${x} && -f ${x} ]]; then if [[ -n ${rem_int_dep} ]]; then sed -e "s|@REM_INT_DEP@|${rem_int_dep}|g" ${x} > "${T}/$$.rem_int_deps.patch"; x="${T}/$$.rem_int_deps.patch"; fi; if ELT_try_and_apply_patch "${file}" "${x}"; then ret=0; break; fi; fi; done; fi; return "${ret}" } VER_major () { [[ -z $1 ]] && return 1; local VER=$@; echo "${VER%%[^[:digit:]]*}" } VER_micro () { [[ -z $1 ]] && return 1; local VER=$@; VER=${VER#*.*.}; echo "${VER%%[^[:digit:]]*}" } VER_minor () { [[ -z $1 ]] && return 1; local VER=$@; VER=${VER#*.}; echo "${VER%%[^[:digit:]]*}" } VER_to_int () { [[ -z $1 ]] && return 1; local VER_MAJOR=$(VER_major "$1"); local VER_MINOR=$(VER_minor "$1"); local VER_MICRO=$(VER_micro "$1"); local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO )); if [[ ${VER_int} -ge 65536 ]]; then echo "${VER_int}"; return 0; fi; echo 1; return 1 } __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; 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; einfo "If you are having trouble with the detection"; einfo "of your CD, it is possible that you do not have"; einfo "Joliet support enabled in your kernel. Please"; einfo "check that CONFIG_JOLIET is enabled in your kernel."; read || diefunc "$FUNCNAME" "$LINENO" "$?" "something is screwed with your system"; done } _elibtoolize () { local opts; local lttest; lttest="$(autotools_check_macro "AC_PROG_LIBTOOL")$(autotools_check_macro "AM_PROG_LIBTOOL")"; [[ -n $lttest ]] || return 0; [[ -f Makefile.am ]] && opts="--automake"; [[ "${USERLAND}" == "Darwin" ]] && LIBTOOLIZE="glibtoolize"; autotools_run_tool ${LIBTOOLIZE:-libtoolize} "$@" ${opts}; eaclocal } _epatch_assert () { local _pipestatus=${PIPESTATUS[*]}; [[ ${_pipestatus// /} -eq 0 ]] } _epatch_draw_line () { [[ -z $1 ]] && set "$(printf "%65s" '')"; echo "${1//?/=}" } _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 -fno-stack-protector ;; -fstack-protector-all) gcc-specs-ssp-to-all || continue; is-flagq -fno-stack-protector-all || append-flags -fno-stack-protector-all ;; 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 "$($(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 ]] } _is_flagq () { local x; for x in ${!1}; do [[ ${x} == $2 ]] && return 0; done; return 1 } append-cppflags () { [[ -z $* ]] && return 0; export CPPFLAGS="${CPPFLAGS} $*"; return 0 } append-flags () { [[ -z $* ]] && return 0; export CFLAGS="${CFLAGS} $*"; export CXXFLAGS="${CXXFLAGS} $*"; return 0 } append-ldflags () { [[ -z $* ]] && return 0; export LDFLAGS="${LDFLAGS} $*"; return 0 } append-lfs-flags () { [[ -n $@ ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "append-lfs-flags takes no arguments"; append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE } autotools_check_macro () { [[ -f configure.ac || -f configure.in ]] && WANT_AUTOCONF="2.5" autoconf --trace=$1 2> /dev/null; return 0 } autotools_get_auxdir () { local auxdir_scan_out; auxdir_scan_out=$(autotools_check_macro "AC_CONFIG_AUX_DIR"); [[ -n ${auxdir_scan_out} ]] || return 0; echo ${auxdir_scan_out} | gawk '($0 !~ /^[[:space:]]*(#|dnl)/) { if (match($0, /AC_CONFIG_AUX_DIR:(.*)$/, res)) print res[1] }' | uniq; return 0 } autotools_get_subdirs () { local subdirs_scan_out; subdirs_scan_out=$(autotools_check_macro "AC_CONFIG_SUBDIRS"); [[ -n ${subdirs_scan_out} ]] || return 0; echo "${subdirs_scan_out}" | gawk '($0 !~ /^[[:space:]]*(#|dnl)/) { if (match($0, /AC_CONFIG_SUBDIRS:(.*)$/, res)) print res[1] }' | uniq; return 0 } autotools_run_tool () { local STDERR_TARGET="${T}/$$.out"; local ris; echo "***** $1 *****" > ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}; echo >> ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}; ebegin "Running $@"; $@ >> ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/} 2>&1; ris=$?; eend ${ris}; if [[ ${ris} != 0 && ${NO_FAIL} != 1 ]]; then echo; eerror "Failed Running $1 !"; eerror; eerror "Include in your bugreport the contents of:"; eerror; eerror " ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "Failed Running $1 !"; fi } base_src_compile () { debug-print-function $FUNCNAME $*; [ -z "$1" ] && base_src_compile all; cd ${S}; while [ "$1" ]; do case $1 in configure) debug-print-section configure; econf || diefunc "$FUNCNAME" "$LINENO" "$?" "died running econf, $FUNCNAME:configure" ;; make) debug-print-section make; emake || diefunc "$FUNCNAME" "$LINENO" "$?" "died running emake, $FUNCNAME:make" ;; all) debug-print-section all; base_src_compile configure make ;; esac; shift; done } base_src_install () { debug-print-function $FUNCNAME $*; [ -z "$1" ] && base_src_install all; cd ${S}; while [ "$1" ]; do case $1 in make) debug-print-section make; make DESTDIR=${D} install || diefunc "$FUNCNAME" "$LINENO" "$?" "died running make install, $FUNCNAME:make" ;; all) debug-print-section all; base_src_install make ;; esac; shift; done } base_src_unpack () { debug-print-function $FUNCNAME $*; [ -z "$1" ] && base_src_unpack all; cd ${WORKDIR}; while [ "$1" ]; do case $1 in unpack) debug-print-section unpack; unpack ${A} ;; patch) debug-print-section patch; cd ${S}; epatch ${FILESDIR}/${P}-gentoo.diff ;; autopatch) debug-print-section autopatch; debug-print "$FUNCNAME: autopatch: PATCHES=$PATCHES, PATCHES1=$PATCHES1"; cd ${S}; for x in $PATCHES $PATCHES1; do debug-print "$FUNCNAME: autopatch: patching from ${x}"; epatch ${x}; done ;; all) debug-print-section all; base_src_unpack unpack autopatch ;; esac; shift; done } bindnow-flags () { case $($(tc-getLD) -v 2>&1 &1 &/dev/null; eend $?; fi } 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) ;; *) diefunc "$FUNCNAME" "$LINENO" "$?" "unknown action '${missing_action}'" ;; esac; fi; local opt=$1; [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; local PKG=$(best_version $1); [[ -z ${PKG} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "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) diefunc "$FUNCNAME" "$LINENO" "$?" "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) diefunc "$FUNCNAME" "$LINENO" "$?" "$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."; diefunc "$FUNCNAME" "$LINENO" "$?" "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; [ ! -f "${lic}" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "Could not find requested license ${lic}"; local l="`basename ${lic}`"; local shopts=$-; local alic; set -o noglob; for alic in ${ACCEPT_LICENSE}; do if [[ ${alic} == ${l} ]]; then set +o noglob; set -${shopts}; return 0; fi; done; set +o noglob; set -$shopts; local licmsg=$(emktemp); cat > ${licmsg} <<-EOF ********************************************************** The following license outlines the terms of use of this package. You MUST accept this license for installation to continue. When you are done viewing, hit 'q'. If you CTRL+C out of this, the install will not run! ********************************************************** EOF cat ${lic} >> ${licmsg}; ${PAGER:-less} ${licmsg} || diefunc "$FUNCNAME" "$LINENO" "$?" "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!"; diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to accept license" ;; esac } create_ml_includes () { local dest=$1; shift; local basedirs=$(create_ml_includes-listdirs "$@"); create_ml_includes-makedestdirs ${dest} ${basedirs}; local file; for file in $(create_ml_includes-allfiles ${basedirs}); do ( echo "/* Autogenerated by create_ml_includes() in multilib.eclass */"; local dir; for dir in ${basedirs}; do if [[ -f ${D}/${dir}/${file} ]]; then echo ""; local sym=$(create_ml_includes-sym_for_dir ${dir} "$@"); if [[ ${sym/=} != "${sym}" ]]; then echo "#if ${sym}"; else if [[ ${sym::1} == "!" ]]; then echo "#ifndef ${sym:1}"; else echo "#ifdef ${sym}"; fi; fi; echo "# include <$(create_ml_includes-absolute ${dir}/${file})>"; echo "#endif /* ${sym} */"; fi; done ) > "${D}/${dest}/${file}"; done } create_ml_includes-absolute () { local dst="$(create_ml_includes-tidy_path $1)"; dst=(${dst//\// }); local i; for ((i=0; i<${#dst[*]}; i++)) do [ "${dst[i]}" == "include" ] && break; done; local strip_upto=$i; for ((i=strip_upto+1; i<${#dst[*]}-1; i++)) do echo -n ${dst[i]}/; done; echo -n ${dst[i]} } create_ml_includes-allfiles () { local basedir file; for basedir in "$@"; do for file in $(find "${D}"/${basedir} -type f); do echo ${file/${D}\/${basedir}\//}; done; done | sort | uniq } create_ml_includes-listdirs () { local dirs; local data; for data in "$@"; do dirs="${dirs} ${data/*:/}"; done; echo ${dirs:1} } create_ml_includes-makedestdirs () { local dest=$1; shift; local basedirs=$@; dodir ${dest}; local basedir; for basedir in ${basedirs}; do local dir; for dir in $(find ${D}/${basedir} -type d); do dodir ${dest}/${dir/${D}\/${basedir}/}; done; done } create_ml_includes-sym_for_dir () { local dir=$1; shift; local data; for data in "$@"; do if [[ ${data} == *:${dir} ]]; then echo ${data/:*/}; return 0; fi; done; echo "Shouldn't be here -- create_ml_includes-sym_for_dir $1 $@"; exit 1 } create_ml_includes-tidy_path () { local removed=$1; if [ -n "${removed}" ]; then while [ "${removed}" != "${removed/\/\//\/}" ]; do removed=${removed/\/\//\/}; done; while [ "${removed}" != "${removed//\/.\//\/}" ]; do removed=${removed//\/.\//\/}; done; [ "${removed##*/}" = "." ] && removed=${removed%/*}; while [ "${removed}" != "${removed//\/..\/}" ]; do local p1="${removed%%\/..\/*}"; local p2="${removed#*\/..\/}"; removed="${p1%\/*}/${p2}"; done; [ "${removed##*/}" = ".." ] && removed=${removed%/*/*}; [ "${removed##*/}" = "" ] && removed=${removed%/*}; echo ${removed}; fi } darwintoolize () { ewarn "darwintoolize() is deprecated, please just use elibtoolize()!"; elibtoolize } 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 } deprange () { local list="$(deprange-list $@)"; if [[ ${list%% *} == "${list}" ]]; then echo "${list}"; else echo "|| ( ${list} )"; fi } deprange-dual () { local MIN=$1 MAX=$2 NEWDEP=""; shift; shift; for PACKAGE in $@; do PARENT=$(get-parent-package $PACKAGE); NEWDEP="$NEWDEP || ( $(deprange-list $MIN $MAX $PACKAGE)"; if [ "$PARENT" != "$(get-parent-package $CATEGORY/$PN)" ]; then NEWDEP="$NEWDEP $(deprange-list $MIN $MAX $PARENT)"; fi; NEWDEP="$NEWDEP )"; done; echo -n $NEWDEP } deprange-iterate-numbers () { local package=$1 lower=$2 upper=$3 i newdep=""; for ((i=$upper ; $i >= $lower ; i-- )) do newdep="$newdep ${package}${i}"; done; echo -n $newdep } deprange-iterate-suffixes () { local NAME=$1 MINSUFFIX=$2 MAXSUFFIX=$3; if [ "$MINSUFFIX" != "${MINSUFFIX/-}" ]; then local MINREV=${MINSUFFIX##*-}; fi; MINSUFFIX=${MINSUFFIX%-*}; local MINalpha MINbeta MINpre MINrc; if [ "$MINSUFFIX" != "${MINSUFFIX/alpha}" ]; then MINalpha="${MINSUFFIX##alpha}"; else if [ "$MINSUFFIX" != "${MINSUFFIX/beta}" ]; then MINbeta="${MINSUFFIX##beta}"; else if [ "$MINSUFFIX" != "${MINSUFFIX/pre}" ]; then MINpre="${MINSUFFIX##pre}"; else if [ "$MINSUFFIX" != "${MINSUFFIX/rc}" ]; then MINrc="${MINSUFFIX##rc}"; else diefunc "$FUNCNAME" "$LINENO" "$?" "deprange(): version suffix $MINSUFFIX (probably _pN) not supported"; fi; fi; fi; fi; local MAXalpha MAXbeta MAXpre MAXrc; if [ "$MAXSUFFIX" != "${MAXSUFFIX/alpha}" ]; then MAXalpha="${MAXSUFFIX##alpha}"; else if [ "$MAXSUFFIX" != "${MAXSUFFIX/beta}" ]; then MAXbeta="${MAXSUFFIX##beta}"; else if [ "$MAXSUFFIX" != "${MAXSUFFIX/pre}" ]; then MAXpre="${MAXSUFFIX##pre}"; else if [ "$MAXSUFFIX" != "${MAXSUFFIX/rc}" ]; then MAXrc="${MAXSUFFIX##rc}"; else diefunc "$FUNCNAME" "$LINENO" "$?" "deprange(): version suffix $MAXSUFFIX (probably _pN) not supported"; fi; fi; fi; fi; local started="" NEWDEP="" var; for suffix in rc pre beta alpha; do local upper="" lower=""; if [ -n "$started" ]; then upper=10; else var=MAX$suffix; if [ -n "${!var}" ]; then upper=${!var}; started=yes; fi; fi; if [ -n "$upper" ]; then var=MIN$suffix; if [ -n "${!var}" ]; then lower=${!var}; if [ -n "$MINREV" ]; then let lower++; fi; else lower=1; fi; NEWDEP="$NEWDEP $(deprange-iterate-numbers ${NAME}_${suffix} $lower $upper)"; if [ -n "${!var}" ]; then break; fi; fi; done; echo -n $NEWDEP } deprange-list () { local MINVER=$1; shift; local MAXVER=$1; shift; if [ "$MINVER" == "3.5_beta1" ]; then MINVER="3.5.0_beta1"; FINALOPTIONVER="3.5_beta1"; fi; if [ "$MAXVER" == "3.5_beta1" ]; then MAXVER="3.5.0_beta1"; fi; local BASEVER=${MINVER%.*}; if [ "${MAXVER%.*}" != "$BASEVER" ]; then diefunc "$FUNCNAME" "$LINENO" "$?" "deprange(): unsupported parameters $MINVER $MAXVER - BASEVER must be identical"; fi; local MINSUFFIX MAXSUFFIX; if [ "$MINVER" != "${MINVER/_}" ]; then MINSUFFIX=${MINVER##*_}; SUFFIXLESSMINVER=${MINVER%_*}; else SUFFIXLESSMINVER=$MINVER; fi; if [ "$MAXVER" != "${MAXVER/_}" ]; then MAXSUFFIX=${MAXVER##*_}; SUFFIXLESSMAXVER=${MAXVER%_*}; else SUFFIXLESSMAXVER=$MAXVER; fi; if [ "$MINVER" != "${MINVER/-}" ]; then local MINREV=${MINVER##*-}; fi; local MINMINOR=${SUFFIXLESSMINVER##*.}; local MAXMINOR=${SUFFIXLESSMAXVER##*.}; while [ -n "$1" ]; do local PACKAGE=$1; shift; local NEWDEP=""; if [ "$MINVER" == "$MAXVER" ]; then NEWDEP="~$PACKAGE-$MINVER"; else if [ "$MINMINOR" == "$MAXMINOR" ]; then NEWDEP="$(deprange-iterate-suffixes "~$PACKAGE-$BASEVER.$MINMINOR" $MINSUFFIX $MAXSUFFIX)"; if [ -n "$MINREV" ]; then NEWDEP="$NEWDEP $(deprange-iterate-numbers "=$PACKAGE-$BASEVER.${MINMINOR}_$MINSUFFIX-r" $MINREV 50)"; fi; else if [ -n "$MAXSUFFIX" ]; then NEWDEP="$(deprange-iterate-suffixes "~$PACKAGE-$BASEVER.$MAXMINOR" alpha1 $MAXSUFFIX)"; fi; STARTMINOR="${MINMINOR}"; if [ -n "$MINREV" -a -z "$MINSUFFIX" ]; then let STARTMINOR++; fi; NEWDEP="$NEWDEP $(deprange-iterate-numbers "~${PACKAGE}-${BASEVER}." $STARTMINOR $MAXMINOR)"; if [ -n "$MINSUFFIX" ]; then NEWDEP="$NEWDEP $(deprange-iterate-suffixes "~$PACKAGE-$BASEVER.$MINMINOR" $MINSUFFIX rc10)"; fi; if [ -n "$MINREV" ]; then local BASE; if [ -n "$MINSUFFIX" ]; then BASE="=$PACKAGE-$BASEVER.${MINMINOR}_${MINSUFFIX%-r*}-r"; else BASE="=$PACKAGE-$BASEVER.${MINMINOR%-r*}-r"; fi; NEWDEP="$NEWDEP $(deprange-iterate-numbers $BASE ${MINREV#r} 50)"; fi; fi; fi; if [ -n "$FINALOPTIONVER" ]; then NEWDEP="$NEWDEP ~$PACKAGE-$FINALOPTIONVER"; fi; echo -n $NEWDEP; done } dlopen_lib () { if [[ ${ELIBC} != *BSD ]]; then echo "-ldl"; fi } doicon () { ( local i j ret; insinto /usr/share/pixmaps; for i in "$@"; do if [[ -f ${i} ]]; then doins "${i}"; ((ret+=$?)); else if [[ -d ${i} ]]; then for j in "${i}"/*.png; do doins "${j}"; ((ret+=$?)); done; else ((++ret)); fi; fi; done; exit ${ret} ) } domenu () { ( local i j ret=0; insinto /usr/share/applications; for i in "$@"; do if [[ -f ${i} ]]; then doins "${i}"; ((ret+=$?)); else if [[ -d ${i} ]]; then for j in "${i}"/*.desktop; do doins "${j}"; ((ret+=$?)); done; else ((++ret)); fi; fi; done; exit ${ret} ) } eaclocal () { local aclocal_opts; if [[ -n ${AT_M4DIR} ]]; then for x in ${AT_M4DIR}; do case "${x}" in "-I") ;; *) [[ ! -d ${x} ]] && ewarn "eaclocal: '${x}' does not exist"; aclocal_opts="${aclocal_opts} -I ${x}" ;; esac; done; fi; [[ ! -f aclocal.m4 || -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && autotools_run_tool aclocal "$@" ${aclocal_opts} } eautoconf () { if [[ ! -f configure.ac && ! -f configure.in ]]; then echo; eerror "No configure.{ac,in} present in '$(pwd | sed -e 's:.*/::')'!"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "No configure.{ac,in} present!"; fi; autotools_run_tool autoconf "$@" } eautoheader () { [[ -n $(autotools_check_macro "AC_CONFIG_HEADERS") ]] || return 0; NO_FAIL=1 autotools_run_tool autoheader "$@" } eautomake () { local extra_opts; [[ -f Makefile.am ]] || return 0; if [[ -z ${FROM_EAUTORECONF} && -f Makefile.in ]]; then local used_automake; local installed_automake; installed_automake=$(automake --version | head -n 1 | sed -e 's:.*(GNU automake) ::'); used_automake=$(head -n 1 < Makefile.in | sed -e 's:.*by automake \(.*\) from .*:\1:'); if [[ ${installed_automake} != ${used_automake} ]]; then einfo "Automake used for the package (${used_automake}) differs from"; einfo "the installed version (${installed_automake})."; eautoreconf; return 0; fi; fi; [[ -f INSTALL && -f AUTHORS && -f ChangeLog && -f NEWS ]] || extra_opts="${extra_opts} --foreign"; autotools_run_tool automake --add-missing --copy ${extra_opts} "$@" } eautoreconf () { local pwd=$(pwd) x auxdir; if [[ -z ${AT_NO_RECURSIVE} ]]; then for x in $(autotools_get_subdirs); do if [[ -d ${x} ]]; then cd "${x}"; AT_NOELIBTOOLIZE="yes" eautoreconf; cd "${pwd}"; fi; done; fi; auxdir=$(autotools_get_auxdir); einfo "Running eautoreconf in '$(pwd)' ..."; [[ -n ${auxdir} ]] && mkdir -p ${auxdir}; eaclocal; _elibtoolize --copy --force; eautoconf; eautoheader; FROM_EAUTORECONF="yes" eautomake ${AM_OPTS}; [[ ${AT_NOELIBTOOLIZE} == "yes" ]] && return 0; elibtoolize; return 0 } ebeep () { local n; if [[ -z ${EBEEP_IGNORE} ]]; then for ((n=1 ; n <= ${1:-5} ; n++)) do echo -ne "\a"; sleep 0.1 >&/dev/null; sleep 0,1 >&/dev/null; echo -ne "\a"; sleep 1; done; fi } edos2unix () { echo "$@" | xargs sed -i 's/\r$//' } egetent () { case ${CHOST} in *-darwin*) case "$2" in *[!0-9]*) nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }" ;; *) nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }" ;; esac ;; *-freebsd* | *-dragonfly*) local opts action="user"; [[ $1 == "passwd" ]] || action="group"; if [[ $2 == [[:digit:]]* ]]; then [[ ${action} == "user" ]] && opts="-u" || opts="-g"; fi; pw show ${action} ${opts} "$2" -q ;; *-netbsd* | *-openbsd*) grep "$2:\*:" /etc/$1 ;; *) type -p nscd >&/dev/null && nscd -i "$1"; getent "$1" "$2" ;; esac } egethome () { ent=$(egetent passwd $1); case ${CHOST} in *-darwin* | *-freebsd* | *-dragonfly*) echo ${ent} | cut -d: -f9 ;; *) echo ${ent} | cut -d: -f6 ;; esac } egetshell () { ent=$(egetent passwd "$1"); case ${CHOST} in *-darwin* | *-freebsd* | *-dragonfly*) echo ${ent} | cut -d: -f10 ;; *) echo ${ent} cut -d: -f7 ;; esac } elibtoolize () { local x=; local y=; local do_portage="no"; local do_reversedeps="no"; local do_only_patches="no"; local do_uclibc="yes"; local deptoremove=; local my_dirlist=; local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp"; local start_dir=${PWD}; my_dirlist=$(ELT_find_ltmain_sh); for x in "$@"; do case "${x}" in "--portage") do_portage="yes" ;; "--reverse-deps") do_reversedeps="yes"; elt_patches="${elt_patches} fix-relink" ;; "--patch-only") do_only_patches="yes" ;; "^--remove-internal-dep="*) deptoremove=$(echo "${x}" | sed -e 's|--remove-internal-dep=||'); [[ -n ${deptoremove} ]] && elt_patches="${elt_patches} rem-int-dep" ;; "--shallow") if [[ -f ${S}/ltmain.sh ]]; then my_dirlist=${S}; else my_dirlist=; fi ;; "--no-uclibc") do_uclibc="no" ;; *) eerror "Invalid elibtoolize option: ${x}"; diefunc "$FUNCNAME" "$LINENO" "$?" "elibtoolize called with ${x} ??" ;; esac; done; [[ ${do_uclibc} == "yes" ]] && elt_patches="${elt_patches} uclibc-conf uclibc-ltconf"; [[ ${CHOST} == *"-freebsd"* ]] && elt_patches="${elt_patches} fbsd-conf fbsd-ltconf"; [[ ${CHOST} == *"-darwin"* ]] && elt_patches="${elt_patches} darwin-ltconf darwin-ltmain"; for x in ${my_dirlist}; do local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||"); export ELT_APPLIED_PATCHES=; export ELT_LTMAIN_SH="${x}/ltmain.sh"; [[ -f ${x}/.elibtoolized ]] && continue; cd ${x}; einfo "Running elibtoolize in: $(echo "/${tmp}" | sed -e 's|//|/|g; s|^/||')"; for y in ${elt_patches}; do local ret=0; case "${y}" in "portage") if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then ELT_walk_patches "${x}/ltmain.sh" "${y}"; ret=$?; fi ;; "rem-int-dep") ELT_walk_patches "${x}/ltmain.sh" "${y}" "${deptoremove}"; ret=$? ;; "fix-relink") if [[ -n $(grep 'inst_prefix_dir' "${x}/ltmain.sh") ]]; then ELT_walk_patches "${x}/ltmain.sh" "${y}"; ret=$?; fi ;; "max_cmd_len") if [[ -n $(grep 'max_cmd_len' "${x}/ltmain.sh") ]]; then ELT_walk_patches "${x}/ltmain.sh" "${y}"; ret=$?; fi ;; "uclibc-conf") if [[ -e ${x}/configure && -n $(grep 'Transform linux' "${x}/configure") ]]; then ELT_walk_patches "${x}/configure" "${y}"; ret=$?; else if [[ ! -e ${x}/configure && -e ${x}/../configure && -n $(grep 'Transform linux' "${x}/../configure") ]]; then ELT_walk_patches "${x}/../configure" "${y}"; ret=$?; fi; fi ;; "uclibc-ltconf") if [[ -s ${x}/ltconfig ]]; then ELT_walk_patches "${x}/ltconfig" "${y}"; ret=$?; fi ;; "fbsd-conf") if [[ -e ${x}/configure && -n $(grep 'version_type=freebsd-' "${x}/configure") ]]; then ELT_walk_patches "${x}/configure" "${y}"; ret=$?; else if [[ ! -e ${x}/configure && -e ${x}/../configure && -n $(grep 'version_type=freebsd-' "${x}/../configure") ]]; then ELT_walk_patches "${x}/../configure" "${y}"; ret=$?; fi; fi ;; "fbsd-ltconf") if [[ -s ${x}/ltconfig ]]; then ELT_walk_patches "${x}/ltconfig" "${y}"; ret=$?; fi ;; "darwin-ltconf") if [[ -s ${x}/ltconfig ]]; then ELT_walk_patches "${x}/ltconfig" "${y}"; ret=$?; fi ;; "install-sh") ELT_walk_patches "${x}/install-sh" "${y}"; ret=$? ;; *) ELT_walk_patches "${x}/ltmain.sh" "${y}"; ret=$? ;; esac; if [[ ${ret} -ne 0 ]]; then case ${y} in "relink") local version=$(ELT_libtool_version "${x}/ltmain.sh"); if [[ -z $(grep 'inst_prefix_dir' "${x}/ltmain.sh") && $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]]; then ewarn " Could not apply relink.patch!"; fi ;; "portage") if [[ ${do_portage} == "yes" ]]; then if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then echo; eerror "Portage patch requested, but failed to apply!"; eerror "Please bug azarah or vapier to add proper patch."; diefunc "$FUNCNAME" "$LINENO" "$?" "Portage patch requested, but failed to apply!"; fi; else if [[ -n $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then :; else local version=$( eval $(grep -e '^[[:space:]]*VERSION=' "${x}/ltmain.sh"); echo "${VERSION}"); echo; eerror "Portage patch failed to apply (ltmain.sh version ${version})!"; eerror "Please bug azarah or vapier to add proper patch."; diefunc "$FUNCNAME" "$LINENO" "$?" "Portage patch failed to apply!"; fi; ELT_APPLIED_PATCHES="portage"; fi ;; "uclibc-"*) [[ ${CHOST} == *"-uclibc" ]] && ewarn " uClibc patch set '${y}' failed to apply!" ;; "fbsd-"*) if [[ ${CHOST} == *"-freebsd"* ]]; then if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' "${x}/configure" "${x}/../configure" 2>/dev/null) ]]; then eerror " FreeBSD patch set '${y}' failed to apply!"; diefunc "$FUNCNAME" "$LINENO" "$?" "FreeBSD patch set '${y}' failed to apply!"; fi; fi ;; "darwin-"*) [[ ${CHOST} == *"-darwin"* ]] && ewarn " Darwin patch set '${y}' failed to apply!" ;; esac; fi; done; if [[ -z ${ELT_APPLIED_PATCHES} ]]; then if [[ ${do_portage} == "no" && ${do_reversedeps} == "no" && ${do_only_patches} == "no" && ${deptoremove} == "" ]]; then ewarn "Cannot apply any patches, please file a bug about this"; diefunc "$FUNCNAME" "$LINENO" "$?"; fi; fi; [[ -f ${x}/libtool ]] && rm -f "${x}/libtool"; touch "${x}/.elibtoolized"; done; cd "${start_dir}" } emktemp () { local exe="touch"; [[ $1 == -d ]] && exe="mkdir" && shift; local topdir=$1; if [[ -z ${topdir} ]]; then [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; fi; if ! type -P mktemp > /dev/null; then local tmp=/; while [[ -e ${tmp} ]]; do tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; done; ${exe} "${tmp}" || ${exe} -p "${tmp}"; echo "${tmp}"; else if [[ ${exe} == "touch" ]]; then TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; else TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; fi; fi } enewgroup () { case ${EBUILD_PHASE} in unpack | compile | test | install) eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."; eerror "Package fails at QA and at life. Please file a bug."; diefunc "$FUNCNAME" "$LINENO" "$?" "Bad package! enewgroup is only for use in pkg_* functions!" ;; esac; local egroup="$1"; shift; if [ -z "${egroup}" ]; then eerror "No group specified !"; diefunc "$FUNCNAME" "$LINENO" "$?" "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 !"; diefunc "$FUNCNAME" "$LINENO" "$?" "${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}"; diefunc "$FUNCNAME" "$LINENO" "$?" "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} || diefunc "$FUNCNAME" "$LINENO" "$?" "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} || diefunc "$FUNCNAME" "$LINENO" "$?" "enewgroup failed" ;; *) groupadd ${opts} ${egroup} || diefunc "$FUNCNAME" "$LINENO" "$?" "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."; diefunc "$FUNCNAME" "$LINENO" "$?" "Bad package! enewuser is only for use in pkg_* functions!" ;; esac; local euser=$1; shift; if [[ -z ${euser} ]]; then eerror "No username specified !"; diefunc "$FUNCNAME" "$LINENO" "$?" "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 !"; diefunc "$FUNCNAME" "$LINENO" "$?" "${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 !"; diefunc "$FUNCNAME" "$LINENO" "$?" "${eshell} does not exist in ${ROOT}"; fi; if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then eerror "Do not specify ${eshell} yourself, use -1"; diefunc "$FUNCNAME" "$LINENO" "$?" "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" ;; *) diefunc "$FUNCNAME" "$LINENO" "$?" "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"; diefunc "$FUNCNAME" "$LINENO" "$?" "${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: $@"; diefunc "$FUNCNAME" "$LINENO" "$?" "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} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; fi ;; *-netbsd*) if [[ -z $@ ]]; then useradd ${opts} ${euser} || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; else einfo " - Extra: $@"; useradd ${opts} ${euser} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; fi ;; *-openbsd*) if [[ -z $@ ]]; then useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; else einfo " - Extra: $@"; useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; fi ;; *) if [[ -z $@ ]]; then useradd ${opts} ${euser} -c "added by portage for ${PN}" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; else einfo " - Extra: $@"; useradd ${opts} ${euser} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; fi ;; esac; if [[ ! -e ${ROOT}/${ehome} ]]; then einfo " - Creating ${ehome} in ${ROOT}"; mkdir -p "${ROOT}/${ehome}"; chown ${euser} "${ROOT}/${ehome}"; chmod 755 "${ROOT}/${ehome}"; fi; export SANDBOX_ON=${oldsandbox} } epatch () { function _epatch_draw_line () { [[ -z $1 ]] && set "$(printf "%65s" '')"; echo "${1//?/=}" }; function _epatch_assert () { local _pipestatus=${PIPESTATUS[*]}; [[ ${_pipestatus// /} -eq 0 ]] }; local PIPE_CMD=""; local STDERR_TARGET="${T}/$$.out"; local PATCH_TARGET="${T}/$$.patch"; local PATCH_SUFFIX=""; local SINGLE_PATCH="no"; local x=""; unset P4CONFIG P4PORT P4USER; if [ "$#" -gt 1 ]; then local m=""; for m in "$@"; do epatch "${m}"; done; return 0; fi; if [ -n "$1" -a -f "$1" ]; then SINGLE_PATCH="yes"; local EPATCH_SOURCE="$1"; local EPATCH_SUFFIX="${1##*\.}"; else if [ -n "$1" -a -d "$1" ]; then if [ "${EPATCH_FORCE}" = "yes" ] && [ -z "${EPATCH_SUFFIX}" ]; then local EPATCH_SOURCE="$1/*"; else local EPATCH_SOURCE="$1/*.${EPATCH_SUFFIX}"; fi; else if [ ! -d ${EPATCH_SOURCE} ] || [ -n "$1" ]; then if [ -n "$1" -a "${EPATCH_SOURCE}" = "${WORKDIR}/patch" ]; then EPATCH_SOURCE="$1"; fi; echo; eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:"; eerror; eerror " ${EPATCH_SOURCE}"; eerror " ( ${EPATCH_SOURCE##*/} )"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "Cannot find \$EPATCH_SOURCE!"; fi; local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}"; fi; fi; case ${EPATCH_SUFFIX##*\.} in bz2) PIPE_CMD="bzip2 -dc"; PATCH_SUFFIX="bz2" ;; gz | Z | z) PIPE_CMD="gzip -dc"; PATCH_SUFFIX="gz" ;; ZIP | zip) PIPE_CMD="unzip -p"; PATCH_SUFFIX="zip" ;; *) PIPE_CMD="cat"; PATCH_SUFFIX="patch" ;; esac; if [ "${SINGLE_PATCH}" = "no" ]; then einfo "${EPATCH_MULTI_MSG}"; fi; for x in ${EPATCH_SOURCE}; do if [ -f ${x} ] && ( [ "${SINGLE_PATCH}" = "yes" -o "${x/_all_}" != "${x}" -o "${x/_${ARCH}_}" != "${x}" ] || [ "${EPATCH_FORCE}" = "yes" ] ); then local count=0; local popts="${EPATCH_OPTS}"; local patchname=${x##*/}; if [ -n "${EPATCH_EXCLUDE}" ]; then if [ "${EPATCH_EXCLUDE/${patchname}}" != "${EPATCH_EXCLUDE}" ]; then continue; fi; fi; if [ "${SINGLE_PATCH}" = "yes" ]; then if [ -n "${EPATCH_SINGLE_MSG}" ]; then einfo "${EPATCH_SINGLE_MSG}"; else einfo "Applying ${patchname} ..."; fi; else einfo " ${patchname} ..."; fi; echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; while [ "${count}" -lt 5 ]; do _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; if [ "${PATCH_SUFFIX}" != "patch" ]; then echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; else PATCH_TARGET="${x}"; fi; echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; if [ "${PATCH_SUFFIX}" != "patch" ]; then if ! ( ${PIPE_CMD} ${x} > ${PATCH_TARGET} ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then echo; eerror "Could not extract patch!"; count=5; break; fi; fi; if ( cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f; _epatch_assert ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; echo "ACTUALLY APPLYING ${patchname} ..." >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; cat ${PATCH_TARGET} | patch -p${count} ${popts} >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 2>&1; _epatch_assert; if [ "$?" -ne 0 ]; then cat ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; echo; eerror "A dry-run of patch command succeeded, but actually"; eerror "applying the patch failed!"; count=5; fi; rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; break; fi; count=$((count + 1)); done; if [ "${PATCH_SUFFIX}" != "patch" ]; then rm -f ${PATCH_TARGET}; fi; if [ "${count}" -eq 5 ]; then echo; eerror "Failed Patch: ${patchname} !"; eerror " ( ${PATCH_TARGET} )"; eerror; eerror "Include in your bugreport the contents of:"; eerror; eerror " ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "Failed Patch: ${patchname}!"; fi; rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; eend 0; fi; done; if [ "${SINGLE_PATCH}" = "no" ]; then einfo "Done with patching"; fi } epause () { [[ -z ${EPAUSE_IGNORE} ]] && sleep ${1:-5} } epunt_cxx () { local dir=$1; [[ -z ${dir} ]] && dir=${S}; ebegin "Removing useless C++ checks"; local f; for f in $(find ${dir} -name configure); do patch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null; done; eend 0 } eqmake3 () { local LOGFILE="${T}/qmake-$$.out"; local projprofile="${1}"; [[ -z ${projprofile} ]] && projprofile="${PN}.pro"; shift 1; ebegin "Processing qmake ${projprofile}"; if [[ ! -f ${projprofile} ]]; then echo; eerror "Project .pro file \"${projprofile}\" does not exists"; eerror "qmake cannot handle non-existing .pro files"; echo; eerror "This shouldn't happen - please send a bug report to bugs.gentoo.org"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "Project file not found in ${PN} sources"; fi; echo >> ${LOGFILE}; echo "****** qmake ${projprofile} ******" >> ${LOGFILE}; echo >> ${LOGFILE}; local configoptplus="CONFIG += no_fixpath"; local configoptminus="CONFIG -="; if has debug ${IUSE} && use debug; then configoptplus="${configoptplus} debug"; configoptminus="${configoptminus} release"; else configoptplus="${configoptplus} release"; configoptminus="${configoptminus} debug"; fi; ${QTDIR}/bin/qmake ${projprofile} QTDIR=${QTDIR} QMAKE=${QTDIR}/bin/qmake QMAKE_CC=$(tc-getCC) QMAKE_CXX=$(tc-getCXX) QMAKE_LINK=$(tc-getCXX) QMAKE_CFLAGS_RELEASE="${CFLAGS}" QMAKE_CFLAGS_DEBUG="${CFLAGS}" QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" QMAKE_CXXFLAGS_DEBUG="${CXXFLAGS}" QMAKE_LFLAGS_RELEASE="${LDFLAGS}" QMAKE_LFLAGS_DEBUG="${LDFLAGS}" "${configoptminus}" "${configoptplus}" QMAKE_RPATH= ${@} >> ${LOGFILE} 2>&1; local result=$?; eend ${result}; if [[ ${result} -ne 0 ]]; then echo; eerror "Running qmake on \"${projprofile}\" has failed"; echo; eerror "This shouldn't happen - please send a bug report to bugs.gentoo.org"; echo; diefunc "$FUNCNAME" "$LINENO" "$?" "qmake failed on ${projprofile}"; fi; return ${result} } filter-flags () { _filter-hardened "$@"; _filter-var CFLAGS "$@"; _filter-var CPPFLAGS "$@"; _filter-var CXXFLAGS "$@"; return 0 } filter-ldflags () { _filter-var LDFLAGS "$@"; return 0 } filter-lfs-flags () { [[ -n $@ ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "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 } 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-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=""; dodir /usr/${libdir}; 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 if [[ ${USERLAND} == "Darwin" ]]; then ewarn "Not creating fake dynamic library for $lib on Darwin;"; ewarn "making a symlink instead."; dosym "/${libdir}/${lib}" "/usr/${libdir}/${lib}"; else cat > "${D}/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. See bug http://bugs.gentoo.org/4411 for more info. */ ${output_format} GROUP ( /${libdir}/${lib} ) END_LDSCRIPT fi fperms a+x "/usr/${libdir}/${lib}" || diefunc "$FUNCNAME" "$LINENO" "$?" "could not change perms on ${lib}"; done } get-child-packages () { local parent child; while read parent child; do [[ ${parent} == $1 ]] && echo -n "${child} "; done <&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-all } is-flag () { is-flagq "$@" && echo true } is-flagq () { [[ -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: is-flag "; _is_flagq CFLAGS $1 || _is_flagq CXXFLAGS $1 } is-ldflag () { is-ldflagq "$@" && echo true } is-ldflagq () { [[ -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: is-ldflag "; _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-parent-package () { local parent child; while read parent child; do [[ "${parent}" == "$1" ]] && return 0; done < Makefile; cd $OLDPWD } kde_sandbox_patch () { debug-print-function $FUNCNAME $*; while [ -n "$1" ]; do cd $1; for x in Makefile.am Makefile.in Makefile; do if [ -f "$x" ]; then echo Running sed on $x; cp $x ${x}.orig; sed -e 's: $(bindir): $(DESTDIR)/$(bindir):g' -e 's: $(kde_datadir): $(DESTDIR)/$(kde_datadir):g' -e 's: $(TIMID_DIR): $(DESTDIR)/$(TIMID_DIR):g' ${x}.orig > ${x}; rm ${x}.orig; fi; done; shift; done } kde_src_compile () { debug-print-function $FUNCNAME $*; [ -z "$1" ] && kde_src_compile all; [[ -z ${KDE_S} ]] && KDE_S="${S}"; cd "${KDE_S}"; export kde_widgetdir="$KDEDIR/$(get_libdir)/kde3/plugins/designer"; REALHOME="$HOME"; mkdir -p $T/fakehome/.kde; mkdir -p $T/fakehome/.qt; export HOME="$T/fakehome"; addwrite "${QTDIR}/etc/settings"; unset KDEHOME; unset KDEROOTHOME; [ -d "$REALHOME/.ccache" ] && ln -sf "$REALHOME/.ccache" "$HOME/"; [ -n "$UNSERMAKE" ] && addwrite "/usr/kde/unsermake"; while [ "$1" ]; do case $1 in myconf) debug-print-section myconf; myconf="$myconf --with-x --enable-mitshm $(use_with xinerama) --with-qt-dir=${QTDIR} --enable-mt --with-qt-libraries=${QTDIR}/$(get_libdir)"; [[ -z "$UNSERMAKE" ]] && myconf="$myconf --disable-dependency-tracking"; if use debug; then myconf="$myconf --enable-debug=full --with-debug"; else myconf="$myconf --disable-debug --without-debug"; fi; if hasq kdeenablefinal ${IUSE}; then myconf="$myconf $(use_enable kdeenablefinal final)"; fi; if [[ ${ARTS_REQUIRED} == "never" ]]; then myconf="$myconf --without-arts"; else if [[ ${ARTS_REQUIRED} != 'yes' && ${PN} != "arts" ]]; then myconf="$myconf $(use_with arts)"; fi; fi; debug-print "$FUNCNAME: myconf: set to ${myconf}" ;; configure) debug-print-section configure; debug-print "$FUNCNAME::configure: myconf=$myconf"; export WANT_AUTOMAKE; if [ ! -f "./configure" ] || [ -n "$UNSERMAKE" ]; then if [[ -f admin/cvs.sh ]]; then sed -i -e '/case $AUTO\(CONF\|HEADER\)_VERSION in/,+1 s/2\.5/2.[56]/g' admin/cvs.sh; fi; if [[ -f admin/detect-autoconf.sh ]]; then cat - > admin/detect-autoconf.sh <