A='xorg-server-1.3.0.0.tar.bz2 MesaLib-6.5.2.tar.bz2' AA='xorg-server-1.3.0.0.tar.bz2 MesaLib-6.5.2.tar.bz2' ALSA_CARDS='ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci' 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' 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' ARCH=x86 AT_GNUCONF_UPDATE=no AT_M4DIR= BAD=$'\E[31;01m' BASE_INDIVIDUAL_URI=http://xorg.freedesktop.org/releases/individual BASH=/bin/bash BASH_ARGC=([0]="4" [1]="0" [2]="1" [3]="1" [4]="1" [5]="0" [6]="1") BASH_ARGV=([0]="You must build xorg-server and mesa with the same nptl USE setting." [1]="0" [2]="327" [3]="pkg_setup" [4]="pkg_setup" [5]="pkg_setup" [6]="pkg_setup" [7]="setup") BASH_LINENO=([0]="327" [1]="46" [2]="608" [3]="614" [4]="619" [5]="1761" [6]="0") BASH_SOURCE=([0]="/usr/lib/portage/bin/isolated-functions.sh" [1]="/usr/portage/x11-base/xorg-server/xorg-server-1.3.0.0-r2.ebuild" [2]="/usr/lib/portage/bin/ebuild.sh" [3]="/usr/lib/portage/bin/ebuild.sh" [4]="/usr/lib/portage/bin/ebuild.sh" [5]="/usr/lib/portage/bin/ebuild.sh" [6]="/usr/lib/portage/bin/ebuild.sh") BASH_VERSINFO=([0]="3" [1]="2" [2]="17" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") BASH_VERSION='3.2.17(1)-release' BOOTLEVEL=boot BRACKET=$'\E[34;01m' BUILD_PREFIX=/var/tmp/portage CATEGORY=x11-base CBUILD=i686-pc-linux-gnu CCACHE_DIR=/var/tmp/ccache CDEFINE_default=__unix__ CFLAGS='-O2 -march=athlon-mp -pipe' CHOST=i686-pc-linux-gnu CHOST_default=i686-pc-linux-gnu CLASSPATH=. COLORFGBG='7;default;0' COLORTERM=Eterm COLORTERM_BCE=Eterm COLS=116 CONFIGURE_OPTIONS=$'\n\t\t--enable-ipv6\n\t\t--enable-dmx\n\t\t--disable-kdrive\n\t\t--enable-xvfb\n\t\t--enable-xnest\n\t\t--enable-install-libxf86config\n\t\t--enable-dri\n\t\t--enable-xorg\n\t\t--disable-xprint\n\t\t--enable-glx-tls\n\t\t--enable-xorgcfg\n\t\t--sysconfdir=/etc/X11\n\t\t--localstatedir=/var\n\t\t--enable-install-setuid\n\t\t--with-fontdir=/usr/share/fonts\n\t\t--with-xkb-output=/var/lib/xkb\n\t\t --disable-xsdl --with-mesa-source=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work/Mesa-6.5.2' CONSOLE=/dev/console CONSOLETYPE=vt CRITICAL_SERVICES='checkroot modules checkfs localmount clock bootmisc' CTARGET_default=i686-pc-linux-gnu CVS_RSH=ssh CXXFLAGS='-O2 -march=athlon-mp -pipe' D=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/image/ DCCC_PATH=/usr/lib/distcc/bin DEBUGBUILD=1 DEBUGGABLE=yes DEFAULTLEVEL=default DEFAULT_ABI=default DEPEND=$'>=x11-libs/libXfont-1.2.5\n\tx11-libs/xtrans\n\tx11-libs/libXau\n\tx11-libs/libXext\n\tx11-libs/libX11\n\tx11-libs/libxkbfile\n\tx11-libs/libXdmcp\n\tx11-libs/libXmu\n\t=media-libs/mesa-6.5.2\n\tmedia-fonts/font-adobe-75dpi\n\tmedia-fonts/font-misc-misc\n\tmedia-fonts/font-cursor-misc\n\tx11-misc/xbitmaps\n\t|| ( x11-misc/xkeyboard-config x11-misc/xkbdata )\n\tx11-apps/iceauth\n\tx11-apps/rgb\n\tx11-apps/xauth\n\tx11-apps/xinit\n\tapp-admin/eselect-opengl\n\tx11-libs/libXaw\n\tx11-libs/libXpm\n\tx11-libs/libXxf86misc\n\tx11-libs/libXxf86vm\n\tdmx? ( x11-libs/libdmx\n\t\t\tx11-libs/libXfixes )\n\t!minimal? ( x11-libs/libXtst\n\t\tx11-libs/libXres )\n\t>=x11-libs/libxkbui-1.0.2\n\tx11-libs/liblbxutil\n\tkdrive? ( sdl? ( media-libs/libsdl ) )\n\t>=x11-proto/randrproto-1.2.1\n\t=x11-proto/fixesproto-4\n\t>=x11-proto/damageproto-1.1\n\tx11-proto/xextproto\n\tx11-proto/xproto\n\tx11-proto/xf86dgaproto\n\tx11-proto/xf86miscproto\n\tx11-proto/xf86rushproto\n\tx11-proto/xf86vidmodeproto\n\tx11-proto/xf86bigfontproto\n\t>=x11-proto/compositeproto-0.3\n\tx11-proto/recordproto\n\tx11-proto/resourceproto\n\tx11-proto/videoproto\n\t>=x11-proto/scrnsaverproto-1.1.0\n\tx11-proto/evieext\n\tx11-proto/trapproto\n\t>=x11-proto/xineramaproto-1.1-r1\n\tx11-proto/fontsproto\n\t>=x11-proto/kbproto-1.0.3\n\tx11-proto/inputproto\n\tx11-proto/bigreqsproto\n\tx11-proto/xcmiscproto\n\t>=x11-proto/glproto-1.4.8\n\tdmx? ( x11-proto/dmxproto )\n\tdri? ( x11-proto/xf86driproto\n\t\t>=x11-libs/libdrm-2.3 )\n\txprint? ( x11-proto/printproto\n\t\tx11-apps/mkfontdir\n\t\tx11-apps/mkfontscale\n\t\tx11-apps/xplsprinters ) =sys-devel/automake-1.10*\n\t>=sys-devel/autoconf-2.61\n\tsys-devel/libtool \n\t\t>=sys-devel/libtool-1.5\n\t\t>=sys-devel/m4-1.4\n\t>=dev-util/pkgconfig-0.18\n\t\t>=x11-misc/util-macros-0.99.2\n\t\t>=sys-devel/binutils-2.16.1-r3' DESCRIPTION='X.Org X servers' DESKTOP=Enlightenment-0.17.0 DESTTREE=/usr DIROPTIONS=-m0755 DIRSTACK=() DISPLAY=:0.0 DISTCC_LOG= DISTCC_VERBOSE=0 DISTDIR=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/distdir EAPI= EBUILD=/usr/portage/x11-base/xorg-server/xorg-server-1.3.0.0-r2.ebuild EBUILD_EXIT_STATUS_FILE=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/.exit_status EBUILD_MASTER_PID=1071 EBUILD_PHASE=setup EBUILD_SH_ARGS=setup ECLASSDIR=/usr/portage/eclass ECLASS_DEPTH=0 EDITOR=/usr/bin/vim ELIBC=glibc ELIBTOOL_VERSION=2.0.2 ELT_APPLIED_PATCHES= ELT_LTMAIN_SH= ELT_PATCH_DIR=/usr/portage/eclass/ELT-patches EMERGE_FROM=ebuild ENDCOL=$'\E[A\E[116C' EPATCH_EXCLUDE= EPATCH_FORCE=no EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...' EPATCH_OPTS='-g0 -E --no-backup-if-mismatch' EPATCH_SINGLE_MSG= EPATCH_SOURCE=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work/patch EPATCH_SUFFIX=patch.bz2 ETERM_THEME_ROOT=/usr/share/Eterm/themes/Eterm ETERM_USER_ROOT=/home/dhp/.Eterm/themes/Eterm ETERM_VERSION=0.9.4 EUID=0 EXEOPTIONS=-m0755 E_IPC_SOCKET=/tmp/enlightenment-dhp/disp-:0.0-8654 E_RESTART=1 E_START=/usr/bin/enlightenment_start E_START_TIME=1197706042.2 FEATURES='ccache distlocks fixpackages metadata-transfer nostrip parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch' FILESDIR=/usr/portage/x11-base/xorg-server/files FLTK_DOCDIR=/usr/share/doc/fltk-1.1.7-r2/html FONT_ECLASS= FUNCNAME=([0]="diefunc" [1]="pkg_setup" [2]="qa_call" [3]="ebuild_phase" [4]="ebuild_phase_with_hooks" [5]="dyn_setup" [6]="main") GCC_SPECS= GDK_USE_XFT=1 GENERATION=2 GOOD=$'\E[32;01m' GROUPS=() GUILE_LOAD_PATH=/usr/share/guile/1.8 HILITE=$'\E[36m' HOME=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/homedir HOMEPAGE=http://xorg.freedesktop.org/ HOSTNAME=moon_gen_2 HOSTTYPE=i686 IFS=$' \t\n' INHERITED='toolchain-funcs portability flag-o-matic multilib x-modular libtool autotools eutils' INIT_VERSION=sysvinit-2.86 INPUT_DEVICES='evdev keyboard mouse synaptics wacom _penmount mutouch' INSDESTTREE= INSOPTIONS=-m0644 IUSE=' video_cards_apm video_cards_ark video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_epson video_cards_fbdev video_cards_glint video_cards_i128 video_cards_i740 video_cards_i810 video_cards_impact video_cards_imstt video_cards_mach64 video_cards_mga video_cards_neomagic video_cards_newport video_cards_nsc video_cards_nv video_cards_r128 video_cards_radeon video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_sunbw2 video_cards_suncg14 video_cards_suncg3 video_cards_suncg6 video_cards_sunffb video_cards_sunleo video_cards_suntcx video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo video_cards_fglrx video_cards_nvidia input_devices_acecad input_devices_aiptek input_devices_calcomp input_devices_citron input_devices_digitaledge input_devices_dmc input_devices_dynapro input_devices_elo2300 input_devices_elographics input_devices_evdev input_devices_fpit input_devices_hyperpen input_devices_jamstudio input_devices_joystick input_devices_keyboard input_devices_magellan input_devices_microtouch input_devices_mouse input_devices_mutouch input_devices_palmax input_devices_penmount input_devices_spaceorb input_devices_summa input_devices_tek4957 input_devices_ur98 input_devices_vmmouse input_devices_void input_devices_synaptics input_devices_wacom dmx kdrive xorg 3dfx dri ipv6 minimal nptl sdl xprint debug' IUSE_INPUT_DEVICES=$'\n\tinput_devices_acecad\n\tinput_devices_aiptek\n\tinput_devices_calcomp\n\tinput_devices_citron\n\tinput_devices_digitaledge\n\tinput_devices_dmc\n\tinput_devices_dynapro\n\tinput_devices_elo2300\n\tinput_devices_elographics\n\tinput_devices_evdev\n\tinput_devices_fpit\n\tinput_devices_hyperpen\n\tinput_devices_jamstudio\n\tinput_devices_joystick\n\tinput_devices_keyboard\n\tinput_devices_magellan\n\tinput_devices_microtouch\n\tinput_devices_mouse\n\tinput_devices_mutouch\n\tinput_devices_palmax\n\tinput_devices_penmount\n\tinput_devices_spaceorb\n\tinput_devices_summa\n\tinput_devices_tek4957\n\tinput_devices_ur98\n\tinput_devices_vmmouse\n\tinput_devices_void\n\n\tinput_devices_synaptics\n\tinput_devices_wacom' IUSE_SERVERS='dmx kdrive xorg' IUSE_VIDEO_CARDS=$'\n\tvideo_cards_apm\n\tvideo_cards_ark\n\tvideo_cards_chips\n\tvideo_cards_cirrus\n\tvideo_cards_cyrix\n\tvideo_cards_dummy\n\tvideo_cards_epson\n\tvideo_cards_fbdev\n\tvideo_cards_glint\n\tvideo_cards_i128\n\tvideo_cards_i740\n\tvideo_cards_i810\n\tvideo_cards_impact\n\tvideo_cards_imstt\n\tvideo_cards_mach64\n\tvideo_cards_mga\n\tvideo_cards_neomagic\n\tvideo_cards_newport\n\tvideo_cards_nsc\n\tvideo_cards_nv\n\tvideo_cards_r128\n\tvideo_cards_radeon\n\tvideo_cards_rendition\n\tvideo_cards_s3\n\tvideo_cards_s3virge\n\tvideo_cards_savage\n\tvideo_cards_siliconmotion\n\tvideo_cards_sis\n\tvideo_cards_sisusb\n\tvideo_cards_sunbw2\n\tvideo_cards_suncg14\n\tvideo_cards_suncg3\n\tvideo_cards_suncg6\n\tvideo_cards_sunffb\n\tvideo_cards_sunleo\n\tvideo_cards_suntcx\n\tvideo_cards_tdfx\n\tvideo_cards_tga\n\tvideo_cards_trident\n\tvideo_cards_tseng\n\tvideo_cards_v4l\n\tvideo_cards_vesa\n\tvideo_cards_vga\n\tvideo_cards_via\n\tvideo_cards_vmware\n\tvideo_cards_voodoo\n\tvideo_cards_fglrx\n\tvideo_cards_nvidia' 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 KDEDIRS=/usr:/usr/local:/usr/kde/3.5 KERNEL=linux KERNEL_ABI=default KEYWORDS='alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86 ~x86-fbsd' KV=2.6.23-gentoo-r3 LADSPA_PATH=/usr/lib/ladspa LANG=en_GB.ISO-8859-15 LCD_DEVICES='bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text' LC_ALL=en_GB.ISO-8859-15 LESS='-R -M --shift 5' LESSOPEN='|lesspipe.sh %s' LIBDIR_default=lib LIBOPTIONS=-m0644 LICENSE='xorg-server MIT' LINENO=327 LINGUAS='en fr en_GB fr_FR en_US' LIRC_DEVICES='usbirboy com1 com2 userspace' LOGNAME=root LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:' LYNX_CFG=/home/dhp/.lynx.cfg MACHTYPE=i686-pc-linux-gnu MAKEOPTS=-j2 MESA_P=Mesa-6.5.2 MESA_PN=Mesa MESA_PV=6.5.2 MESA_SRC_P=MesaLib-6.5.2 MODULE=xserver MOPREFIX=xorg-server MULTILIB_ABIS=default NORMAL=$'\E[0m' OLDIFS=$' \t\n' OLDSOFTLEVEL=boot OPENGL_DIR=xorg-x11 OPENGL_PROFILE=xorg-x11 OPTERR=1 OPTIND=1 OSTYPE=linux-gnu P=xorg-server-1.3.0.0 PAGER=/usr/bin/less PANTS=ON PATCHES=$'\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-fix-xkb-openoffice-hangs.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-fix-dual-head-screen-resolutions.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-fix-randr-resizing.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-fix-xephyr-amd64-segfault.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-ramdac.patch\n\t/usr/portage/x11-base/xorg-server/files/use-composite-for-unequal-depths.patch\n\t/usr/portage/x11-base/xorg-server/files/1.2.0-fix-amd-cpu-detection.patch\n\t/usr/portage/x11-base/xorg-server/files/1.2.0-properly-free-device-devprivates-memory-leak-fix.patch\n\t/usr/portage/x11-base/xorg-server/files/1.2.0-typo-fix.patch\n\t/usr/portage/x11-base/xorg-server/files/1.2.0-zero-out-client-devprivates-on-allocation.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-use-proc-instead-of-sys.patch\n\t/usr/portage/x11-base/xorg-server/files/avoid-crash-on-minimized-xv-window.patch\n\t/usr/portage/x11-base/xorg-server/files/xorg-server-sam225bw-quirks.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3-alpha-build-fix.patch\n\t/usr/portage/x11-base/xorg-server/files/1.3.0.0-xephyr_crash_at_exit.patch\n\t/usr/portage/x11-base/xorg-server/files/xorg-x11-server-1.0.1-fpic-libxf86config.patch\n\t' PATH=/usr/lib/ccache/bin:/usr/local/sbin:/sbin:/usr/sbin:/usr/lib/portage/bin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.16/bin:/opt/sun-jdk-1.4.2.16/jre/bin:/opt/sun-jdk-1.4.2.16/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin PDEPEND=$'\n\txorg? (\n\t\tinput_devices_acecad? ( >=x11-drivers/xf86-input-acecad-1.1.0 )\n\t\tinput_devices_aiptek? ( >=x11-drivers/xf86-input-aiptek-1.0.1 )\n\t\tinput_devices_calcomp? ( >=x11-drivers/xf86-input-calcomp-1.1.0 )\n\t\tinput_devices_citron? ( >=x11-drivers/xf86-input-citron-2.2.0 )\n\t\tinput_devices_digitaledge? ( >=x11-drivers/xf86-input-digitaledge-1.1.0 )\n\t\tinput_devices_dmc? ( >=x11-drivers/xf86-input-dmc-1.1.0 )\n\t\tinput_devices_dynapro? ( >=x11-drivers/xf86-input-dynapro-1.1.0 )\n\t\tinput_devices_elo2300? ( >=x11-drivers/xf86-input-elo2300-1.1.0 )\n\t\tinput_devices_elographics? ( >=x11-drivers/xf86-input-elographics-1.1.0 )\n\t\tinput_devices_evdev? ( >=x11-drivers/xf86-input-evdev-1.1.1 )\n\t\tinput_devices_fpit? ( >=x11-drivers/xf86-input-fpit-1.1.0 )\n\t\tinput_devices_hyperpen? ( >=x11-drivers/xf86-input-hyperpen-1.1.0 )\n\t\tinput_devices_jamstudio? ( >=x11-drivers/xf86-input-jamstudio-1.1.0 )\n\t\tinput_devices_joystick? ( >=x11-drivers/xf86-input-joystick-1.1.0 )\n\t\tinput_devices_keyboard? ( =x11-drivers/xf86-input-keyboard-1.1* )\n\t\tinput_devices_magellan? ( >=x11-drivers/xf86-input-magellan-1.1.0 )\n\t\tinput_devices_microtouch? ( >=x11-drivers/xf86-input-microtouch-1.1.0 )\n\t\tinput_devices_mouse? ( >=x11-drivers/xf86-input-mouse-1.1.0 )\n\t\tinput_devices_mutouch? ( >=x11-drivers/xf86-input-mutouch-1.1.0 )\n\t\tinput_devices_palmax? ( >=x11-drivers/xf86-input-palmax-1.1.0 )\n\t\tinput_devices_penmount? ( >=x11-drivers/xf86-input-penmount-1.1.0 )\n\t\tinput_devices_spaceorb? ( >=x11-drivers/xf86-input-spaceorb-1.1.0 )\n\t\tinput_devices_summa? ( >=x11-drivers/xf86-input-summa-1.1.0 )\n\t\tinput_devices_tek4957? ( >=x11-drivers/xf86-input-tek4957-1.1.0 )\n\t\tinput_devices_ur98? ( >=x11-drivers/xf86-input-ur98-1.1.0 )\n\t\tinput_devices_vmmouse? ( >=x11-drivers/xf86-input-vmmouse-12.4.0 )\n\t\tinput_devices_void? ( >=x11-drivers/xf86-input-void-1.1.0 )\n\n\t\tinput_devices_synaptics? ( x11-drivers/synaptics )\n\t\tinput_devices_wacom? ( x11-drivers/linuxwacom )\n\n\t\tvideo_cards_apm? ( >=x11-drivers/xf86-video-apm-1.1.1 )\n\t\tvideo_cards_ark? ( >=x11-drivers/xf86-video-ark-0.6.0 )\n\t\tvideo_cards_chips? ( >=x11-drivers/xf86-video-chips-1.1.1 )\n\t\tvideo_cards_cirrus? ( >=x11-drivers/xf86-video-cirrus-1.1.0 )\n\t\tvideo_cards_cyrix? ( >=x11-drivers/xf86-video-cyrix-1.1.0 )\n\t\tvideo_cards_dummy? ( >=x11-drivers/xf86-video-dummy-0.2.0 )\n\t\tvideo_cards_fbdev? ( >=x11-drivers/xf86-video-fbdev-0.2.0 )\n\t\tvideo_cards_glint? ( >=x11-drivers/xf86-video-glint-1.1.1 )\n\t\tvideo_cards_i128? ( >=x11-drivers/xf86-video-i128-1.2.0 )\n\t\tvideo_cards_i740? ( >=x11-drivers/xf86-video-i740-1.1.0 )\n\t\tvideo_cards_i810? ( >=x11-drivers/xf86-video-i810-1.6.0 )\n\t\tvideo_cards_impact? ( >=x11-drivers/xf86-video-impact-0.2.0 )\n\t\tvideo_cards_imstt? ( >=x11-drivers/xf86-video-imstt-1.1.0 )\n\t\tvideo_cards_mach64? ( >=x11-drivers/xf86-video-ati-6.6.0 )\n\t\tvideo_cards_mga? ( >=x11-drivers/xf86-video-mga-1.4.1 )\n\t\tvideo_cards_neomagic? ( >=x11-drivers/xf86-video-neomagic-1.1.1 )\n\t\tvideo_cards_newport? ( >=x11-drivers/xf86-video-newport-0.2.0 )\n\t\tvideo_cards_nsc? ( >=x11-drivers/xf86-video-nsc-2.8.1 )\n\t\tvideo_cards_nv? ( >=x11-drivers/xf86-video-nv-1.1.1 )\n\t\tvideo_cards_r128? ( >=x11-drivers/xf86-video-ati-6.6.0 )\n\t\tvideo_cards_radeon? ( >=x11-drivers/xf86-video-ati-6.6.0 )\n\t\tvideo_cards_rendition? ( >=x11-drivers/xf86-video-rendition-4.1.0 )\n\t\tvideo_cards_s3? ( >=x11-drivers/xf86-video-s3-0.4.1 )\n\t\tvideo_cards_s3virge? ( >=x11-drivers/xf86-video-s3virge-1.9.1 )\n\t\tvideo_cards_savage? ( >=x11-drivers/xf86-video-savage-2.1.1 )\n\t\tvideo_cards_siliconmotion? ( >=x11-drivers/xf86-video-siliconmotion-1.4.1 )\n\t\tvideo_cards_sis? ( >=x11-drivers/xf86-video-sis-0.9.1 )\n\t\tvideo_cards_sisusb? ( >=x11-drivers/xf86-video-sisusb-0.8.1 )\n\t\tvideo_cards_sunbw2? ( >=x11-drivers/xf86-video-sunbw2-1.1.0 )\n\t\tvideo_cards_suncg14? ( >=x11-drivers/xf86-video-suncg14-1.1.0 )\n\t\tvideo_cards_suncg3? ( >=x11-drivers/xf86-video-suncg3-1.1.0 )\n\t\tvideo_cards_suncg6? ( >=x11-drivers/xf86-video-suncg6-1.1.0 )\n\t\tvideo_cards_sunffb? ( >=x11-drivers/xf86-video-sunffb-1.1.0 )\n\t\tvideo_cards_sunleo? ( >=x11-drivers/xf86-video-sunleo-1.1.0 )\n\t\tvideo_cards_suntcx? ( >=x11-drivers/xf86-video-suntcx-1.1.0 )\n\t\tvideo_cards_tdfx? ( >=x11-drivers/xf86-video-tdfx-1.2.1 )\n\t\tvideo_cards_tga? ( >=x11-drivers/xf86-video-tga-1.1.0 )\n\t\tvideo_cards_trident? ( >=x11-drivers/xf86-video-trident-1.2.1 )\n\t\tvideo_cards_tseng? ( >=x11-drivers/xf86-video-tseng-1.1.0 )\n\t\tvideo_cards_v4l? ( >=x11-drivers/xf86-video-v4l-0.1.1 )\n\t\tvideo_cards_vesa? ( >=x11-drivers/xf86-video-vesa-1.1.0 )\n\t\tvideo_cards_vga? ( >=x11-drivers/xf86-video-vga-4.1.0 )\n\t\tvideo_cards_via? ( >=x11-drivers/xf86-video-via-0.2.1 )\n\t\tvideo_cards_vmware? ( >=x11-drivers/xf86-video-vmware-10.13.0 )\n\t\tvideo_cards_voodoo? ( >=x11-drivers/xf86-video-voodoo-1.1.0 )\n\t\tvideo_cards_tdfx? ( 3dfx? ( >=media-libs/glide-v3-3.10 ) )\n\t\tvideo_cards_nvidia? ( x11-drivers/nvidia-drivers )\n\t\tvideo_cards_fglrx? ( >=x11-drivers/ati-drivers-8.37.6 )\n\t) ' PF=xorg-server-1.3.0.0-r2 PIPESTATUS=([0]="0") PKGDIR=/tmp PKGUSE= PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig PKG_LOGDIR=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp/logging PKG_TMPDIR=/var/tmp/binpkgs PN=xorg-server PORTAGE_ACTUAL_DISTDIR=/usr/portage/distfiles PORTAGE_ARCHLIST='ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha ppc-macos hppa sparc-fbsd' PORTAGE_BASHRC=/etc/portage/bashrc PORTAGE_BINPKG_FILE= PORTAGE_BIN_PATH=/usr/lib/portage/bin PORTAGE_BUILDDIR=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2 PORTAGE_COLORMAP=$'GOOD=$\'\E[32;01m\'\nWARN=$\'\E[33;01m\'\nBAD=$\'\E[31;01m\'\nHILITE=$\'\E[36m\'\nBRACKET=$\'\E[34;01m\'' PORTAGE_CONFIGROOT=/ PORTAGE_DEBUG=0 PORTAGE_DEPCACHEDIR=/var/cache/edb/dep PORTAGE_GID=250 PORTAGE_INST_GID=0 PORTAGE_INST_UID=0 PORTAGE_LOG_FILE=/var/log/portage/x11-base:xorg-server-1.3.0.0-r2:20071215-172627.log PORTAGE_MASTER_PID=27048 PORTAGE_MUTABLE_FILTERED_VARS='AA HOSTNAME' PORTAGE_PYM_PATH=/usr/lib/portage/pym PORTAGE_REPO_NAME=gentoo PORTAGE_RESTRICT= PORTAGE_SAVED_READONLY_VARS='A CATEGORY P PF PN PR PV PVR' PORTAGE_TMPDIR=/var/tmp PORTAGE_TMPFS=/dev/shm PORTAGE_WORKDIR_MODE=0700 PORTDIR=/usr/portage PORTDIR_OVERLAY='/usr/portage/local/layman/enlightenment /usr/portage/local/layman/berkano /opt/doublehp/usr/portage /usr/portage/local/layman/enlightenment' PORT_ENOTICE_DIR=/var/enotice PPID=27048 PR=r2 PREVLEVEL=N PROFILE_PATHS=$'/usr/portage/profiles/base\n/usr/portage/profiles/default-linux\n/usr/portage/profiles/default-linux/x86\n/usr/portage/profiles/default-linux/x86/2006.1\n/usr/portage/profiles/default-linux/x86/2006.1/desktop\n/etc/portage/profile\n/etc/portage/profile' PROVIDE= PS4='+ ' PV=1.3.0.0 PVR=1.3.0.0-r2 PWD=/root PYTHONDOCS=/usr/share/doc/python-docs-2.5.1/html/lib PYTHONPATH=/usr/lib/portage/pym QMAKESPEC=linux-g++ QTDIR=/usr/qt/3 RC_DEFAULT_INDENT=2 RC_DOT_PATTERN= RC_ENDCOL=yes RC_INDENTATION= RDEPEND=$'>=x11-libs/libXfont-1.2.5\n\tx11-libs/xtrans\n\tx11-libs/libXau\n\tx11-libs/libXext\n\tx11-libs/libX11\n\tx11-libs/libxkbfile\n\tx11-libs/libXdmcp\n\tx11-libs/libXmu\n\t=media-libs/mesa-6.5.2\n\tmedia-fonts/font-adobe-75dpi\n\tmedia-fonts/font-misc-misc\n\tmedia-fonts/font-cursor-misc\n\tx11-misc/xbitmaps\n\t|| ( x11-misc/xkeyboard-config x11-misc/xkbdata )\n\tx11-apps/iceauth\n\tx11-apps/rgb\n\tx11-apps/xauth\n\tx11-apps/xinit\n\tapp-admin/eselect-opengl\n\tx11-libs/libXaw\n\tx11-libs/libXpm\n\tx11-libs/libXxf86misc\n\tx11-libs/libXxf86vm\n\tdmx? ( x11-libs/libdmx\n\t\t\tx11-libs/libXfixes )\n\t!minimal? ( x11-libs/libXtst\n\t\tx11-libs/libXres )\n\t>=x11-libs/libxkbui-1.0.2\n\tx11-libs/liblbxutil\n\tkdrive? ( sdl? ( media-libs/libsdl ) ) \n\t!<=x11-base/xorg-x11-6.9' READONLY_EBUILD_METADATA=$'DEPEND DESCRIPTION\n\tEAPI HOMEPAGE INHERITED IUSE KEYWORDS LICENSE\n\tPDEPEND PROVIDE RDEPEND RESTRICT SLOT SRC_URI' READONLY_PORTAGE_VARS=$'D EBUILD EBUILD_PHASE \tEBUILD_SH_ARGS EMERGE_FROM FILESDIR PORTAGE_BINPKG_FILE \tPORTAGE_BIN_PATH PORTAGE_PYM_PATH PORTAGE_MUTABLE_FILTERED_VARS \tPORTAGE_SAVED_READONLY_VARS PORTAGE_TMPDIR T WORKDIR' RESTRICT= ROOT=/ ROOTPATH=/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.16/bin:/opt/sun-jdk-1.4.2.16/jre/bin:/opt/sun-jdk-1.4.2.16/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin RPMDIR=/usr/portage/rpm RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes RUNLEVEL=3 S=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work/xorg-server-1.3.0.0 SANDBOX_LOG=x11-base_-_xorg-server-1.3.0.0-r2 SANDBOX_ON=0 SANDBOX_PREDICT=:/proc/self/maps:/dev/console:/dev/random:/usr/lib/portage/pym:/var/cache/edb/dep SANDBOX_READ=:/dev/shm:/dev/stdin:/var/tmp:/var/tmp/ccache SANDBOX_WRITE=:/dev/shm:/dev/stdout:/dev/stderr:/var/tmp:/var/tmp/ccache:/var/enotice:/var/enotice SCHEME_LIBRARY_PATH=/usr/share/slib/ SHELL=/bin/bash SHELLOPTS=braceexpand:hashall:interactive-comments SHLVL=8 SLOT=0 SNAPSHOT=yes SOFTLEVEL=default SRC_URI=$' http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.3.0.0.tar.bz2\n\tmirror://sourceforge/mesa3d/MesaLib-6.5.2.tar.bz2\n\thttp://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.3.0.0.tar.bz2' STAGE1_USE='nptl nptlonly unicode' STARTDIR=/root SVCNAME=local T=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp TERM=Eterm TMP=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp TMPDIR=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp UID=0 USE='3dfx 3dnow 3dnowext X Xaw3d ___directfb ___replytolist ___xcb a52 aac aalib accessibility ace acpi aiglx aim alsa alsa_cards_ali5451 alsa_cards_als4000 alsa_cards_atiixp alsa_cards_atiixp-modem alsa_cards_bt87x alsa_cards_ca0106 alsa_cards_cmipci alsa_cards_emu10k1 alsa_cards_emu10k1x alsa_cards_ens1370 alsa_cards_ens1371 alsa_cards_es1938 alsa_cards_es1968 alsa_cards_fm801 alsa_cards_hda-intel alsa_cards_intel8x0 alsa_cards_intel8x0m alsa_cards_maestro3 alsa_cards_trident alsa_cards_usb-audio alsa_cards_via82xx alsa_cards_via82xx-modem alsa_cards_ymfpci 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 amr amrnb amrwb amuled ao aoss apache2 apache2_modules_actions apache2_modules_alias apache2_modules_auth_basic apache2_modules_authn_alias apache2_modules_authn_anon 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_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_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_rewrite apache2_modules_setenvif apache2_modules_speling apache2_modules_status apache2_modules_unique_id apache2_modules_userdir apache2_modules_usertrack apache2_modules_vhost_alias apic asf audiofile autobuild avahi bash-completion berkdb bidi binfilter bitmap-fonts bl bluetooth bonjour bootsplash branding bzip2 cdda cddb cdio cdparanoia cdr cgi cjk cli cmov compress console cpio cpudetection cracklib crypt curl cx8 dbus de dg dga djvu dmi dmx doc dri dts dv dvb dvd dvdr dvdread dvi dynamic eds elibc_glibc emboss enca encode esd ethereal evo examples exif extrafilters fam fame fbcon ffmpeg fid firefox flac flash fortran fping fpu freetype ftp fxsr gadu gd gdbm ggi gif gnuplot gnutls gpm gs gstreamer gtk hal hddtemp httpd i8x0 ical icecast iconv icq id3tag idea idn ieee1394 imagemagick imap imlib input_devices__penmount input_devices_evdev input_devices_keyboard input_devices_mouse input_devices_mutouch input_devices_synaptics input_devices_wacom ipv6 irc isdnlog jabber jack javascript jpeg jpeg2k kernel_linux lame 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 libcaca libgcrypt libnotify linguas_en linguas_en_GB linguas_en_US linguas_fr linguas_fr_FR lirc lirc_devices_com1 lirc_devices_com2 lirc_devices_usbirboy lirc_devices_userspace listentcp live lj lm_sensors logrotate lua lzo mad matrox mca mce md5sum mdnsresponder-compat meanwhile midi mikmod mjpeg mmx mmxext mng modplug motif mozcalendar mozdom mp2 mp3 mp4 mpeg mplayer msn msr mtrr mtyhtv mudflap musepack musicbrainz nas ncurses nemesi network nls no-htdocs nptl nptlonly nsplugin offensive ogg openal opengl openmp oss pae pam pat pcre pdf perl pge php__ plotutils png pnm posix ppds pppd pse pse36 pvr python qq qt3 qt4 quicktime radio rar readline real reflection rpm rss rtc rtsp samba sasl screen sdl sensord sep server session silc skey skins sms sndfile speex spell spl srt sse ssl startup-notification stream subtitles suid svg svga swat symlink syscall syslog taglib tcpd teletext tga theora threads tiff tivo transmitter truetype truetype-fonts ts tsc twolame type1-fonts udev unicode urandom usb userland_GNU uuencode v4l v4l2 vcd vcdx vid video_cards__apm video_cards__chips video_cards__cirrus video_cards__i128 video_cards__i810 video_cards_fbdev video_cards_mga video_cards_nv video_cards_s3 video_cards_s3virge video_cards_sis video_cards_tdfx video_cards_tga video_cards_trident video_cards_v4l video_cards_vesa video_cards_vga video_cards_via vidix vim vim-syntax vlm vme vorbis win32codecs wma wmf wxwindows x264 x86 xanim xcomposite xinerama xorg xosd xpm xrandr xscreensaver xv xvid xvmc yahoo yv12 zeroconf zip zlib zoran' USER=root USERLAND=GNU USE_EXPAND='ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND VIDEO_CARDS' VIDEO_CARDS='_apm _chips _cirrus fbdev _i810 _i128 mga nv s3 s3virge sis tga trident v4l vesa vga via tdfx' VMHANDLE=sun-jdk-1.4 WANT_AUTOCONF=2.5 WANT_AUTOMAKE=1.10 WARN=$'\E[33;01m' WINDOWID=48234560 WINDOWPATH=7 WORKDIR=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work XARGS='xargs -r' XAUTHORITY=/root/.xauthU6ugYA XDG_DATA_DIRS=/usr/share:/usr/kde/3.5/share:/usr/local/share XDG_SESSION_COOKIE= XDIR=/usr XDPVER=1 _=']' _E_DOCDESTTREE_= _E_EXEDESTTREE_= _RC_GET_KV_CACHE= ___ECLASS_RECUR_MULTILIB=yes ___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes args= conf=xorg-server-1.3.0.0-r2 conf_opts=' --disable-xsdl --with-mesa-source=/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work/Mesa-6.5.2' diemsg='You must build xorg-server and mesa with the same nptl USE setting.' exitcode=0 filespacing=29 funcname=pkg_setup j=1 lineno=327 linespacing=4 n=-1 p=11 phase_name=pkg_setup server=dmx shopts=$'cdable_vars \toff\ncdspell \toff\ncheckhash \toff\ncheckwinsize \toff\ncmdhist \ton\ndotglob \toff\nexecfail \toff\nexpand_aliases \ton\nextdebug \ton\nextglob \toff\nextquote \ton\nfailglob \toff\nforce_fignore \ton\ngnu_errfmt \toff\nhistappend \toff\nhistreedit \toff\nhistverify \toff\nhostcomplete \ton\nhuponexit \toff\ninteractive_comments\ton\nlithist \toff\nlogin_shell \toff\nmailwarn \toff\nno_empty_cmd_completion\toff\nnocaseglob \toff\nnocasematch \toff\nnullglob \toff\nprogcomp \ton\npromptvars \ton\nrestricted_shell\toff\nshift_verbose \toff\nsourcepath \ton\nxpg_echo \toff' sourcefile=isolated-functions.sh x=pkg_setup 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}" } EXPORT_FUNCTIONS () { if [ -z "$ECLASS" ]; then echo "EXPORT_FUNCTIONS without a defined ECLASS" 1>&2; exit 1; fi; while [ "$1" ]; do debug-print "EXPORT_FUNCTIONS: ${1} -> ${ECLASS}_${1}"; eval "$1() { ${ECLASS}_$1 "\$@" ; }" > /dev/null; shift; done } KV_major () { [[ -z $1 ]] && return 1; local KV=$@; echo "${KV%%.*}" } KV_micro () { [[ -z $1 ]] && return 1; local KV=$@; KV=${KV#*.*.}; echo "${KV%%[^[:digit:]]*}" } KV_minor () { [[ -z $1 ]] && return 1; local KV=$@; KV=${KV#*.}; echo "${KV%%.*}" } KV_to_int () { [[ -z $1 ]] && return 1; local KV_MAJOR=$(KV_major "$1"); local KV_MINOR=$(KV_minor "$1"); local KV_MICRO=$(KV_micro "$1"); local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )); if [[ ${KV_int} -ge 131584 ]]; then echo "${KV_int}"; return 0; fi; return 1 } 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 } _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 } _eend () { local retval=${1:-0} efunc=${2:-eerror} msg; shift 2; if [[ ${retval} == "0" ]]; then msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"; else if [[ -n $* ]]; then ${efunc} "$*"; fi; msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"; fi; if [[ ${RC_ENDCOL} == "yes" ]]; then echo -e "${ENDCOL} ${msg}"; else [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0; printf "%$(( COLS - LAST_E_LEN - 6 ))s%b\n" '' "${msg}"; fi; return ${retval} } _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 } _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 } abort_compile () { abort_handler "src_compile" $1; rm -f "${PORTAGE_BUILDDIR}/.compiled"; exit 1 } abort_handler () { local msg; if [ "$2" != "fail" ]; then msg="${EBUILD}: ${1} aborted; exiting."; else msg="${EBUILD}: ${1} failed; exiting."; fi; echo; echo "$msg"; echo; eval ${3}; trap SIGINT SIGQUIT } abort_install () { abort_handler "src_install" $1; rm -rf "${PORTAGE_BUILDDIR}/image"; exit 1 } abort_test () { abort_handler "dyn_test" $1; rm -f "${PORTAGE_BUILDDIR}/.tested"; exit 1 } adddeny () { [[ -z $1 || -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: adddeny "; export SANDBOX_DENY="$SANDBOX_DENY:$1" } addpredict () { [[ -z $1 || -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: addpredict "; export SANDBOX_PREDICT="$SANDBOX_PREDICT:$1" } addread () { [[ -z $1 || -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: addread "; export SANDBOX_READ="$SANDBOX_READ:$1" } addwrite () { [[ -z $1 || -n $2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: addwrite "; export SANDBOX_WRITE="$SANDBOX_WRITE:$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 } best_version () { if [ "${EBUILD_PHASE}" == "depend" ]; then diefunc "$FUNCNAME" "$LINENO" "$?" "portageq calls (best_version calls portageq) are not allowed in the global scope"; fi; PYTHONPATH="${PORTAGE_PYM_PATH}:${PYTHONPATH}" "${PORTAGE_BIN_PATH}/portageq" 'best_version' "${ROOT}" "$1" } bindnow-flags () { case $($(tc-getLD) -v 2>&1 &1 ${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 } cleanup_fonts () { local ALLOWED_FILES="encodings.dir fonts.cache-1 fonts.dir fonts.scale"; for DIR in ${FONT_DIR}; do unset KEEP_FONTDIR; REAL_DIR=${ROOT}usr/share/fonts/${DIR}; ebegin "Checking ${REAL_DIR} for useless files"; pushd ${REAL_DIR} >&/dev/null; for FILE in *; do unset MATCH; for ALLOWED_FILE in ${ALLOWED_FILES}; do if [[ ${FILE} = ${ALLOWED_FILE} ]]; then MATCH="yes"; break; fi; done; if [[ -n ${MATCH} ]]; then continue; fi; KEEP_FONTDIR="yes"; break; done; popd >&/dev/null; if [[ -z "${KEEP_FONTDIR}" ]]; then rm -rf ${REAL_DIR}; fi; eend 0; done } create_font_cache () { font_pkg_postinst } create_fonts_dir () { ebegin "Generating fonts.dir files"; for DIR in ${FONT_DIR}; do x=${ROOT}/usr/share/fonts/${DIR}; [[ -z "$(ls ${x}/)" ]] && continue; [[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue; if [[ "${x/encodings}" = "${x}" ]]; then mkfontdir -e ${ROOT}/usr/share/fonts/encodings -e ${ROOT}/usr/share/fonts/encodings/large -- ${x}; fi; done; eend 0 } create_fonts_scale () { ebegin "Creating fonts.scale files"; local x; for DIR in ${FONT_DIR}; do x=${ROOT}/usr/share/fonts/${DIR}; [[ -z "$(ls ${x}/)" ]] && continue; [[ "$(ls ${x}/)" = "fonts.cache-1" ]] && continue; if [[ "${x/encodings}" = "${x}" ]] && [[ -n "$(find ${x} -iname '*.[pot][ft][abcf]' -print)" ]]; then mkfontscale -a ${ROOT}/usr/share/fonts/encodings/encodings.dir -- ${x}; fi; done; eend 0 } 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 } debug-print () { [ ! -d "$T" ] && return 0; while [ "$1" ]; do if [ "$ECLASS_DEBUG_OUTPUT" == "on" ]; then echo "debug: $1"; else if [ -n "$ECLASS_DEBUG_OUTPUT" ]; then echo "debug: $1" >> $ECLASS_DEBUG_OUTPUT; fi; fi; echo "$1" 2> /dev/null >> "${T}/eclass-debug.log"; chmod g+w "${T}/eclass-debug.log" >&/dev/null; shift; done } debug-print-function () { str="$1: entering function"; shift; debug-print "$str, parameters: $*" } debug-print-section () { debug-print "now in section $*" } diefunc () { local funcname="$1" lineno="$2" exitcode="$3"; shift 3; if [ -n "${QA_INTERCEPTORS}" ]; then unset -f ${QA_INTERCEPTORS}; unset QA_INTERCEPTORS; fi; local n filespacing=0 linespacing=0; for ((n = ${#FUNCNAME[@]} - 1; n >= 0; --n)) do sourcefile=${BASH_SOURCE[${n}]} sourcefile=${sourcefile##*/}; lineno=${BASH_LINENO[${n}]}; ((filespacing < ${#sourcefile})) && filespacing=${#sourcefile}; ((linespacing < ${#lineno})) && linespacing=${#lineno}; done; eerror; eerror "ERROR: $CATEGORY/$PF failed."; dump_trace 2 ${filespacing} ${linespacing}; eerror " $(printf "%${filespacing}s" "${BASH_SOURCE[1]##*/}"), line $(printf "%${linespacing}s" "${BASH_LINENO[0]}"): Called die"; eerror "The specific snippet of code:"; sed -n -e "# When we get to the line that failed, append it to the # hold space, move the hold space to the pattern space, # then print out the pattern space and quit immediately ${BASH_LINENO[0]}{H;g;p;q}" -e '# If this line ends with a line continuation, append it # to the hold space /\\$/H' -e '# If this line does not end with a line continuation, # erase the line and set the hold buffer to it (thus # erasing the hold buffer in the process) /[^\]$/{s:^.*$::;h}' ${BASH_SOURCE[1]} | sed -e '1d' -e 's:^:RETAIN-LEADING-SPACE:' | while read -r n; do eerror " ${n#RETAIN-LEADING-SPACE}"; done; eerror " The die message:"; eerror " ${*:-(no error message)}"; eerror; eerror "If you need support, post the topmost build error, and the call stack if relevant."; [[ -n ${PORTAGE_LOG_FILE} ]] && eerror "A complete build log is located at '${PORTAGE_LOG_FILE}'."; if [ -f "${T}/environment" ]; then eerror "The ebuild environment file is located at '${T}/environment'."; else if [ -d "${T}" ]; then { set; export } > "${T}/die.env"; eerror "The ebuild environment file is located at '${T}/die.env'."; fi; fi; if [[ -n ${EBUILD_OVERLAY_ECLASSES} ]]; then eerror "This ebuild used the following eclasses from overlays:"; local x; for x in ${EBUILD_OVERLAY_ECLASSES}; do eerror " ${x}"; done; fi; if [ "${EMERGE_FROM}" != "binary" ] && ! hasq ${EBUILD_PHASE} prerm postrm && [ "${EBUILD#${PORTDIR}/}" == "${EBUILD}" ]; then local overlay=${EBUILD%/*}; overlay=${overlay%/*}; overlay=${overlay%/*}; eerror "This ebuild is from an overlay: '${overlay}/'"; fi; eerror; if [[ "${EBUILD_PHASE/depend}" == "${EBUILD_PHASE}" ]]; then local x; for x in $EBUILD_DEATH_HOOKS; do ${x} "$@" 1>&2 1>&2; done; fi; [ -n "${EBUILD_EXIT_STATUS_FILE}" ] && touch "${EBUILD_EXIT_STATUS_FILE}" >&/dev/null; kill -s SIGTERM ${EBUILD_MASTER_PID}; exit 1 } diropts () { export DIROPTIONS="$@" } discover_font_dirs () { FONT_DIRS="${FONT_DIR}" } dlopen_lib () { if [[ ${ELIBC} != *BSD ]]; then echo "-ldl"; fi } do_newdepend () { debug-print-function do_newdepend $*; [ -z "$1" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "do_newdepend without arguments"; [[ ${ECLASS_DEPTH} > 0 ]] && TARGET="E_$1"; [[ ${ECLASS_DEPTH} > 0 ]] || TARGET="$1"; shift; while [ -n "$1" ]; do eval export ${TARGET}=\"\${${TARGET}} \$1\"; shift; done } docinto () { if [ "$1" == "/" ]; then export _E_DOCDESTTREE_=""; else export _E_DOCDESTTREE_="$1"; if [ ! -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then install -d "${D}usr/share/doc/${PF}/${_E_DOCDESTTREE_}"; fi; fi } doicon () { ( local i j ret; insinto /usr/share/pixmaps; for i in "$@"; do if [[ -f ${i} ]]; then doins "${i}"; ((ret+=$?)); else if [[ -d ${i} ]]; then for j in "${i}"/*.png; do doins "${j}"; ((ret+=$?)); done; else ((++ret)); fi; fi; done; exit ${ret} ) } domenu () { ( local i j ret=0; insinto /usr/share/applications; for i in "$@"; do if [[ -f ${i} ]]; then doins "${i}"; ((ret+=$?)); else if [[ -d ${i} ]]; then for j in "${i}"/*.desktop; do doins "${j}"; ((ret+=$?)); done; else ((++ret)); fi; fi; done; exit ${ret} ) } dump_trace () { local funcname="" sourcefile="" lineno="" n e s="yes"; declare -i strip=${1:-1}; local filespacing=$2 linespacing=$3; (( n = ${#FUNCNAME[@]} - 1 )); while (( n > 0 )); do [ "${FUNCNAME[${n}]}" == "qa_call" ] && break; (( n-- )); done; (( n == 0 )) && (( n = ${#FUNCNAME[@]} - 1 )); eerror "Call stack:"; for ((p = ${#BASH_ARGV[@]} ; n > ${strip} ; n-- )) do funcname=${FUNCNAME[${n} - 1]}; sourcefile=$(basename ${BASH_SOURCE[${n}]}); lineno=${BASH_LINENO[${n} - 1]}; args=; if [[ -n "${BASH_ARGV[@]}" ]]; then for ((j = 1 ; j <= ${BASH_ARGC[${n} - 1]} ; ++j )) do newarg=${BASH_ARGV[$(( p - j - 1 ))]}; args="${args:+${args} }'${newarg}'"; done; (( p -= ${BASH_ARGC[${n} - 1]} )); fi; eerror " $(printf "%${filespacing}s" "${sourcefile}"), line $(printf "%${linespacing}s" "${lineno}"): Called ${funcname}${args:+ ${args}}"; done } dyn_clean () { if [ -z "${PORTAGE_BUILDDIR}" ]; then echo "Aborting clean phase because PORTAGE_BUILDDIR is unset!"; return 1; else if [ ! -d "${PORTAGE_BUILDDIR}" ]; then return 0; fi; fi; if type -P chflags > /dev/null; then chflags -R noschg,nouchg,nosappnd,nouappnd "${PORTAGE_BUILDDIR}"; chflags -R nosunlnk,nouunlnk "${PORTAGE_BUILDDIR}" 2> /dev/null; fi; rm -rf "${PORTAGE_BUILDDIR}/image" "${PORTAGE_BUILDDIR}/homedir"; if ! hasq keeptemp $FEATURES; then rm -rf "${T}"; else [ -e "${T}/environment" ] && mv "${T}/environment" "${T}/environment.keeptemp"; fi; if ! hasq keepwork $FEATURES; then rm -rf "${PORTAGE_BUILDDIR}/.exit_status"; rm -rf "${PORTAGE_BUILDDIR}/.logid"; rm -rf "${PORTAGE_BUILDDIR}/.unpacked"; rm -rf "${PORTAGE_BUILDDIR}/.compiled"; rm -rf "${PORTAGE_BUILDDIR}/.tested"; rm -rf "${PORTAGE_BUILDDIR}/.installed"; rm -rf "${PORTAGE_BUILDDIR}/.packaged"; rm -rf "${PORTAGE_BUILDDIR}/build-info"; rm -rf "${WORKDIR}"; fi; if [ -f "${PORTAGE_BUILDDIR}/.unpacked" ]; then find "${PORTAGE_BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir >&/dev/null; fi; rm -rf "${PORTAGE_BUILDDIR}/distdir"; if [ -z "$(find "${PORTAGE_BUILDDIR}" -mindepth 1 -maxdepth 1)" ]; then rmdir "${PORTAGE_BUILDDIR}"; fi; true } dyn_compile () { trap "abort_compile" SIGINT SIGQUIT; [ "$(type -t pre_src_compile)" == "function" ] && qa_call pre_src_compile; [ "${CFLAGS-unset}" != "unset" ] && export CFLAGS; [ "${CXXFLAGS-unset}" != "unset" ] && export CXXFLAGS; [ "${LIBCFLAGS-unset}" != "unset" ] && export LIBCFLAGS; [ "${LIBCXXFLAGS-unset}" != "unset" ] && export LIBCXXFLAGS; [ "${LDFLAGS-unset}" != "unset" ] && export LDFLAGS; [ "${ASFLAGS-unset}" != "unset" ] && export ASFLAGS; [ "${CCACHE_DIR-unset}" != "unset" ] && export CCACHE_DIR; [ "${CCACHE_SIZE-unset}" != "unset" ] && export CCACHE_SIZE; [ "${DISTCC_DIR-unset}" == "unset" ] && export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"; [ ! -z "${DISTCC_DIR}" ] && addwrite "${DISTCC_DIR}"; LIBDIR_VAR="LIBDIR_${ABI}"; if [ -z "${PKG_CONFIG_PATH}" -a -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then export PKG_CONFIG_PATH="/usr/${!LIBDIR_VAR}/pkgconfig"; fi; unset LIBDIR_VAR; if hasq noauto $FEATURES && [ ! -f ${PORTAGE_BUILDDIR}/.unpacked ]; then echo; echo "!!! We apparently haven't unpacked... This is probably not what you"; echo "!!! want to be doing... You are using FEATURES=noauto so I'll assume"; echo "!!! that you know what you are doing... You have 5 seconds to abort..."; echo; local x; for x in 1 2 3 4 5 6 7 8; do echo -ne "\a"; LC_ALL=C sleep 0.25; done; sleep 3; fi; local srcdir=${PORTAGE_BUILDDIR}; cd "${PORTAGE_BUILDDIR}"; if [ ! -e "build-info" ]; then mkdir build-info; fi; cp "${EBUILD}" "build-info/${PF}.ebuild"; if [[ ${PORTAGE_BUILDDIR}/.compiled -nt ${WORKDIR} ]]; then vecho ">>> It appears that '${PF}' is already compiled; skipping."; vecho ">>> Remove '${PORTAGE_BUILDDIR}/.compiled' to force compilation."; trap SIGINT SIGQUIT; [ "$(type -t post_src_compile)" == "function" ] && qa_call post_src_compile; return; fi; if [ -d "${S}" ]; then srcdir=${S}; else srcdir=${WORKDIR}; fi; cd "${srcdir}"; export S D; export PWORKDIR="$WORKDIR"; vecho ">>> Compiling source in ${srcdir} ..."; ebuild_phase src_compile; vecho ">>> Source compiled."; cd "${PORTAGE_BUILDDIR}"; touch .compiled; [ "$(type -t post_src_compile)" == "function" ] && qa_call post_src_compile; trap SIGINT SIGQUIT } dyn_help () { echo; echo "Portage"; echo "Copyright 1999-2006 Gentoo Foundation"; echo; echo "How to use the ebuild command:"; echo; echo "The first argument to ebuild should be an existing .ebuild file."; echo; echo "One or more of the following options can then be specified. If more"; echo "than one option is specified, each will be executed in order."; echo; echo " help : show this help screen"; echo " setup : execute package specific setup actions"; echo " fetch : download source archive(s) and patches"; echo " digest : create a digest and a manifest file for the package"; echo " manifest : create a manifest file for the package"; echo " unpack : unpack/patch sources (auto-fetch if needed)"; echo " compile : compile sources (auto-fetch/unpack if needed)"; echo " test : test package (auto-fetch/unpack/compile if needed)"; echo " preinst : execute pre-install instructions"; echo " postinst : execute post-install instructions"; echo " install : install the package to the temporary install directory"; echo " qmerge : merge image into live filesystem, recording files in db"; echo " merge : do fetch, unpack, compile, install and qmerge"; echo " prerm : execute pre-removal instructions"; echo " postrm : execute post-removal instructions"; echo " unmerge : remove package from live filesystem"; echo " config : execute package specific configuration actions"; echo " package : create a tarball package in ${PKGDIR}/All"; echo " rpm : build a RedHat RPM package"; echo " clean : clean up all source and temporary files"; echo; echo "The following settings will be used for the ebuild process:"; echo; echo " package : ${PF}"; echo " slot : ${SLOT}"; echo " category : ${CATEGORY}"; echo " description : ${DESCRIPTION}"; echo " system : ${CHOST}"; echo " c flags : ${CFLAGS}"; echo " c++ flags : ${CXXFLAGS}"; echo " make flags : ${MAKEOPTS}"; echo -n " build mode : "; if hasq nostrip ${FEATURES} ${RESTRICT} || hasq strip ${RESTRICT}; then echo "debug (large)"; else echo "production (stripped)"; fi; echo " merge to : ${ROOT}"; echo; if [ -n "$USE" ]; then echo "Additionally, support for the following optional features will be enabled:"; echo; echo " ${USE}"; fi; echo } dyn_install () { [ -z "$PORTAGE_BUILDDIR" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "${FUNCNAME}: PORTAGE_BUILDDIR is unset"; if hasq noauto $FEATURES; then rm -f "${PORTAGE_BUILDDIR}/.installed"; else if [[ ${PORTAGE_BUILDDIR}/.installed -nt ${WORKDIR} ]]; then vecho ">>> It appears that '${PF}' is already installed; skipping."; vecho ">>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install."; return 0; fi; fi; trap "abort_install" SIGINT SIGQUIT; [ "$(type -t pre_src_install)" == "function" ] && qa_call pre_src_install; rm -rf "${PORTAGE_BUILDDIR}/image"; mkdir "${PORTAGE_BUILDDIR}/image"; if [ -d "${S}" ]; then cd "${S}"; else cd "${WORKDIR}"; fi; vecho; vecho ">>> Install ${PF} into ${D} category ${CATEGORY}"; export S D; export PWORKDIR="$WORKDIR"; ebuild_phase src_install; touch "${PORTAGE_BUILDDIR}/.installed"; vecho ">>> Completed installing ${PF} into ${D}"; vecho; cd ${PORTAGE_BUILDDIR}; [ "$(type -t post_src_install)" == "function" ] && qa_call post_src_install; cd "${PORTAGE_BUILDDIR}"/build-info; set -f; local f; for f in ASFLAGS CATEGORY CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS DEPEND EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE FEATURES INHERITED IUSE LDFLAGS LIBCFLAGS LIBCXXFLAGS LICENSE PDEPEND PF PKGUSE PROVIDE RDEPEND RESTRICT SLOT KEYWORDS HOMEPAGE SRC_URI DESCRIPTION; do [ -n "${!f}" ] && echo $(echo "${!f}" | tr '\n,\r,\t' ' , , ' | sed s/' \+'/' '/g) > ${f}; done; echo "${USE}" > USE; echo "${EAPI:-0}" > EAPI; set +f; unset f; ( unset S _E_DOCDESTTREE_ _E_EXEDESTTREE_; save_ebuild_env | filter_readonly_variables --filter-sandbox --allow-extra-vars > environment ); bzip2 -f9 environment; cp "${EBUILD}" "${PF}.ebuild"; [ -n "${PORTAGE_REPO_NAME}" ] && echo "${PORTAGE_REPO_NAME}" > repository; if hasq nostrip ${FEATURES} ${RESTRICT} || hasq strip ${RESTRICT}; then touch DEBUGBUILD; fi; trap SIGINT SIGQUIT } dyn_preinst () { if [ -z "${D}" ]; then eerror "${FUNCNAME}: D is unset"; return 1; fi; ebuild_phase_with_hooks pkg_preinst } dyn_setup () { ebuild_phase_with_hooks pkg_setup } dyn_test () { if [ "${EBUILD_FORCE_TEST}" == "1" ]; then rm -f "${PORTAGE_BUILDDIR}/.tested"; ! hasq test ${USE} && export USE="${USE} test"; fi; [ "$(type -t pre_src_test)" == "function" ] && qa_call pre_src_test; if [ "${PORTAGE_BUILDDIR}/.tested" -nt "${WORKDIR}" ]; then vecho ">>> It appears that ${PN} has already been tested; skipping."; [ "$(type -t post_src_test)" == "function" ] && qa_call post_src_test; return; fi; trap "abort_test" SIGINT SIGQUIT; if [ -d "${S}" ]; then cd "${S}"; else cd "${WORKDIR}"; fi; if ! hasq test $FEATURES && [ "${EBUILD_FORCE_TEST}" != "1" ]; then vecho ">>> Test phase [not enabled]: ${CATEGORY}/${PF}"; else if ! hasq test ${USE} && [ "${EBUILD_FORCE_TEST}" != "1" ]; then ewarn "Skipping make test/check since USE=test is masked."; vecho ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}"; else if hasq test $RESTRICT; then ewarn "Skipping make test/check due to ebuild restriction."; vecho ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}"; else addpredict /; ebuild_phase src_test; SANDBOX_PREDICT="${SANDBOX_PREDICT%:/}"; fi; fi; fi; cd "${PORTAGE_BUILDDIR}"; touch .tested || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to 'touch .tested' in ${PORTAGE_BUILDDIR}"; [ "$(type -t post_src_test)" == "function" ] && qa_call post_src_test; trap SIGINT SIGQUIT } dyn_unpack () { [ "$(type -t pre_src_unpack)" == "function" ] && qa_call pre_src_unpack; local newstuff="no"; if [ -e "${WORKDIR}" ]; then local x; local checkme; for x in ${AA}; do vecho ">>> Checking ${x}'s mtime..."; if [ "${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}}/${x}" -nt "${WORKDIR}" ]; then vecho ">>> ${x} has been updated; recreating WORKDIR..."; newstuff="yes"; break; fi; done; if [ "${EBUILD}" -nt "${WORKDIR}" ] && ! hasq keepwork ${FEATURES}; then vecho ">>> ${EBUILD} has been updated; recreating WORKDIR..."; newstuff="yes"; else if [ ! -f "${PORTAGE_BUILDDIR}/.unpacked" ]; then vecho ">>> Not marked as unpacked; recreating WORKDIR..."; newstuff="yes"; fi; fi; fi; if [ "${newstuff}" == "yes" ]; then rm -rf "${WORKDIR}"; if [ -d "${T}" ] && ! hasq keeptemp ${FEATURES}; then rm -rf "${T}" && mkdir "${T}"; else [ -e "${T}/environment" ] && mv "${T}/environment" "${T}/environment.keeptemp"; fi; fi; if [ -e "${WORKDIR}" ]; then if [ "$newstuff" == "no" ]; then vecho ">>> WORKDIR is up-to-date, keeping..."; [ "$(type -t post_src_unpack)" == "function" ] && qa_call post_src_unpack; return 0; fi; fi; if [ ! -d "${WORKDIR}" ]; then install -m${PORTAGE_WORKDIR_MODE:-0700} -d "${WORKDIR}" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create dir '${WORKDIR}'"; fi; cd "${WORKDIR}" || diefunc "$FUNCNAME" "$LINENO" "$?" "Directory change failed: \`cd '${WORKDIR}'\`"; vecho ">>> Unpacking source..."; ebuild_phase src_unpack; touch "${PORTAGE_BUILDDIR}/.unpacked" || diefunc "$FUNCNAME" "$LINENO" "$?" "IO Failure -- Failed 'touch .unpacked' in ${PORTAGE_BUILDDIR}"; vecho ">>> Source unpacked."; cd "${PORTAGE_BUILDDIR}"; [ "$(type -t post_src_unpack)" == "function" ] && qa_call post_src_unpack } dynamic_libgl_install () { ebegin "Moving GL files for dynamic switching"; dodir /usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions; local x=""; for x in "${D}"/usr/$(get_libdir)/xorg/modules/extensions/libglx*; do if [ -f ${x} -o -L ${x} ]; then mv -f ${x} "${D}"/usr/$(get_libdir)/opengl/${OPENGL_DIR}/extensions; fi; done; eend 0 } 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 } ebegin () { local msg="$*" dots spaces=${RC_DOT_PATTERN//?/ }; if [[ -n ${RC_DOT_PATTERN} ]]; then dots=$(printf "%$(( COLS - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" ''); dots=${dots//${spaces}/${RC_DOT_PATTERN}}; msg="${msg}${dots}"; else msg="${msg} ..."; fi; einfon "${msg}"; [[ ${RC_ENDCOL} == "yes" ]] && echo; LAST_E_LEN=$(( 3 + ${#RC_INDENTATION} + ${#msg} )); LAST_E_CMD="ebegin"; return 0 } ebuild_phase () { [ "$(type -t ${1})" == "function" ] && qa_call ${1} } ebuild_phase_with_hooks () { local x phase_name=${1}; for x in {pre_,,post_}${phase_name}; do ebuild_phase ${x}; done } econf () { local x; local LOCAL_EXTRA_ECONF="${EXTRA_ECONF}"; if [ -z "${ECONF_SOURCE}" ]; then ECONF_SOURCE="."; fi; if [ -x "${ECONF_SOURCE}/configure" ]; then if [ -e /usr/share/gnuconfig/ ]; then for x in $(find "${WORKDIR}" -type f '(' -name config.guess -o -name config.sub ')'); do vecho " * econf: updating ${x/${WORKDIR}\/} with /usr/share/gnuconfig/${x##*/}"; cp -f /usr/share/gnuconfig/${x##*/} ${x}; done; fi; if [ ! -z "${CBUILD}" ]; then LOCAL_EXTRA_ECONF="--build=${CBUILD} ${LOCAL_EXTRA_ECONF}"; fi; if [ ! -z "${CTARGET}" ]; then LOCAL_EXTRA_ECONF="--target=${CTARGET} ${LOCAL_EXTRA_ECONF}"; fi; LIBDIR_VAR="LIBDIR_${ABI}"; if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then CONF_LIBDIR="${!LIBDIR_VAR}"; fi; unset LIBDIR_VAR; if [ -n "${CONF_LIBDIR}" ] && [ "${*/--libdir}" == "$*" ]; then if [ "${*/--exec-prefix}" != "$*" ]; then local args="$(echo $*)"; local -a pref=($(echo ${args/*--exec-prefix[= ]})); CONF_PREFIX=${pref}; [ "${CONF_PREFIX:0:1}" != "/" ] && CONF_PREFIX="/${CONF_PREFIX}"; else if [ "${*/--prefix}" != "$*" ]; then local args="$(echo $*)"; local -a pref=($(echo ${args/*--prefix[= ]})); CONF_PREFIX=${pref}; [ "${CONF_PREFIX:0:1}" != "/" ] && CONF_PREFIX="/${CONF_PREFIX}"; else CONF_PREFIX="/usr"; fi; fi; export CONF_PREFIX; [ "${CONF_LIBDIR:0:1}" != "/" ] && CONF_LIBDIR="/${CONF_LIBDIR}"; CONF_LIBDIR_RESULT="$(strip_duplicate_slashes ${CONF_PREFIX}${CONF_LIBDIR})"; LOCAL_EXTRA_ECONF="--libdir=${CONF_LIBDIR_RESULT} ${LOCAL_EXTRA_ECONF}"; fi; local TMP_CONFCACHE_DIR CONFCACHE_ARG; if hasq confcache $FEATURES && ! hasq confcache $RESTRICT; then CONFCACHE="$(type -P confcache)"; if [ -z "${CONFCACHE}" ]; then ewarn "disabling confcache, binary cannot be found"; else CONFCACHE="${CONFCACHE/ /\ }"; TMP_CONFCACHE_DIR="${CONFCACHE:+${CONFCACHE_DIR:-${PORTAGE_TMPDIR}/confcache}}"; TMP_CONFCACHE_DIR="${TMP_CONFCACHE_DIR/ /\ }"; CONFCACHE_ARG="--confcache-dir"; local s; if [ -n "$CCACHE_DIR" ]; then s="$CCACHE_DIR"; fi; if [ -n "$DISTCC_DIR" ]; then s="${s:+${s}:}$DISTCC_DIR"; fi; if [ -n "$s" ]; then CONFCACHE_ARG="--confcache-ignore $s $CONFCACHE_ARG"; fi; fi; else CONFCACHE=; fi; vecho ${CONFCACHE} ${CONFCACHE_ARG} ${TMP_CONFCACHE_DIR} "${ECONF_SOURCE}/configure" --prefix=/usr --host=${CHOST} --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib "$@" ${LOCAL_EXTRA_ECONF}; if ! ${CONFCACHE} ${CONFCACHE_ARG} ${TMP_CONFCACHE_DIR} "${ECONF_SOURCE}/configure" --prefix=/usr --host=${CHOST} --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib "$@" ${LOCAL_EXTRA_ECONF}; then if [ -s config.log ]; then echo; echo "!!! Please attach the following file when seeking support:"; echo "!!! ${PWD}/config.log"; fi; diefunc "$FUNCNAME" "$LINENO" "$?" "econf failed"; fi; else if [ -f "${ECONF_SOURCE:-.}/configure" ]; then diefunc "$FUNCNAME" "$LINENO" "$?" "configure is not executable"; else diefunc "$FUNCNAME" "$LINENO" "$?" "no configure script found"; fi; fi } edos2unix () { echo "$@" | xargs sed -i 's/\r$//' } eend () { local retval=${1:-0}; shift; _eend ${retval} eerror "$*"; return ${retval} } eerror () { enotice error "${*}" } 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 } einfo () { enotice info "${*}" } einfon () { elog_base INFO "$*"; [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo; echo -ne " ${GOOD}*${NORMAL} $*"; LAST_E_CMD="einfon"; return 0 } einstall () { local LOCAL_EXTRA_EINSTALL="${EXTRA_EINSTALL}"; LIBDIR_VAR="LIBDIR_${ABI}"; if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then CONF_LIBDIR="${!LIBDIR_VAR}"; fi; unset LIBDIR_VAR; if [ -n "${CONF_LIBDIR}" ] && [ "${CONF_PREFIX:-unset}" != "unset" ]; then EI_DESTLIBDIR="${D}/${CONF_PREFIX}/${CONF_LIBDIR}"; EI_DESTLIBDIR="$(strip_duplicate_slashes ${EI_DESTLIBDIR})"; LOCAL_EXTRA_EINSTALL="libdir=${EI_DESTLIBDIR} ${LOCAL_EXTRA_EINSTALL}"; unset EI_DESTLIBDIR; fi; if [ -f ./[mM]akefile -o -f ./GNUmakefile ]; then if [ "${PORTAGE_DEBUG}" == "1" ]; then ${MAKE:-make} -n prefix="${D}usr" datadir="${D}usr/share" infodir="${D}usr/share/info" localstatedir="${D}var/lib" mandir="${D}usr/share/man" sysconfdir="${D}etc" ${LOCAL_EXTRA_EINSTALL} "$@" install; fi; ${MAKE:-make} prefix="${D}usr" datadir="${D}usr/share" infodir="${D}usr/share/info" localstatedir="${D}var/lib" mandir="${D}usr/share/man" sysconfdir="${D}etc" ${LOCAL_EXTRA_EINSTALL} "$@" install || diefunc "$FUNCNAME" "$LINENO" "$?" "einstall failed"; else diefunc "$FUNCNAME" "$LINENO" "$?" "no Makefile found"; fi } 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}" } elog () { elog_base LOG "$*"; echo -e " ${GOOD}*${NORMAL} $*"; return 0 } elog_base () { local messagetype; [ -z "${1}" -o -z "${T}" -o ! -d "${T}/logging" ] && return 1; case "${1}" in INFO | WARN | ERROR | LOG | QA) messagetype="${1}"; shift ;; *) vecho -e " ${BAD}*${NORMAL} Invalid use of internal function elog_base(), next message will not be logged"; return 1 ;; esac; echo -e "$*" >> "${T}/logging/${EBUILD_PHASE:-other}.${messagetype}"; return 0 } emktemp () { local exe="touch"; [[ $1 == -d ]] && exe="mkdir" && shift; local topdir=$1; if [[ -z ${topdir} ]]; then [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; fi; if ! type -P mktemp > /dev/null; then local tmp=/; while [[ -e ${tmp} ]]; do tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; done; ${exe} "${tmp}" || ${exe} -p "${tmp}"; echo "${tmp}"; else if [[ ${exe} == "touch" ]]; then TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; else TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; fi; fi } enewgroup () { case ${EBUILD_PHASE} in unpack | compile | test | install) eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."; eerror "Package fails at QA and at life. Please file a bug."; 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} } enotice () { local color; local type; type="${1}"; case "${type}" in "info") color="${GOOD}" ;; "warn") color="${WARN}" ;; "error") color="${BAD}" ;; esac; shift; if [ ! -z "${PORT_ENOTICE_DIR}" ]; then echo "${type}:${*}" >> ${PORT_ENOTICE_DIR}/${PF}; fi; echo " ${color}*${NORMAL} ${*}" } ensure_a_server_is_building () { for server in ${IUSE_SERVERS}; do use ${server} && return; done; eerror "You need to specify at least one server to build."; eerror "Valid servers are: ${IUSE_SERVERS}."; diefunc "$FUNCNAME" "$LINENO" "$?" "No servers were specified to build." } 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 } eqawarn () { elog_base QA "$*"; vecho -e " ${WARN}*${NORMAL} $*" 1>&2; return 0 } esyslog () { return 0 } ewarn () { enotice warn "${*}" } exeinto () { if [ "$1" == "/" ]; then export _E_EXEDESTTREE_=""; else export _E_EXEDESTTREE_="$1"; if [ ! -d "${D}${_E_EXEDESTTREE_}" ]; then install -d "${D}${_E_EXEDESTTREE_}"; fi; fi } exeopts () { export EXEOPTIONS="$@"; hasq -s ${EXEOPTIONS} && diefunc "$FUNCNAME" "$LINENO" "$?" "Never call exeopts() with -s" } 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 } filter_readonly_variables () { local x filtered_vars var_grep; local readonly_bash_vars="DIRSTACK EUID FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"; local filtered_sandbox_vars="SANDBOX_ACTIVE SANDBOX_BASHRC SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB SANDBOX_LOG SANDBOX_ON"; filtered_vars="${readonly_bash_vars} ${READONLY_PORTAGE_VARS} BASH_[_[:alnum:]]*"; if hasq --filter-sandbox $*; then filtered_vars="${filtered_vars} SANDBOX_[_[:alnum:]]*"; else filtered_vars="${filtered_vars} ${filtered_sandbox_vars}"; fi; if hasq --filter-features $*; then filtered_vars="${filtered_vars} FEATURES"; fi; if ! hasq --allow-extra-vars $*; then filtered_vars=" ${filtered_vars} ${PORTAGE_SAVED_READONLY_VARS} ${PORTAGE_MUTABLE_FILTERED_VARS} "; fi; set -f; for x in ${filtered_vars}; do var_grep="${var_grep}|${x}"; done; set +f; var_grep=${var_grep:1}; var_grep="(^|^declare[[:space:]]+-[^[:space:]]+[[:space:]]+)(${var_grep})=.*"; "${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${var_grep}" | sed -r -e 's:^declare[[:space:]]+-r[[:space:]]+:declare :' -e 's:^declare[[:space:]]+-([[:alnum:]]*)r([[:alnum:]]*)[[:space:]]+:declare -\1\2 :' } 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}" } fix_font_permissions () { ebegin "Fixing permissions"; for DIR in ${FONT_DIR}; do find ${ROOT}/usr/share/fonts/${DIR} -type f -name 'font.*' -exec chmod 0644 {} \;; done; eend 0 } 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 } gen_wrapper () { cat > "$1" <<-EOF #!/bin/sh exec $2 "\$@" EOF chmod 0755 "$1" } get-flag () { local f findflag="$1"; for f in ${CFLAGS} ${CXXFLAGS}; do if [ "${f/${findflag}}" != "${f}" ]; then printf "%s\n" "${f/-${findflag}=}"; return 0; fi; done; return 1 } get_KV () { [[ -z ${_RC_GET_KV_CACHE} ]] && _RC_GET_KV_CACHE=$(uname -r); echo $(KV_to_int "${_RC_GET_KV_CACHE}"); return $? } get_abi_ASFLAGS () { get_abi_var ASFLAGS "$@" } get_abi_CDEFINE () { get_abi_var CDEFINE "$@" } get_abi_CFLAGS () { get_abi_var CFLAGS "$@" } get_abi_CHOST () { get_abi_var CHOST "$@" } get_abi_CTARGET () { get_abi_var CTARGET "$@" } get_abi_FAKE_TARGETS () { get_abi_var FAKE_TARGETS "$@" } get_abi_LDFLAGS () { get_abi_var LDFLAGS "$@" } get_abi_LIBDIR () { get_abi_var LIBDIR "$@" } get_abi_var () { local flag=$1; local abi; if [ $# -gt 1 ]; then abi=${2}; else if [ -n "${ABI}" ]; then abi=${ABI}; else if [ -n "${DEFAULT_ABI}" ]; then abi=${DEFAULT_ABI}; else abi="default"; fi; fi; fi; local var="${flag}_${abi}"; echo ${!var} } get_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_bmake () { if [[ ${USERLAND} == *BSD ]]; then echo make; else if [[ ${USERLAND} == "Darwin" ]]; then echo bsdmake; else echo pmake; fi; fi } 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 diefunc "$FUNCNAME" "$LINENO" "$?" "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; fi; echo ${order}; return 0 } get_libdir () { local CONF_LIBDIR; if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then echo ${CONF_LIBDIR_OVERRIDE}; else get_abi_LIBDIR; fi } get_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 *-darwin*) libname="dylib" ;; *) libname="so" ;; esac; if [[ -z $@ ]]; then echo ".${libname}"; else for ver in "$@"; do case ${CHOST} in *-darwin*) echo ".${ver}.${libname}" ;; *) echo ".${libname}.${ver}" ;; esac; done; fi } get_ml_incdir () { local dir=/usr/include; if [[ $# -gt 0 ]]; then incdir=$1; shift; fi; if [[ -z "${MULTILIB_ABIS}" ]]; then echo ${incdir}; return 0; fi; local abi=${ABI-${DEFAULT_ABI}}; if [[ $# -gt 0 ]]; then abi=$1; shift; fi; if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then echo ${dir}/gentoo-multilib/${abi}; else echo ${dir}; fi } get_mounts () { local point= node= fs= opts= foo=; if [[ $(uname -s) == "Linux" ]]; then while read node point fs opts foo; do echo "${point} ${node} ${fs} ${opts}"; done < /proc/mounts; return; fi; local IFS=' '; LC_ALL=C mount -p | while read node point fs foo; do opts=${fs#* }; fs=${fs%% *}; echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}"; done } get_multilibdir () { if has_multilib_profile; then eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; exit 1; fi; echo ${CONF_MULTILIBDIR:=lib32} } has () { hasq "$@" } 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-all } has_version () { if [ "${EBUILD_PHASE}" == "depend" ]; then diefunc "$FUNCNAME" "$LINENO" "$?" "portageq calls (has_version calls portageq) are not allowed in the global scope"; fi; PYTHONPATH="${PORTAGE_PYM_PATH}:${PYTHONPATH}" "${PORTAGE_BIN_PATH}"/portageq has_version "${ROOT}" "$1"; local retval=$?; case "${retval}" in 0) return 0 ;; 1) return 1 ;; *) diefunc "$FUNCNAME" "$LINENO" "$?" "unexpected portageq exit code: ${retval}" ;; esac } hasq () { [[ " ${*:2} " == *" $1 "* ]] } hasv () { if hasq "$@"; then echo "$1"; return 0; fi; return 1 } inherit () { ECLASS_DEPTH=$(($ECLASS_DEPTH + 1)); if [[ ${ECLASS_DEPTH} > 1 ]]; then debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})"; fi; local location; local olocation; local PECLASS; local B_IUSE; local B_DEPEND; local B_RDEPEND; local B_PDEPEND; while [ "$1" ]; do location="${ECLASSDIR}/${1}.eclass"; olocation=""; PECLASS="$ECLASS"; export ECLASS="$1"; if [ "${EBUILD_PHASE}" != "depend" ] && [[ ${EBUILD_PHASE} != *rm ]] && [[ ${EMERGE_FROM} != "binary" ]]; then if ! hasq $ECLASS $INHERITED; then eqawarn "QA Notice: ECLASS '$ECLASS' inherited illegally in $CATEGORY/$PF"; fi; fi; if [ -n "$PORTDIR_OVERLAY" ]; then local overlay; for overlay in ${PORTDIR_OVERLAY}; do olocation="${overlay}/eclass/${1}.eclass"; if [ -e "$olocation" ]; then location="${olocation}"; debug-print " eclass exists: ${location}"; fi; done; fi; debug-print "inherit: $1 -> $location"; [ ! -e "$location" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "${1}.eclass could not be found by inherit()"; if [ "${location}" == "${olocation}" ] && ! hasq "${location}" ${EBUILD_OVERLAY_ECLASSES}; then EBUILD_OVERLAY_ECLASSES="${EBUILD_OVERLAY_ECLASSES} ${location}"; fi; set -f; unset B_IUSE B_DEPEND B_RDEPEND B_PDEPEND; [ "${IUSE-unset}" != "unset" ] && B_IUSE="${IUSE}"; [ "${DEPEND-unset}" != "unset" ] && B_DEPEND="${DEPEND}"; [ "${RDEPEND-unset}" != "unset" ] && B_RDEPEND="${RDEPEND}"; [ "${PDEPEND-unset}" != "unset" ] && B_PDEPEND="${PDEPEND}"; unset IUSE DEPEND RDEPEND PDEPEND; set +f; qa_source "$location" || diefunc "$FUNCNAME" "$LINENO" "$?" "died sourcing $location in inherit()"; set -f; [ "${IUSE-unset}" != "unset" ] && export E_IUSE="${E_IUSE} ${IUSE}"; [ "${DEPEND-unset}" != "unset" ] && export E_DEPEND="${E_DEPEND} ${DEPEND}"; [ "${RDEPEND-unset}" != "unset" ] && export E_RDEPEND="${E_RDEPEND} ${RDEPEND}"; [ "${PDEPEND-unset}" != "unset" ] && export E_PDEPEND="${E_PDEPEND} ${PDEPEND}"; [ "${B_IUSE-unset}" != "unset" ] && IUSE="${B_IUSE}"; [ "${B_IUSE-unset}" != "unset" ] || unset IUSE; [ "${B_DEPEND-unset}" != "unset" ] && DEPEND="${B_DEPEND}"; [ "${B_DEPEND-unset}" != "unset" ] || unset DEPEND; [ "${B_RDEPEND-unset}" != "unset" ] && RDEPEND="${B_RDEPEND}"; [ "${B_RDEPEND-unset}" != "unset" ] || unset RDEPEND; [ "${B_PDEPEND-unset}" != "unset" ] && PDEPEND="${B_PDEPEND}"; [ "${B_PDEPEND-unset}" != "unset" ] || unset PDEPEND; set +f; hasq $1 $INHERITED || export INHERITED="$INHERITED $1"; export ECLASS="$PECLASS"; shift; done; ((--ECLASS_DEPTH)); return 0 } insinto () { if [ "$1" == "/" ]; then export INSDESTTREE=""; else export INSDESTTREE=$1; if [ ! -d "${D}${INSDESTTREE}" ]; then install -d "${D}${INSDESTTREE}"; fi; fi } insopts () { export INSOPTIONS="$@"; hasq -s ${INSOPTIONS} && diefunc "$FUNCNAME" "$LINENO" "$?" "Never call insopts() with -s" } install_driver_hwdata () { insinto /usr/share/hwdata/videoaliases; for i in "${FILESDIR}"/*.xinf; do if [[ -e $i ]]; then doins $i; fi; done } into () { if [ "$1" == "/" ]; then export DESTTREE=""; else export DESTTREE=$1; if [ ! -d "${D}${DESTTREE}" ]; then install -d "${D}${DESTTREE}"; fi; fi } 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_final_abi () { has_multilib_profile || return 0; local ALL_ABIS=$(get_install_abis); local LAST_ABI=${ALL_ABIS/* /}; [[ ${LAST_ABI} == ${ABI} ]] } kdrive_setup () { local card real_card disable_card kdrive_fbdev kdrive_vesa; einfo "Removing unused kdrive drivers ..."; kdrive_fbdev="radeon neomagic sis siliconmotion"; kdrive_vesa="chips mach64 mga nv glint r128 via"; for card in ${IUSE_VIDEO_CARDS}; do real_card=${card#video_cards_}; real_card=${real_card/glint/pm2}; real_card=${real_card/radeon/ati}; real_card=${real_card/%nv/nvidia}; real_card=${real_card/siliconmotion/smi}; real_card=${real_card/%sis/sis300}; disable_card=0; if ! grep -q -o "\b${real_card}\b" "${S}"/hw/kdrive/Makefile.am; then continue; fi; if ! use ${card}; then if use x86; then for i in ${kdrive_fbdev}; do if use video_cards_${i}; then if [[ ${real_card} = fbdev ]] || [[ ${real_card} = vesa ]]; then continue 2; fi; fi; done; for i in ${kdrive_vesa}; do if use video_cards_${i}; then if [[ ${real_card} = vesa ]]; then continue 2; fi; fi; done; fi; disable_card=1; else if ! use x86 && [[ ${real_card} != fbdev ]]; then ewarn " $real_card does not work on your architecture; disabling."; disable_card=1; fi; fi; if [[ $disable_card = 1 ]]; then ebegin " ${real_card}"; sed -i -e "s:\b${real_card}\b::g" "${S}"/hw/kdrive/Makefile.am || diefunc "$FUNCNAME" "$LINENO" "$?" "sed of ${real_card} failed"; eend; fi; done; if ! use video_cards_siliconmotion && ! use video_cards_via; then sed -i -e "s:^\(VESA_SUBDIRS.*\)\\\:\1:g" "${S}"/hw/kdrive/Makefile.am; fi } keepdir () { dodir "$@"; local x; if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then shift; find "$@" -type d -printf "${D}%p/.keep_${CATEGORY}_${PN}-${SLOT}\n" | tr "\n" "\0" | ${XARGS} -0 -n100 touch || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to recursively create .keep files"; else for x in "$@"; do touch "${D}${x}/.keep_${CATEGORY}_${PN}-${SLOT}" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create .keep in ${D}${x}"; done; fi } lchgrp () { chgrp -h "$@" } lchown () { chown -h "$@" } libopts () { export LIBOPTIONS="$@"; hasq -s ${LIBOPTIONS} && diefunc "$FUNCNAME" "$LINENO" "$?" "Never call libopts() with -s" } make_desktop_entry () { [[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1; local exec=${1}; local name=${2:-${PN}}; local icon=${3:-${PN}}; local type=${4}; local path=${5}; if [[ -z ${type} ]]; then local catmaj=${CATEGORY%%-*}; local catmin=${CATEGORY##*-}; case ${catmaj} in app) case ${catmin} in accessibility) type=Accessibility ;; admin) type=System ;; antivirus) type=System ;; arch) type=Archiving ;; backup) type=Archiving ;; cdr) type=DiscBurning ;; dicts) type=Dictionary ;; doc) type=Documentation ;; editors) type=TextEditor ;; emacs) type=TextEditor ;; emulation) type=Emulator ;; laptop) type=HardwareSettings ;; office) type=Office ;; pda) type=PDA ;; vim) type=TextEditor ;; xemacs) type=TextEditor ;; *) type= ;; esac ;; dev) type="Development" ;; games) case ${catmin} in action | fps) type=ActionGame ;; arcade) type=ArcadeGame ;; board) type=BoardGame ;; emulation) type=Emulator ;; kids) type=KidsGame ;; puzzle) type=LogicGame ;; roguelike) type=RolePlaying ;; rpg) type=RolePlaying ;; simulation) type=Simulation ;; sports) type=SportsGame ;; strategy) type=StrategyGame ;; *) type= ;; esac; type="Game;${type}" ;; gnome) type="Gnome;GTK" ;; kde) type="KDE;Qt" ;; mail) type="Network;Email" ;; media) case ${catmin} in gfx) type=Graphics ;; radio) type=Tuner ;; sound) type=Audio ;; tv) type=TV ;; video) type=Video ;; *) type= ;; esac; type="AudioVideo;${type}" ;; net) case ${catmin} in dialup) type=Dialup ;; ftp) type=FileTransfer ;; im) type=InstantMessaging ;; irc) type=IRCClient ;; mail) type=Email ;; news) type=News ;; nntp) type=News ;; p2p) type=FileTransfer ;; *) type= ;; esac; type="Network;${type}" ;; sci) case ${catmin} in astro*) type=Astronomy ;; bio*) type=Biology ;; calc*) type=Calculator ;; chem*) type=Chemistry ;; elec*) type=Electronics ;; geo*) type=Geology ;; math*) type=Math ;; physics) type=Physics ;; visual*) type=DataVisualization ;; *) type= ;; esac; type="Science;${type}" ;; sys) type="System" ;; www) case ${catmin} in client) type=WebBrowser ;; *) type= ;; esac; type="Network" ;; *) type= ;; esac; fi; if [ "${SLOT}" == "0" ]; then local desktop_name="${PN}"; else local desktop_name="${PN}-${SLOT}"; fi; local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; cat > "${desktop}" <<-EOF [Desktop Entry] Version=1.0 Name=${name} Type=Application Comment=${DESCRIPTION} Exec=${exec} TryExec=${exec%% *} Icon=${icon} Categories=${type}; EOF [[ -n ${path} ]] && echo "Path=${path}" >> "${desktop}"; ( insinto /usr/share/applications; doins "${desktop}" ) } make_session_desktop () { [[ -z $1 ]] && eerror "make_session_desktop: You must specify the title" && return 1; [[ -z $2 ]] && eerror "make_session_desktop: You must specify the command" && return 1; local title=$1; local command=$2; local desktop=${T}/${wm}.desktop; cat > "${desktop}" <<-EOF [Desktop Entry] Name=${title} Comment=This session logs you into ${title} Exec=${command} TryExec=${command} Type=Application 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}" < "${T}"/environment.filtered || return $?; unset filter_opts; mv "${T}"/environment.filtered "${T}"/environment || return $?; rm -f "${T}/environment.success" || return $?; ( export SANDBOX_ON=1; source "${T}/environment" || exit $?; export SANDBOX_ON=0; source "${PORTAGE_BIN_PATH}/isolated-functions.sh" || exit $?; save_ebuild_env || exit $?; touch "${T}/environment.success" || exit $? ) | filter_readonly_variables > "${T}/environment.filtered"; local retval; if [ -e "${T}/environment.success" ]; then mv "${T}/environment.filtered" "${T}/environment"; retval=$?; else retval=1; fi; rm -f "${T}"/environment.{filtered,raw,success}; return ${retval} } preserve_old_lib () { if [[ ${EBUILD_PHASE} != "preinst" ]]; then eerror "preserve_old_lib() must be called from pkg_preinst() only"; diefunc "$FUNCNAME" "$LINENO" "$?" "Invalid preserve_old_lib() usage"; fi; [[ -z $1 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Usage: preserve_old_lib [more libraries to preserve]"; local lib dir; for lib in "$@"; do [[ -e ${ROOT}/${lib} ]] || continue; dir=${lib%/*}; dodir ${dir} || diefunc "$FUNCNAME" "$LINENO" "$?" "dodir ${dir} failed"; cp "${ROOT}"/${lib} "${D}"/${lib} || diefunc "$FUNCNAME" "$LINENO" "$?" "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"; diefunc "$FUNCNAME" "$LINENO" "$?" "Invalid preserve_old_lib_notify() usage"; fi; 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."; fi } qa_call () { local shopts=$(shopt) OLDIFS="$IFS"; "$@" || return 1; [[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while calling '$*'"; [[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while calling '$*'"; return 0 } qa_source () { local shopts=$(shopt) OLDIFS="$IFS"; source "$@" || return 1; [[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while sourcing '$*'"; [[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while sourcing '$*'"; return 0 } quiet_mode () { [[ ${PORTAGE_QUIET} -eq 1 ]] } raw-ldflags () { local x input="$@"; [[ -z ${input} ]] && input=${LDFLAGS}; set --; for x in ${input}; do x=${x#-Wl,}; set -- "$@" ${x//,/ }; done; echo "$@" } register_die_hook () { export EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} $*" } remove_font_metadata () { local DIR; for DIR in ${FONT_DIR}; do if [[ "${DIR}" != "Speedo" ]] && [[ "${DIR}" != "CID" ]]; then rm -f ${D}/usr/share/fonts/${DIR}/fonts.{scale,dir,cache-1}; fi; done } remove_path_entry () { [ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}"; IFS=":"; stripped_path="${PATH}"; while [ -n "$1" ]; do cur_path=""; for p in ${stripped_path}; do if [ "${p/${1}}" == "${p}" ]; then cur_path="${cur_path}:${p}"; fi; done; stripped_path="${cur_path#:*}"; shift; done; if [ "${old_IFS:-unset}" != "unset" ]; then IFS="${old_IFS}"; unset old_IFS; else unset IFS; fi; PATH="${stripped_path}" } replace-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 " && diefunc "$FUNCNAME" "$LINENO" "$?" "replace-flags takes 2 arguments, not $#"; local f fset; declare -a new_CFLAGS new_CXXFLAGS; for fset in CFLAGS CXXFLAGS; 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 } save_ebuild_env () { ( unset BASH HOSTTYPE IFS MACHTYPE OLDPWD OPTERR OPTIND OSTYPE PS4 PWD SHELL SHLVL; unset COLORTERM DISPLAY EDITOR LESS LESSOPEN LOGNAME LS_COLORS PAGER TERM TERMCAP USER; unset ECHANGELOG_USER GPG_AGENT_INFO SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY; unset ${!CCACHE_*} ${!DISTCC_*}; unset -f dump_trace diefunc quiet_mode vecho elog_base eqawarn elog esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has hasv hasq qa_source qa_call addread addwrite adddeny addpredict lchown lchgrp esyslog use usev useq has_version portageq best_version use_with use_enable register_die_hook check_KV keepdir unpack strip_duplicate_slashes econf einstall gen_wrapper dyn_setup dyn_unpack dyn_clean into insinto exeinto docinto insopts diropts exeopts libopts abort_handler abort_compile abort_test abort_install dyn_compile dyn_test dyn_install dyn_preinst dyn_help debug-print debug-print-function debug-print-section inherit EXPORT_FUNCTIONS newdepend newrdepend newpdepend do_newdepend remove_path_entry killparent save_ebuild_env filter_readonly_variables preprocess_ebuild_env source_all_bashrcs ebuild_phase ebuild_phase_with_hooks; unset BAD BRACKET BUILD_PREFIX COLS DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR EBUILD_EXIT_STATUS_FILE EBUILD_MASTER_PID ECLASSDIR ECLASS_DEPTH ENDCOL FAKEROOTKEY GOOD HILITE HOME IMAGE LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX NORMAL PATH PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR PORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC PORTAGE_BINPKG_TMPFILE PORTAGE_BUILDDIR PORTAGE_COLORMAP PORTAGE_CONFIGROOT PORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_GID PORTAGE_INST_GID PORTAGE_INST_UID PORTAGE_LOG_FILE PORTAGE_MASTER_PID PORTAGE_REPO_NAME PORTAGE_RESTRICT PORTAGE_WORKDIR_MODE PORTDIR PORTDIR_OVERLAY ${!PORTAGE_SANDBOX_*} PREROOTPATH PROFILE_PATHS PWORKDIR QA_INTERCEPTORS RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION READONLY_EBUILD_METADATA READONLY_PORTAGE_VARS ROOT ROOTPATH RPMDIR STARTDIR TMP TMPDIR USE_EXPAND WARN XARGS _RC_GET_KV_CACHE; set; export ) } seq () { local p=$(type -P seq); case $# in 1) min=1 max=$1 step=1 ;; 2) min=$1 max=$2 step=1 ;; 3) min=$1 max=$3 step=$2 ;; *) diefunc "$FUNCNAME" "$LINENO" "$?" "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 } server_based_install () { use xprint && xprint_src_install; if ! use xorg; then rm "${D}"/usr/share/man/man1/Xserver.1x "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc "${D}"/usr/share/man/man1/Xserver.1x; fi } set_colors () { COLS=${COLUMNS:-0}; (( COLS == 0 )) && COLS=$(set -- $(stty size 2>/dev/null) ; echo $2); (( COLS > 0 )) || (( COLS = 80 )); COLS=$((${COLS} - 8)); [ "${TERM}" = "cons25" ] && COLS=$((${COLS} - 1)); ENDCOL='['${COLS}'C'; if [ -n "${PORTAGE_COLORMAP}" ]; then eval ${PORTAGE_COLORMAP}; else GOOD=''; WARN=''; BAD=''; HILITE=''; BRACKET=''; fi; NORMAL='' } 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"; 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"; ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -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 -D*"; export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks"; return 0 } setup_fonts () { if [[ ! -n "${FONT_DIR}" ]]; then msg="FONT_DIR is empty. The ebuild should set it to at least one subdir of /usr/share/fonts."; eerror "${msg}"; diefunc "$FUNCNAME" "$LINENO" "$?" "${msg}"; fi; create_fonts_scale; create_fonts_dir; fix_font_permissions; create_font_cache } source_all_bashrcs () { local OCC="${CC}" OCXX="${CXX}"; [ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}"; IFS=' '; local x; for x in ${PROFILE_PATHS}; do unset IFS; [ -f "${x}/profile.bashrc" ] && qa_source "${x}/profile.bashrc"; done; if [ "${old_IFS:-unset}" != "unset" ]; then IFS="${old_IFS}"; unset old_IFS; else unset IFS; fi; if [ -f "${PORTAGE_BASHRC}" ]; then if [ "$PORTAGE_DEBUG" != "1" ] || [ "${-/x/}" != "$-" ]; then source "${PORTAGE_BASHRC}"; else set -x; source "${PORTAGE_BASHRC}"; set +x; fi; fi; [ ! -z "${OCC}" ] && export CC="${OCC}"; [ ! -z "${OCXX}" ] && export CXX="${OCXX}" } src_compile () { x-modular_src_compile $@ } src_install () { x-modular_src_install; dynamic_libgl_install; server_based_install; insinto /usr/share/xorg; doins hw/xfree86/common/{extra,vesa}modes || diefunc "$FUNCNAME" "$LINENO" "$?" "couldn't install extra modes"; if ! use minimal && use xorg; then insinto /etc/X11; doins hw/xfree86/xorg.conf.example || diefunc "$FUNCNAME" "$LINENO" "$?" "couldn't install xorg.conf.example"; fi } src_test () { if emake -j1 check -n >&/dev/null; then vecho ">>> Test phase [check]: ${CATEGORY}/${PF}"; if ! emake -j1 check; then hasq test $FEATURES && diefunc "$FUNCNAME" "$LINENO" "$?" "Make check failed. See above for details."; hasq test $FEATURES || eerror "Make check failed. See above for details."; fi; else if emake -j1 test -n >&/dev/null; then vecho ">>> Test phase [test]: ${CATEGORY}/${PF}"; if ! emake -j1 test; then hasq test $FEATURES && diefunc "$FUNCNAME" "$LINENO" "$?" "Make test failed. See above for details."; hasq test $FEATURES || eerror "Make test failed. See above for details."; fi; else vecho ">>> Test phase [none]: ${CATEGORY}/${PF}"; fi; fi } src_unpack () { x-modular_specs_check; x-modular_dri_check; x-modular_unpack_source; x-modular_patch_source; if use kdrive; then kdrive_setup; fi; if [[ ${SNAPSHOT} != "yes" ]]; then if use kdrive; then eautoreconf; fi; fi; x-modular_reconf_source; if use xprint; then sed -e "s:install-data-am\: install-dist_xpcDATA:install-data-am\::g" -i "${S}"/hw/xprint/etc/Xsession.d/Makefile.in || diefunc "$FUNCNAME" "$LINENO" "$?" "sed of Xsession.d makefile failed"; fi } strip-flags () { local x y flag NEW_CFLAGS NEW_CXXFLAGS; setup-allowed-flags; local NEW_CFLAGS=""; local NEW_CXXFLAGS=""; 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; 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; set +f; export CFLAGS="${NEW_CFLAGS}"; export CXXFLAGS="${NEW_CXXFLAGS}"; 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}) } strip_duplicate_slashes () { if [[ -n $1 ]]; then local removed=$1; while [[ ${removed} == *//* ]]; do removed=${removed//\/\///}; done; echo ${removed}; fi } switch_opengl_implem () { echo; eselect opengl set ${OLD_IMPLEM} } 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 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-getF90 () { tc-getPROG F90 gfortran "$@" } tc-getFORTRAN () { tc-getPROG FORTRAN gfortran "$@" } tc-getGCJ () { tc-getPROG GCJ gcj "$@" } tc-getLD () { tc-getPROG LD ld "$@" } tc-getNM () { tc-getPROG NM nm "$@" } tc-getPROG () { local var=$1; local prog=$2; if [[ -n ${!var} ]]; then echo "${!var}"; return 0; fi; local search=; [[ -n $3 ]] && search=$(type -p "$3-${prog}"); [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}"); [[ -n ${search} ]] && prog=${search##*/}; export ${var}=${prog}; echo "${!var}" } tc-getRANLIB () { tc-getPROG RANLIB ranlib "$@" } tc-getSTRIP () { tc-getPROG STRIP strip "$@" } tc-is-cross-compiler () { return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]]) } tc-is-softfloat () { case ${CTARGET} in bfin* | h8300*) echo "only" ;; *) [[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no" ;; esac } tc-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*) ninj i386 x86 ;; 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*) ninj x86_64 amd64 ;; *) echo unknown ;; esac } test-flag-CC () { test-flag-PROG "CC" "$1" } test-flag-CXX () { test-flag-PROG "CXX" "$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-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 } uclibctoolize () { ewarn "uclibctoolize() is deprecated, please just use elibtoolize()!"; elibtoolize } unpack () { local srcdir; local x; local y; local myfail; local tar_opts=""; [ -z "$*" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "Nothing passed to the 'unpack' command"; for x in "$@"; do vecho ">>> Unpacking ${x} to ${PWD}"; y=${x%.*}; y=${y##*.}; if [[ ${x} == "./"* ]]; then srcdir=""; else if [[ ${x} == ${DISTDIR%/}/* ]]; then diefunc "$FUNCNAME" "$LINENO" "$?" "Arguments to unpack() cannot begin with \${DISTDIR}."; else if [[ ${x} == "/"* ]]; then diefunc "$FUNCNAME" "$LINENO" "$?" "Arguments to unpack() cannot be absolute"; else srcdir="${DISTDIR}/"; fi; fi; fi; [[ ! -s ${srcdir}${x} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "${x} does not exist"; myfail="failure unpacking ${x}"; case "${x##*.}" in tar) tar xof "${srcdir}${x}" ${tar_opts} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; tgz) tar xozf "${srcdir}${x}" ${tar_opts} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; tbz | tbz2) bzip2 -dc "${srcdir}${x}" | tar xof - ${tar_opts}; _pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus" "$myfail" ;; ZIP | zip | jar) unzip -qo "${srcdir}${x}" || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; gz | Z | z) if [ "${y}" == "tar" ]; then tar zoxf "${srcdir}${x}" ${tar_opts} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; else gzip -dc "${srcdir}${x}" > ${x%.*} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; fi ;; bz2 | bz) if [ "${y}" == "tar" ]; then bzip2 -dc "${srcdir}${x}" | tar xof - ${tar_opts}; _pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus" "$myfail"; else bzip2 -dc "${srcdir}${x}" > ${x%.*} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; fi ;; 7Z | 7z) local my_output; my_output="$(7z x -y "${srcdir}${x}")"; if [ $? -ne 0 ]; then echo "${my_output}" 1>&2; diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; fi ;; RAR | rar) unrar x -idq -o+ "${srcdir}${x}" || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; LHa | LHA | lha | lzh) lha xfq "${srcdir}${x}" || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; a | deb) ar x "${srcdir}${x}" || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" ;; lzma) if [ "${y}" == "tar" ]; then lzma -dc "${srcdir}${x}" | tar xof - ${tar_opts}; _pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus" "$myfail"; else lzma -dc "${srcdir}${x}" > ${x%.*} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; fi ;; *) vecho "unpack ${x}: file format not recognized. Ignoring." ;; esac; done; find . -mindepth 1 -maxdepth 1 ! -type l -print0 | ${XARGS} -0 chmod -fR a+rX,u+w,g-w,o-w } unpack_makeself () { local src_input=${1:-${A}}; local src=$(find_unpackable_file "${src_input}"); local skip=$2; local exe=$3; [[ -z ${src} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "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."; diefunc "$FUNCNAME" "$LINENO" "$?" "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}'" ;; *) diefunc "$FUNCNAME" "$LINENO" "$?" "makeself cant handle exe '${exe}'" ;; esac; local tmpfile=$(emktemp); eval ${exe} 2> /dev/null | head -c 512 > "${tmpfile}"; local filetype=$(file -b "${tmpfile}"); case ${filetype} in *tar\ archive*) eval ${exe} | tar --no-same-owner -xf - ;; bzip2*) eval ${exe} | bzip2 -dc | tar --no-same-owner -xf - ;; gzip*) eval ${exe} | tar --no-same-owner -xzf - ;; compress*) eval ${exe} | gunzip | tar --no-same-owner -xf - ;; *) eerror "Unknown filetype \"${filetype}\" ?"; false ;; esac; _pipestatus="${PIPESTATUS[*]}"; [[ "${_pipestatus// /}" -eq 0 ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus" "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})" } unpack_pdv () { local src=$(find_unpackable_file "$1"); local sizeoff_t=$2; [[ -z ${src} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Could not locate source for '$1'"; [[ -z ${sizeoff_t} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "No idea what off_t size was used for this pdv :("; local shrtsrc=$(basename "${src}"); echo ">>> Unpacking ${shrtsrc} to ${PWD}"; local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\"); local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\"); local metafile=$(emktemp); tail -c +$((${metaskip}+1)) "${src}" > "${metafile}"; local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1); datafile=$(basename "${datafile}"); local tmpfile=$(emktemp); tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > ${tmpfile}; local iscompressed=$(file -b "${tmpfile}"); if [[ ${iscompressed:0:8} == "compress" ]]; then iscompressed=1; mv ${tmpfile}{,.Z}; gunzip ${tmpfile}; else iscompressed=0; fi; local istar=$(file -b "${tmpfile}"); if [[ ${istar:0:9} == "POSIX tar" ]]; then istar=1; else istar=0; fi; if [ ${iscompressed} -eq 1 ]; then if [ ${istar} -eq 1 ]; then tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -; else tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile}; fi; else if [ ${istar} -eq 1 ]; then tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -; else tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile}; fi; fi; true } unset_colors () { COLS="25 80"; ENDCOL=; GOOD=; WARN=; BAD=; NORMAL=; HILITE=; BRACKET= } use () { useq ${1} } use_enable () { if [ -z "$1" ]; then echo "!!! use_enable() called without a parameter." 1>&2; echo "!!! use_enable [ [value]]" 1>&2; return 1; fi; local UE_SUFFIX=""; if [ ! -z "${3}" ]; then UE_SUFFIX="=${3}"; fi; local UWORD="$2"; if [ -z "${UWORD}" ]; then UWORD="$1"; fi; if useq $1; then echo "--enable-${UWORD}${UE_SUFFIX}"; else echo "--disable-${UWORD}"; fi; return 0 } use_with () { if [ -z "$1" ]; then echo "!!! use_with() called without a parameter." 1>&2; echo "!!! use_with [ [value]]" 1>&2; return 1; fi; local UW_SUFFIX=""; if [ ! -z "${3}" ]; then UW_SUFFIX="=${3}"; fi; local UWORD="$2"; if [ -z "${UWORD}" ]; then UWORD="$1"; fi; if useq $1; then echo "--with-${UWORD}${UW_SUFFIX}"; else echo "--without-${UWORD}"; fi; return 0 } useq () { local u=$1; local found=0; if [[ ${u:0:1} == "!" ]]; then u=${u:1}; found=1; fi; if ! hasq "${u}" ${IUSE} ${E_IUSE} && ! hasq "+${u}" ${IUSE} ${E_IUSE} && ! hasq "-${u}" ${IUSE} ${E_IUSE} && ! hasq "${u}" ${PORTAGE_ARCHLIST} selinux && [[ ${u} != arch_* ]] && [[ ${u} != elibc_* ]] && [[ ${u} != kernel_* ]] && [[ ${u} != userland_* ]]; then eqawarn "QA Notice: USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}"; fi; if hasq ${u} ${USE}; then return ${found}; else return $((!found)); fi } usev () { if useq ${1}; then echo "${1}"; return 0; fi; return 1 } validate_desktop_entries () { if [[ -x /usr/bin/desktop-file-validate ]]; then einfo "Checking desktop entry validity"; local directories=""; for d in /usr/share/applications $@; do [[ -d ${D}${d} ]] && directories="${directories} ${D}${d}"; done; if [[ -n ${directories} ]]; then for FILE in $(find ${directories} -name "*\.desktop" -not -path '*.hidden*' | sort -u 2>/dev/null); do local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | sed -e "s|error: ||" -e "s|${FILE}:|--|g" ); [[ -n $temp ]] && elog ${temp/--/${FILE/${D}/}:}; done; fi; echo ""; else einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo."; fi } vecho () { quiet_mode || echo "$@" } x-modular_debug_setup () { if [[ -n "${DEBUGGABLE}" ]]; then if use debug; then strip-flags; append-flags -g; fi; fi } x-modular_dri_check () { if [[ -n "${DRIVER}" ]]; then if has dri ${IUSE} && use dri; then einfo "Checking for direct rendering capabilities ..."; if ! built_with_use x11-base/xorg-server dri; then diefunc "$FUNCNAME" "$LINENO" "$?" "You must build x11-base/xorg-server with USE=dri."; fi; fi; fi } x-modular_font_configure () { if [[ -n "${FONT}" ]]; then if ! use nls; then FONT_OPTIONS="${FONT_OPTIONS} --disable-iso8859-2 --disable-iso8859-3 --disable-iso8859-4 --disable-iso8859-5 --disable-iso8859-6 --disable-iso8859-7 --disable-iso8859-8 --disable-iso8859-9 --disable-iso8859-10 --disable-iso8859-11 --disable-iso8859-12 --disable-iso8859-13 --disable-iso8859-14 --disable-iso8859-15 --disable-iso8859-16 --disable-jisx0201 --disable-koi8-r"; fi; fi } x-modular_patch_source () { if [[ -z "${EPATCH_SUFFIX}" ]]; then EPATCH_SUFFIX="patch"; fi; if [[ -n "${DRIVER}" ]] && [[ "${SNAPSHOT}" != "yes" ]] && [[ ${XDPVER} != -1 ]]; then PATCHES="${PATCHES} ${DISTDIR}/x11-driver-patches-${XDPVER}.tar.bz2"; fi; if [[ -n "${PATCHES}" ]]; then for PATCH in ${PATCHES}; do epatch ${PATCH}; done; else if [[ -n "${PATCH_LOC}" ]]; then epatch ${PATCH_LOC}; else if [[ -d "${EPATCH_SOURCE}" ]]; then epatch; fi; fi; fi } x-modular_pkg_postinst () { if [[ -n "${FONT}" ]]; then setup_fonts; fi } x-modular_pkg_postrm () { if [[ -n "${FONT}" ]]; then cleanup_fonts; font_pkg_postrm; fi } x-modular_pkg_preinst () { : } x-modular_reconf_source () { if [[ "${SNAPSHOT}" = "yes" ]]; then if [ -f "./configure.ac" ]; then eautoreconf; fi; fi; elibtoolize } x-modular_server_supports_drivers_check () { if [[ -n "${DRIVER}" ]]; then if has_version '>=x11-base/xorg-server-1.1'; then if ! built_with_use x11-base/xorg-server xorg; then eerror "x11-base/xorg-server is not built with support for external drivers."; diefunc "$FUNCNAME" "$LINENO" "$?" "You must build x11-base/xorg-server with USE=xorg."; fi; fi; fi } x-modular_specs_check () { if [[ ${PN:0:11} = "xorg-server" ]] || [[ -n "${DRIVER}" ]]; then append-ldflags -Wl,-z,lazy; filter-ldflags -Wl,-z,now; fi } x-modular_src_compile () { x-modular_src_configure; x-modular_src_make } x-modular_src_configure () { x-modular_font_configure; x-modular_debug_setup; if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then econf --prefix=${XDIR} --datadir=${XDIR}/share ${FONT_OPTIONS} ${DRIVER_OPTIONS} ${CONFIGURE_OPTIONS}; fi } x-modular_src_install () { make DESTDIR="${D}" install; if [[ -n ${GIT_ECLASS} ]]; then pushd "${EGIT_STORE_DIR}/${EGIT_CLONE_DIR}"; git log ${GIT_TREE} > "${S}"/ChangeLog; popd; fi; if [[ -e ${S}/ChangeLog ]]; then dodoc ${S}/ChangeLog; fi; prepalldocs; if [[ -e ${D}/usr/$(get_libdir)/xorg/modules ]]; then find ${D}/usr/$(get_libdir)/xorg/modules -name '*.la' | xargs rm -f; fi; if [[ -n "${FONT}" ]]; then remove_font_metadata; fi; if [[ -n "${DRIVER}" ]]; then install_driver_hwdata; fi } x-modular_src_make () { emake || diefunc "$FUNCNAME" "$LINENO" "$?" "emake failed" } x-modular_src_unpack () { x-modular_specs_check; x-modular_server_supports_drivers_check; x-modular_dri_check; x-modular_unpack_source; x-modular_patch_source; x-modular_reconf_source } x-modular_unpack_source () { if [[ -n ${GIT_ECLASS} ]]; then git_src_unpack; else unpack ${A}; fi; cd ${S}; if [[ -n ${FONT_OPTIONS} ]]; then einfo "Detected font directory: ${FONT_DIR}"; fi } xprint_src_install () { exeinto /usr/$(get_libdir)/misc; doexe "${S}"/hw/xprint/etc/init.d/xprint; newinitd "${FILESDIR}"/xprint.init xprint; insinto /etc/profile.d; doins "${S}"/hw/xprint/etc/profile.d/xprint*; insinto /etc/X11/xinit/xinitrc.d; doins "${S}"/hw/xprint/etc/Xsession.d/92xprint-xpserverlist; sed -e "s:/bin/sh.*get_xpserverlist:/usr/$(get_libdir)/misc/xprint get_xpserverlist:g" -i "${D}"/etc/profile.d/xprint* "${D}"/etc/X11/xinit/xinitrc.d/92xprint-xpserverlist; dodoc "${D}"/etc/profile.d/xprint*; rm -f "${D}"/etc/profile.d/xprint* } declare -x A="xorg-server-1.3.0.0.tar.bz2 MesaLib-6.5.2.tar.bz2" declare -x AA="xorg-server-1.3.0.0.tar.bz2 MesaLib-6.5.2.tar.bz2" declare -x ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" declare -x 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" 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="x86" declare -x BOOTLEVEL="boot" declare -x BUILD_PREFIX="/var/tmp/portage" declare -x CATEGORY="x11-base" declare -x CBUILD="i686-pc-linux-gnu" declare -x CCACHE_DIR="/var/tmp/ccache" declare -x CDEFINE_default="__unix__" declare -x CFLAGS="-O2 -march=athlon-mp -pipe" declare -x CFLAGS_default declare -x CHOST="i686-pc-linux-gnu" declare -x CHOST_default="i686-pc-linux-gnu" declare -x CLASSPATH="." declare -x COLORFGBG="7;default;0" declare -x COLORTERM="Eterm" declare -x COLORTERM_BCE="Eterm" declare -x CONSOLE="/dev/console" declare -x CONSOLETYPE="vt" declare -x CRITICAL_SERVICES="checkroot modules checkfs localmount clock bootmisc" declare -x CTARGET_default="i686-pc-linux-gnu" declare -x CVS_RSH="ssh" declare -x CXXFLAGS="-O2 -march=athlon-mp -pipe" declare -rx D="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/image/" declare -x DCCC_PATH="/usr/lib/distcc/bin" declare -x DEBUGBUILD="1" declare -x DEFAULTLEVEL="default" declare -x DEFAULT_ABI="default" declare -x DESKTOP="Enlightenment-0.17.0" declare -x DESTTREE="/usr" declare -x DIROPTIONS="-m0755" declare -x DISPLAY=":0.0" declare -x DISTCC_LOG="" declare -x DISTCC_VERBOSE="0" declare -x DISTDIR="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/distdir" declare -rx EBUILD="/usr/portage/x11-base/xorg-server/xorg-server-1.3.0.0-r2.ebuild" declare -x EBUILD_EXIT_STATUS_FILE="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/.exit_status" declare -rx EBUILD_PHASE="setup" declare -x ECLASSDIR="/usr/portage/eclass" declare -ix ECLASS_DEPTH="0" declare -x EDITOR="/usr/bin/vim" declare -x ELIBC="glibc" declare -rx EMERGE_FROM="ebuild" declare -x ETERM_THEME_ROOT="/usr/share/Eterm/themes/Eterm" declare -x ETERM_USER_ROOT="/home/dhp/.Eterm/themes/Eterm" declare -x ETERM_VERSION="0.9.4" declare -x EXEOPTIONS="-m0755" declare -x E_IPC_SOCKET="/tmp/enlightenment-dhp/disp-:0.0-8654" declare -x E_RESTART="1" declare -x E_START="/usr/bin/enlightenment_start" declare -x E_START_TIME="1197706042.2" declare -x FEATURES="ccache distlocks fixpackages metadata-transfer nostrip parallel-fetch sandbox sfperms splitdebug strict unmerge-orphans userfetch" declare -rx FILESDIR="/usr/portage/x11-base/xorg-server/files" declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.1.7-r2/html" declare -x GCC_SPECS="" declare -x GDK_USE_XFT="1" declare -x GENERATION="2" declare -x GUILE_LOAD_PATH="/usr/share/guile/1.8" declare -x HOME="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/homedir" declare -rx INHERITED="toolchain-funcs portability flag-o-matic multilib x-modular libtool autotools eutils" declare -x INIT_VERSION="sysvinit-2.86" declare -x INPUT_DEVICES="evdev keyboard mouse synaptics wacom _penmount mutouch" declare -x INSDESTTREE="" declare -x INSOPTIONS="-m0644" declare -rx IUSE=" video_cards_apm video_cards_ark video_cards_chips video_cards_cirrus video_cards_cyrix video_cards_dummy video_cards_epson video_cards_fbdev video_cards_glint video_cards_i128 video_cards_i740 video_cards_i810 video_cards_impact video_cards_imstt video_cards_mach64 video_cards_mga video_cards_neomagic video_cards_newport video_cards_nsc video_cards_nv video_cards_r128 video_cards_radeon video_cards_rendition video_cards_s3 video_cards_s3virge video_cards_savage video_cards_siliconmotion video_cards_sis video_cards_sisusb video_cards_sunbw2 video_cards_suncg14 video_cards_suncg3 video_cards_suncg6 video_cards_sunffb video_cards_sunleo video_cards_suntcx video_cards_tdfx video_cards_tga video_cards_trident video_cards_tseng video_cards_v4l video_cards_vesa video_cards_vga video_cards_via video_cards_vmware video_cards_voodoo video_cards_fglrx video_cards_nvidia input_devices_acecad input_devices_aiptek input_devices_calcomp input_devices_citron input_devices_digitaledge input_devices_dmc input_devices_dynapro input_devices_elo2300 input_devices_elographics input_devices_evdev input_devices_fpit input_devices_hyperpen input_devices_jamstudio input_devices_joystick input_devices_keyboard input_devices_magellan input_devices_microtouch input_devices_mouse input_devices_mutouch input_devices_palmax input_devices_penmount input_devices_spaceorb input_devices_summa input_devices_tek4957 input_devices_ur98 input_devices_vmmouse input_devices_void input_devices_synaptics input_devices_wacom dmx kdrive xorg 3dfx dri ipv6 minimal nptl sdl xprint debug" declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac" declare -x JAVA_HOME="/etc/java-config-2/current-system-vm" declare -x JDK_HOME="/etc/java-config-2/current-system-vm" declare -x KDEDIRS="/usr:/usr/local:/usr/kde/3.5" declare -x KERNEL="linux" declare -x KERNEL_ABI="default" declare -x KV="2.6.23-gentoo-r3" declare -x LADSPA_PATH="/usr/lib/ladspa" declare -x LANG="en_GB.ISO-8859-15" declare -x LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" declare -x LC_ALL="en_GB.ISO-8859-15" declare -x LDFLAGS_default declare -x LESS="-R -M --shift 5" declare -x LESSOPEN="|lesspipe.sh %s" declare -x LIBDIR_default="lib" declare -x LIBOPTIONS="-m0644" declare -x LINGUAS="en fr en_GB fr_FR en_US" declare -x LIRC_DEVICES="usbirboy com1 com2 userspace" declare -x LOGNAME="root" declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:" declare -x LYNX_CFG="/home/dhp/.lynx.cfg" declare -x MAKEOPTS="-j2" declare -x MOPREFIX="xorg-server" declare -x MULTILIB_ABIS="default" declare -x OLDPWD declare -x OLDSOFTLEVEL="boot" declare -x OPENGL_PROFILE="xorg-x11" declare -x P="xorg-server-1.3.0.0" declare -x PAGER="/usr/bin/less" declare -x PANTS="ON" declare -x PATH="/usr/lib/ccache/bin:/usr/local/sbin:/sbin:/usr/sbin:/usr/lib/portage/bin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.16/bin:/opt/sun-jdk-1.4.2.16/jre/bin:/opt/sun-jdk-1.4.2.16/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin" declare -x PF="xorg-server-1.3.0.0-r2" declare -x PKGDIR="/tmp" declare -x PKGUSE="" declare -x PKG_CONFIG_PATH="/usr/qt/3/lib/pkgconfig" declare -x PKG_LOGDIR="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp/logging" declare -x PKG_TMPDIR="/var/tmp/binpkgs" declare -x PN="xorg-server" declare -x PORTAGE_ACTUAL_DISTDIR="/usr/portage/distfiles" declare -x PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64 alpha ppc-macos hppa sparc-fbsd" declare -x PORTAGE_BASHRC="/etc/portage/bashrc" declare -rx PORTAGE_BIN_PATH="/usr/lib/portage/bin" declare -x PORTAGE_BUILDDIR="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2" declare -x PORTAGE_COLORMAP="GOOD=\$'' WARN=\$'' BAD=\$'' HILITE=\$'' BRACKET=\$''" declare -x PORTAGE_CONFIGROOT="/" declare -x PORTAGE_DEBUG="0" declare -x PORTAGE_DEPCACHEDIR="/var/cache/edb/dep" declare -x PORTAGE_GID="250" declare -x PORTAGE_INST_GID="0" declare -x PORTAGE_INST_UID="0" declare -x PORTAGE_LOG_FILE="/var/log/portage/x11-base:xorg-server-1.3.0.0-r2:20071215-172627.log" declare -x PORTAGE_MASTER_PID="27048" declare -rx PORTAGE_PYM_PATH="/usr/lib/portage/pym" declare -x PORTAGE_REPO_NAME="gentoo" declare -x PORTAGE_RESTRICT="" declare -rx PORTAGE_TMPDIR="/var/tmp" declare -x PORTAGE_TMPFS="/dev/shm" declare -x PORTAGE_WORKDIR_MODE="0700" declare -x PORTDIR="/usr/portage" declare -x PORTDIR_OVERLAY="/usr/portage/local/layman/enlightenment /usr/portage/local/layman/berkano /opt/doublehp/usr/portage /usr/portage/local/layman/enlightenment" declare -x PORT_ENOTICE_DIR="/var/enotice" declare -x PR="r2" declare -x PREVLEVEL="N" declare -x PROFILE_PATHS="/usr/portage/profiles/base /usr/portage/profiles/default-linux /usr/portage/profiles/default-linux/x86 /usr/portage/profiles/default-linux/x86/2006.1 /usr/portage/profiles/default-linux/x86/2006.1/desktop /etc/portage/profile /etc/portage/profile" declare -x PV="1.3.0.0" declare -x PVR="1.3.0.0-r2" declare -x PWD="/root" declare -x PYTHONDOCS="/usr/share/doc/python-docs-2.5.1/html/lib" declare -x PYTHONPATH="/usr/lib/portage/pym" declare -x QMAKESPEC="linux-g++" declare -x QTDIR="/usr/qt/3" declare -rx RESTRICT="" declare -x ROOT="/" declare -x ROOTPATH="/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.1.1:/usr/i686-pc-linux-gnu/gcc-bin/4.1.2:/opt/sun-jdk-1.4.2.16/bin:/opt/sun-jdk-1.4.2.16/jre/bin:/opt/sun-jdk-1.4.2.16/jre/javaws:/usr/kde/3.5/sbin:/usr/kde/3.5/bin:/usr/qt/3/bin" declare -x RPMDIR="/usr/portage/rpm" declare -x RSYNC_EXCLUDEFROM="/etc/portage/rsync_excludes" declare -x RUNLEVEL="3" declare -x S="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work/xorg-server-1.3.0.0" declare -x SANDBOX_LOG="x11-base_-_xorg-server-1.3.0.0-r2" declare -x SANDBOX_ON="0" declare -x SANDBOX_PREDICT=":/proc/self/maps:/dev/console:/dev/random:/usr/lib/portage/pym:/var/cache/edb/dep" declare -x SANDBOX_READ=":/dev/shm:/dev/stdin:/var/tmp:/var/tmp/ccache" declare -x SANDBOX_WRITE=":/dev/shm:/dev/stdout:/dev/stderr:/var/tmp:/var/tmp/ccache:/var/enotice:/var/enotice" declare -x SCHEME_LIBRARY_PATH="/usr/share/slib/" declare -x SHELL="/bin/bash" declare -x SHLVL="8" declare -rx SLOT="0" declare -x SOFTLEVEL="default" declare -x STAGE1_USE="nptl nptlonly unicode" declare -x STARTDIR="/root" declare -x SVCNAME="local" declare -rx T="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp" declare -x TERM="Eterm" declare -x TMP="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp" declare -x TMPDIR="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/temp" declare -x USE="3dfx 3dnow 3dnowext X Xaw3d ___directfb ___replytolist ___xcb a52 aac aalib accessibility ace acpi aiglx aim alsa alsa_cards_ali5451 alsa_cards_als4000 alsa_cards_atiixp alsa_cards_atiixp-modem alsa_cards_bt87x alsa_cards_ca0106 alsa_cards_cmipci alsa_cards_emu10k1 alsa_cards_emu10k1x alsa_cards_ens1370 alsa_cards_ens1371 alsa_cards_es1938 alsa_cards_es1968 alsa_cards_fm801 alsa_cards_hda-intel alsa_cards_intel8x0 alsa_cards_intel8x0m alsa_cards_maestro3 alsa_cards_trident alsa_cards_usb-audio alsa_cards_via82xx alsa_cards_via82xx-modem alsa_cards_ymfpci 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 amr amrnb amrwb amuled ao aoss apache2 apache2_modules_actions apache2_modules_alias apache2_modules_auth_basic apache2_modules_authn_alias apache2_modules_authn_anon 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_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_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_rewrite apache2_modules_setenvif apache2_modules_speling apache2_modules_status apache2_modules_unique_id apache2_modules_userdir apache2_modules_usertrack apache2_modules_vhost_alias apic asf audiofile autobuild avahi bash-completion berkdb bidi binfilter bitmap-fonts bl bluetooth bonjour bootsplash branding bzip2 cdda cddb cdio cdparanoia cdr cgi cjk cli cmov compress console cpio cpudetection cracklib crypt curl cx8 dbus de dg dga djvu dmi dmx doc dri dts dv dvb dvd dvdr dvdread dvi dynamic eds elibc_glibc emboss enca encode esd ethereal evo examples exif extrafilters fam fame fbcon ffmpeg fid firefox flac flash fortran fping fpu freetype ftp fxsr gadu gd gdbm ggi gif gnuplot gnutls gpm gs gstreamer gtk hal hddtemp httpd i8x0 ical icecast iconv icq id3tag idea idn ieee1394 imagemagick imap imlib input_devices__penmount input_devices_evdev input_devices_keyboard input_devices_mouse input_devices_mutouch input_devices_synaptics input_devices_wacom ipv6 irc isdnlog jabber jack javascript jpeg jpeg2k kernel_linux lame 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 libcaca libgcrypt libnotify linguas_en linguas_en_GB linguas_en_US linguas_fr linguas_fr_FR lirc lirc_devices_com1 lirc_devices_com2 lirc_devices_usbirboy lirc_devices_userspace listentcp live lj lm_sensors logrotate lua lzo mad matrox mca mce md5sum mdnsresponder-compat meanwhile midi mikmod mjpeg mmx mmxext mng modplug motif mozcalendar mozdom mp2 mp3 mp4 mpeg mplayer msn msr mtrr mtyhtv mudflap musepack musicbrainz nas ncurses nemesi network nls no-htdocs nptl nptlonly nsplugin offensive ogg openal opengl openmp oss pae pam pat pcre pdf perl pge php__ plotutils png pnm posix ppds pppd pse pse36 pvr python qq qt3 qt4 quicktime radio rar readline real reflection rpm rss rtc rtsp samba sasl screen sdl sensord sep server session silc skey skins sms sndfile speex spell spl srt sse ssl startup-notification stream subtitles suid svg svga swat symlink syscall syslog taglib tcpd teletext tga theora threads tiff tivo transmitter truetype truetype-fonts ts tsc twolame type1-fonts udev unicode urandom usb userland_GNU uuencode v4l v4l2 vcd vcdx vid video_cards__apm video_cards__chips video_cards__cirrus video_cards__i128 video_cards__i810 video_cards_fbdev video_cards_mga video_cards_nv video_cards_s3 video_cards_s3virge video_cards_sis video_cards_tdfx video_cards_tga video_cards_trident video_cards_v4l video_cards_vesa video_cards_vga video_cards_via vidix vim vim-syntax vlm vme vorbis win32codecs wma wmf wxwindows x264 x86 xanim xcomposite xinerama xorg xosd xpm xrandr xscreensaver xv xvid xvmc yahoo yv12 zeroconf zip zlib zoran" declare -x USER="root" declare -x USERLAND="GNU" declare -x USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND VIDEO_CARDS" declare -x VIDEO_CARDS="_apm _chips _cirrus fbdev _i810 _i128 mga nv s3 s3virge sis tga trident v4l vesa vga via tdfx" declare -x VMHANDLE="sun-jdk-1.4" declare -x WANT_AUTOCONF="2.5" declare -x WANT_AUTOMAKE="1.10" declare -x WINDOWID="48234560" declare -x WINDOWPATH="7" declare -rx WORKDIR="/var/tmp/portage/x11-base/xorg-server-1.3.0.0-r2/work" declare -x XARGS="xargs -r" declare -x XAUTHORITY="/root/.xauthU6ugYA" declare -x XDG_DATA_DIRS="/usr/share:/usr/kde/3.5/share:/usr/local/share" declare -x XDG_SESSION_COOKIE="" declare -x _E_DOCDESTTREE_="" declare -x _E_EXEDESTTREE_=""