Skip to content

Instantly share code, notes, and snippets.

Created May 27, 2012 10:19
Show Gist options
  • Save anonymous/2803191 to your computer and use it in GitHub Desktop.
Save anonymous/2803191 to your computer and use it in GitHub Desktop.
A=eiskaltdcpp-2.2.6.tar.xz
ABI=amd64
ACCEPT_LICENSE='GPL-2 GPL-3'
ALSA_CARDS=
ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol'
ANT_HOME=/usr/share/ant
APACHE2_MODULES='actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias'
ARCH=amd64
BAD=$'\E[31;01m'
BASE_EXPF='src_unpack src_compile src_install src_prepare src_configure'
BASH=/bin/bash
BASHOPTS=cmdhist:expand_aliases:extdebug:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASHPID=11815
BASH_ALIASES=()
BASH_ARGC=([0]="1" [1]="0" [2]="1" [3]="1" [4]="0" [5]="1" [6]="1")
BASH_ARGV=([0]="Sorry, but gcc-4.4 and earlier won't work." [1]="pkg_pretend" [2]="pkg_pretend" [3]="pretend" [4]="pretend")
BASH_CMDS=()
BASH_LINENO=([0]="95" [1]="85" [2]="201" [3]="218" [4]="969" [5]="687" [6]="0")
BASH_SOURCE=([0]="/usr/lib64/portage/bin/isolated-functions.sh" [1]="/usr/portage/net-p2p/eiskaltdcpp/eiskaltdcpp-2.2.6.ebuild" [2]="/usr/lib64/portage/bin/ebuild.sh" [3]="/usr/lib64/portage/bin/phase-functions.sh" [4]="/usr/lib64/portage/bin/phase-functions.sh" [5]="/usr/lib64/portage/bin/phase-functions.sh" [6]="/usr/lib64/portage/bin/ebuild.sh")
BASH_VERSINFO=([0]="4" [1]="2" [2]="20" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.20(1)-release'
BOOTSTRAP_USE='cxx unicode multilib'
BRACKET=$'\E[34;01m'
BUILD_PREFIX=/var/tmp/portage
CALLIGRA_FEATURES='kexi words flow plan sheets stage tables krita karbon braindump'
CAMERAS='adc65 agfa_cl20 aox ax203 barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 jl2005a kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 pccam300 pccam600 polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung sierra sipix_blink sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 st2205 stv0674 stv0680 sx330z template topfield toshiba_pdrm11'
CATEGORY=net-p2p
CBUILD=x86_64-pc-linux-gnu
CCACHE_DISABLE=1
CFLAGS='-O2 -march=core2 -mtune=core2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -mssse3 -mcx16 -msahf -mavx -mpclmul -mpopcnt'
CFLAGS_amd64=-m64
CFLAGS_x32=-mx32
CFLAGS_x86=-m32
CG_COMPILER_EXE=/usr/bin/cgc
CHOST=x86_64-pc-linux-gnu
CHOST_amd64=x86_64-pc-linux-gnu
CHOST_default=x86_64-pc-linux-gnu
CHOST_x32=x86_64-pc-linux-gnu
CHOST_x86=i686-pc-linux-gnu
CMAKE_BINARY=cmake
CMAKE_BUILD_TYPE=Gentoo
CMAKE_EXPF='src_compile src_test src_install src_configure'
CMAKE_MIN_VERSION=2.8.4
CMAKE_REMOVE_MODULES=yes
CMAKE_REMOVE_MODULES_LIST='FindBLAS FindLAPACK'
CMAKE_VERBOSE=ON
COLLECTD_PLUGINS='df interface irq load memory rrdtool swap syslog'
COLS=168
COLUMNS=168
CROSSCOMPILE_OPTS=
CTARGET_default=x86_64-pc-linux-gnu
CXXFLAGS='-O2 -march=core2 -mtune=core2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -mssse3 -mcx16 -msahf -mavx -mpclmul -mpopcnt'
D=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/image/
DEFAULT_ABI=amd64
DEFINED_PHASES=' compile configure install prepare pretend test unpack'
DEPEND=$'\n\tapp-arch/bzip2\n\t>=dev-libs/openssl-0.9.8\n\tsys-apps/attr\n\tsys-devel/gettext\n\tsys-libs/zlib\n\tvirtual/libiconv\n\tidn? ( net-dns/libidn )\n\tlua? ( >=dev-lang/lua-5.1 )\n\tpcre? ( >=dev-libs/libpcre-4.2 )\n\tupnp? ( >=net-libs/miniupnpc-1.6 )\n\tcli? (\n\t\t>=dev-lang/perl-5.10\n\t\tperl-core/Getopt-Long\n\t\tdev-perl/Data-Dump\n\t\tdev-perl/Term-ShellUI\n\t\tjson? ( dev-perl/JSON-RPC dev-perl/Data-Dump )\n\t\txmlrpc? ( dev-perl/RPC-XML )\n\t)\n\tdaemon? ( xmlrpc? ( >=dev-libs/xmlrpc-c-1.19.0[abyss,cxx] ) )\n\tgtk? (\n\t\tx11-libs/pango\n\t\tgtk3? ( x11-libs/gtk+:3 )\n\t\t!gtk3? ( >=x11-libs/gtk+-2.24:2 )\n\t\t>=dev-libs/glib-2.24:2\n\t\tx11-themes/hicolor-icon-theme\n\t\tgnome? ( gnome-base/libgnome )\n\t\tlibcanberra? ( media-libs/libcanberra )\n\t\tlibnotify? ( >=x11-libs/libnotify-0.4.1 )\n\t)\n\tqt4? (\n\t\t>=x11-libs/qt-gui-4.4.0:4[dbus?]\n\t\tjavascript? (\n\t\t\tx11-libs/qt-script\n\t\t\tx11-libs/qtscriptgenerator\n\t\t)\n\t\tspell? ( app-text/aspell )\n\t\tsqlite? ( x11-libs/qt-sql:4[sqlite] )\n\t)\n\n\t>=dev-libs/boost-1.34.1\n\tvirtual/pkgconfig\n >=dev-util/cmake-2.8.4 userland_GNU? ( >=sys-apps/findutils-4.4.0 )'
DESCRIPTION='Qt4 based client for DirectConnect and ADC protocols, based on DC++ library'
DESTTREE=/usr
DIROPTIONS=-m0755
DIRSTACK=()
DISPLAY=:0
DISTDIR=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/distdir
DOCS='AUTHORS ChangeLog.txt'
DRACUT_MODULES=plymouth
EAPI=4
EBUILD=/usr/portage/net-p2p/eiskaltdcpp/eiskaltdcpp-2.2.6.ebuild
EBUILD_MASTER_PID=11815
EBUILD_PHASE=pretend
EBUILD_SH_ARGS=pretend
ECLASSDIR=/usr/portage/eclass
ECLASS_DEPTH=0
ED=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/image/
ELIBC=glibc
EMERGE_FROM=ebuild
ENDCOL=$'\E[A\E[160C'
EPATCH_COMMON_OPTS='-g0 -E --no-backup-if-mismatch'
EPATCH_EXCLUDE=
EPATCH_FORCE=no
EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...'
EPATCH_OPTS=
EPATCH_SINGLE_MSG=
EPATCH_SOURCE=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/work/patch
EPATCH_SUFFIX=patch.bz2
EPREFIX=
EROOT=/
EUID=0
EXEOPTIONS=-m0755
FCFLAGS=
FEATURES='assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch'
FETCHCOMMAND_SSH='bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}"'
FFLAGS=
FILESDIR=/usr/portage/net-p2p/eiskaltdcpp/files
FUNCNAME=([0]="die" [1]="pkg_pretend" [2]="qa_call" [3]="ebuild_phase" [4]="dyn_pretend" [5]="ebuild_main" [6]="main")
GCC_SPECS=
GDK_USE_XFT=1
GOOD=$'\E[32;01m'
GPSD_PROTOCOLS='ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx'
GROUPS=()
GRUB_PLATFORMS=
GSETTINGS_BACKEND=gconf
GUILE_LOAD_PATH=/usr/share/guile/1.8
HG=/usr/bin/hg
HILITE=$'\E[36m'
HOME=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/homedir
HOMEPAGE=http://eiskaltdc.googlecode.com/
HOSTNAME=vordhosbn
HOSTTYPE=x86_64
IFS=$' \t\n'
INHERITED=' toolchain-funcs multilib user eutils flag-o-matic base cmake-utils'
INPUT_DEVICES=evdev
INSDESTTREE=
INSOPTIONS=-m0644
IUSE='cli daemon dbus +dht +emoticons examples -gnome -gtk -gtk3 idn -javascript json libcanberra libnotify lua +minimal pcre +qt4 sound spell sqlite upnp xmlrpc linguas_be linguas_bg linguas_cs linguas_de linguas_el linguas_en linguas_es linguas_fr linguas_hu linguas_it linguas_pl linguas_ru linguas_sk linguas_sr@latin linguas_uk '
JAVACC_HOME=/usr/share/javacc/
KERNEL=linux
KERNEL_ABI=amd64
KEYWORDS='~amd64 ~x86'
LADSPA_PATH=/usr/lib64/ladspa
LANG=ru_RU.UTF-8
LANGS='be bg cs de el en es fr hu it pl ru sk sr@latin uk'
LANGUAGE=
LAST_E_CMD=eerror
LCD_DEVICES=
LC_ALL=
LDFLAGS=-Wl,-O1,--hash-style=gnu,--as-needed
LDFLAGS_amd64='-m elf_x86_64'
LDFLAGS_x32='-m elf32_x86_64'
LDFLAGS_x86='-m elf_i386'
LESS='-R -M --shift 5'
LESSOPEN='|lesspipe %s'
LIBDIR_amd64=lib64
LIBDIR_amd64_fbsd=lib64
LIBDIR_default=lib
LIBDIR_n32=lib32
LIBDIR_n64=lib64
LIBDIR_o32=lib
LIBDIR_ppc=lib32
LIBDIR_ppc64=lib64
LIBDIR_s390=lib32
LIBDIR_s390x=lib64
LIBDIR_sparc32=lib32
LIBDIR_sparc64=lib64
LIBDIR_x32=libx32
LIBDIR_x86=lib32
LIBDIR_x86_fbsd=lib32
LIBOPTIONS=-m0644
LIBREOFFICE_EXTENSIONS='presenter-console presenter-minimizer'
LICENSE='GPL-2 GPL-3'
LINGUAS='ru en'
LOGNAME=root
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:'
MACHTYPE=x86_64-pc-linux-gnu
MAIL=/var/mail/root
MERGE_TYPE=source
MINICOM='-c on'
MOPREFIX=eiskaltdcpp
MULTILIB_ABIS='amd64 x86'
MULTILIB_STRICT_DENY='64-bit.*shared object'
MULTILIB_STRICT_DIRS='/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib'
MULTILIB_STRICT_EXEMPT='(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev)'
NETBEANS='apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml'
NORMAL=$'\E[0m'
OLDIFS=$' \t\n'
OLDPWD=/usr/portage/net-p2p/eiskaltdcpp
OPENCL_PROFILE=nvidia
OPENGL_PROFILE=xorg-x11
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
P=eiskaltdcpp-2.2.6
PATH=/usr/lib64/portage/bin/ebuild-helpers/4:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/arm-elf/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/opt/eagle-5.11.0/bin
PDEPEND=
PF=eiskaltdcpp-2.2.6
PHP_TARGETS=
PIPESTATUS=([0]="0")
PKGDIR=/usr/portage/packages
PKGUSE='dbus emoticons gtk kde libnotify qt4 spell examples javascript lua sounds upnp xmlrpc'
PKG_LOGDIR=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp/logging
PKG_TMPDIR=/var/tmp/portage/._unmerge_
PM_EBUILD_HOOK_DIR=/etc/portage/env
PN=eiskaltdcpp
PORTAGE_ACTUAL_DISTDIR=/usr/portage/distfiles
PORTAGE_ARCHLIST='ppc sparc64-freebsd ppc-openbsd x86-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd ppc64-linux x86-cygwin amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris m68k sh x86-solaris sparc-fbsd'
PORTAGE_BASHRC=/etc/portage/bashrc
PORTAGE_BASHRCS_SOURCED=1
PORTAGE_BIN_PATH=/usr/lib64/portage/bin
PORTAGE_BUILDDIR=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6
PORTAGE_BZIP2_COMMAND=bzip2
PORTAGE_COLORMAP=$'GOOD=$\'\E[32;01m\'\nWARN=$\'\E[33;01m\'\nBAD=$\'\E[31;01m\'\nHILITE=$\'\E[36m\'\nBRACKET=$\'\E[34;01m\''
PORTAGE_COMPRESS_EXCLUDE_SUFFIXES='css gif htm[l]? jp[e]?g js pdf png'
PORTAGE_CONFIGROOT=/
PORTAGE_DEPCACHEDIR=/var/cache/edb/dep
PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")
PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/eiskaltdcpp-2.2.6/html")
PORTAGE_FEATURES='assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch'
PORTAGE_GID=250
PORTAGE_INST_GID=0
PORTAGE_INST_UID=0
PORTAGE_IPC_DAEMON=1
PORTAGE_IUSE='^(3dfx|adabas|alpha|alsa\_cards\_aoa|alsa\_cards\_aoa\-fabric\-layout|alsa\_cards\_aoa\-onyx|alsa\_cards\_aoa\-soundbus|alsa\_cards\_aoa\-soundbus\-i2s|alsa\_cards\_aoa\-tas|alsa\_cards\_aoa\-toonie|alsa\_cards\_armaaci|alsa\_cards\_at91\-soc|alsa\_cards\_at91\-soc\-eti\-b1\-wm8731|alsa\_cards\_au1x00|alsa\_cards\_cs5535audio|alsa\_cards\_harmony|alsa\_cards\_powermac|alsa\_cards\_pxa2xx\-i2sound|alsa\_cards\_pxa2xx\-soc|alsa\_cards\_pxa2xx\-soc\-corgi|alsa\_cards\_pxa2xx\-soc\-poodle|alsa\_cards\_pxa2xx\-soc\-spitz|alsa\_cards\_pxa2xx\-soc\-tosa|alsa\_cards\_sa11xx\-uda1341ts|alsa\_cards\_sun\-amd7930|alsa\_cards\_sun\-cs4231|alsa\_cards\_sun\-dbri|altivec|amd64|amd64\-fbsd|amd64\-linux|aqua|arm|arm\-linux|ayatana|birdstep|bootstrap|build|capslib|cli|cmucl|consolekit|coreaudio|crosscompile\_opts\_.*|daemon|dbmaker|dbus|dht|drac|elibc\_AIX|elibc\_Darwin|elibc\_DragonFly|elibc\_FreeBSD|elibc\_HPUX|elibc\_Interix|elibc\_NetBSD|elibc\_OpenBSD|elibc\_SunOS|elibc\_.*|elibc\_glibc|elibc\_mintlib|elibc\_uclibc|emoticons|empress|empress\-bcs|esoob|examples|fdftk|filepro|firebird|fixed\-point|frontbase|gamess|gcc64|gluon|gnome|gtk|gtk3|gulm|hppa|hppa\-hpux|ia64|ia64\-hpux|ia64\-linux|ibm|idn|informix|ingres|iwmmxt|javascript|json|kdeprefix|kernel\_AIX|kernel\_Darwin|kernel\_FreeBSD|kernel\_HPUX|kernel\_Interix|kernel\_NetBSD|kernel\_OpenBSD|kernel\_SunOS|kernel\_.*|kernel\_freemint|kernel\_linux|kqueue|lcd\_devices\_svga|libcanberra|libnotify|linguas\_be|linguas\_bg|linguas\_cs|linguas\_de|linguas\_el|linguas\_en|linguas\_es|linguas\_fr|linguas\_hu|linguas\_it|linguas\_pl|linguas\_ru|linguas\_sk|linguas\_sr\@latin|linguas\_uk|lua|m68k|m68k\-mint|macbook|minimal|mips|multilib|n32|n64|neon|osp|packagekit|pam\_console|pbbuttonsd|pcre|pfpro|php\_targets\_php5\-2|policykit|ppc|ppc64|ppc64\-linux|ppc\-aix|ppc\-macos|ppc\-openbsd|ppcsha1|prefix|ps3|psyco|pvm|qt4|real|s390|selinux|sh|solid|sound|sparc|sparc64\-freebsd|sparc64\-solaris|sparc\-fbsd|sparc\-solaris|spell|sqlite|svga|sybase|sybase\-ct|tcb|tcc|test|uclibc|ultra1|upnp|userland\_BSD|userland\_GNU|userland\_.*|video\_cards\_geode|video\_cards\_i740|video\_cards\_impact|video\_cards\_newport|video\_cards\_nsc|video\_cards\_omap|video\_cards\_omapfb|video\_cards\_sunbw2|video\_cards\_suncg14|video\_cards\_suncg3|video\_cards\_suncg6|video\_cards\_sunffb|video\_cards\_sunleo|video\_cards\_suntcx|video\_cards\_voodoo|video\_cards\_xgi|vidix|vis|win32codecs|x64\-freebsd|x64\-macos|x64\-openbsd|x64\-solaris|x86|x86\-cygwin|x86\-fbsd|x86\-freebsd|x86\-interix|x86\-linux|x86\-macos|x86\-netbsd|x86\-openbsd|x86\-solaris|x86\-winnt|xmlrpc|yellownet)$'
PORTAGE_LOG_FILE=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp/build.log
PORTAGE_MUTABLE_FILTERED_VARS='AA HOSTNAME'
PORTAGE_OVERRIDE_EPREFIX=
PORTAGE_PYM_PATH=/usr/lib64/portage/pym
PORTAGE_PYTHON=/usr/bin/python2.7
PORTAGE_READONLY_METADATA=$'DEFINED_PHASES DEPEND DESCRIPTION\n\tEAPI HOMEPAGE INHERITED IUSE REQUIRED_USE KEYWORDS LICENSE\n\tPDEPEND PROVIDE RDEPEND REPOSITORY RESTRICT SLOT SRC_URI'
PORTAGE_READONLY_VARS=$'D EBUILD EBUILD_PHASE \tEBUILD_SH_ARGS ECLASSDIR EMERGE_FROM FILESDIR MERGE_TYPE \tPM_EBUILD_HOOK_DIR \tPORTAGE_ACTUAL_DISTDIR PORTAGE_ARCHLIST PORTAGE_BASHRC \tPORTAGE_BINPKG_FILE PORTAGE_BINPKG_TAR_OPTS PORTAGE_BINPKG_TMPFILE \tPORTAGE_BIN_PATH PORTAGE_BUILDDIR PORTAGE_BUNZIP2_COMMAND \tPORTAGE_BZIP2_COMMAND PORTAGE_COLORMAP PORTAGE_CONFIGROOT \tPORTAGE_DEBUG PORTAGE_DEPCACHEDIR PORTAGE_EBUILD_EXIT_FILE \tPORTAGE_GID PORTAGE_GRPNAME PORTAGE_INST_GID PORTAGE_INST_UID \tPORTAGE_IPC_DAEMON PORTAGE_IUSE PORTAGE_LOG_FILE \tPORTAGE_MUTABLE_FILTERED_VARS PORTAGE_OVERRIDE_EPREFIX \tPORTAGE_PYM_PATH PORTAGE_PYTHON \tPORTAGE_READONLY_METADATA PORTAGE_READONLY_VARS \tPORTAGE_REPO_NAME PORTAGE_RESTRICT \tPORTAGE_SAVED_READONLY_VARS PORTAGE_SIGPIPE_STATUS \tPORTAGE_TMPDIR PORTAGE_UPDATE_ENV PORTAGE_USERNAME \tPORTAGE_VERBOSE PORTAGE_WORKDIR_MODE PORTDIR PORTDIR_OVERLAY \tPROFILE_PATHS REPLACING_VERSIONS REPLACED_BY_VERSION T WORKDIR \t__PORTAGE_TEST_HARDLINK_LOCKS'
PORTAGE_REPO_NAME=gentoo
PORTAGE_RESTRICT=
PORTAGE_SAVED_READONLY_VARS='A CATEGORY P PF PN PR PV PVR'
PORTAGE_SIGPIPE_STATUS=141
PORTAGE_TMPDIR=/var/tmp
PORTAGE_VERBOSE=1
PORTAGE_WORKDIR_MODE=0700
PORTDIR=/usr/portage
PORTDIR_OVERLAY=
PPID=11714
PR=r0
PREFIX=/usr
PRELINK_PATH_MASK=/usr/lib64/klibc:/opt/eagle-5.11.0:/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so
PROFILE_ONLY_VARIABLES='ARCH ELIBC KERNEL USERLAND'
PROFILE_PATHS=$'/usr/portage/profiles/base\n/usr/portage/profiles/default/linux\n/usr/portage/profiles/arch/base\n/usr/portage/profiles/features/multilib\n/usr/portage/profiles/features/multilib/lib32\n/usr/portage/profiles/arch/amd64\n/usr/portage/profiles/default/linux/amd64\n/usr/portage/profiles/releases\n/usr/portage/profiles/releases/10.0\n/usr/portage/profiles/default/linux/amd64/10.0\n/usr/portage/profiles/targets/desktop\n/usr/portage/profiles/default/linux/amd64/10.0/desktop\n/usr/portage/profiles/targets/desktop\n/usr/portage/profiles/targets/desktop/kde\n/usr/portage/profiles/default/linux/amd64/10.0/desktop/kde\n/etc/portage/profile'
PROPERTIES=
PROVIDE=
PS4='+ '
PV=2.2.6
PVR=2.2.6
PWD=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6
PYTHONDOCS=/usr/share/doc/python-docs-2.7.1/html/library
PYTHONDOCS_2_5=/usr/share/doc/python-docs-2.5.4-r1/html
PYTHONDOCS_2_6=/usr/share/doc/python-docs-2.6.6/html/library
PYTHONDOCS_2_7=/usr/share/doc/python-docs-2.7.2/html/library
PYTHONDOCS_3_1=/usr/share/doc/python-docs-3.1.3/html/library
PYTHONDOCS_3_2=/usr/share/doc/python-docs-3.2.2/html/library
PYTHONDONTWRITEBYTECODE=1
PYTHON_TARGETS=python3_2
QT_GRAPHICSSYSTEM=raster
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins
RC_DEFAULT_INDENT=2
RC_DOT_PATTERN=
RC_ENDCOL=yes
RC_INDENTATION=
RDEPEND=$'\n\tapp-arch/bzip2\n\t>=dev-libs/openssl-0.9.8\n\tsys-apps/attr\n\tsys-devel/gettext\n\tsys-libs/zlib\n\tvirtual/libiconv\n\tidn? ( net-dns/libidn )\n\tlua? ( >=dev-lang/lua-5.1 )\n\tpcre? ( >=dev-libs/libpcre-4.2 )\n\tupnp? ( >=net-libs/miniupnpc-1.6 )\n\tcli? (\n\t\t>=dev-lang/perl-5.10\n\t\tperl-core/Getopt-Long\n\t\tdev-perl/Data-Dump\n\t\tdev-perl/Term-ShellUI\n\t\tjson? ( dev-perl/JSON-RPC dev-perl/Data-Dump )\n\t\txmlrpc? ( dev-perl/RPC-XML )\n\t)\n\tdaemon? ( xmlrpc? ( >=dev-libs/xmlrpc-c-1.19.0[abyss,cxx] ) )\n\tgtk? (\n\t\tx11-libs/pango\n\t\tgtk3? ( x11-libs/gtk+:3 )\n\t\t!gtk3? ( >=x11-libs/gtk+-2.24:2 )\n\t\t>=dev-libs/glib-2.24:2\n\t\tx11-themes/hicolor-icon-theme\n\t\tgnome? ( gnome-base/libgnome )\n\t\tlibcanberra? ( media-libs/libcanberra )\n\t\tlibnotify? ( >=x11-libs/libnotify-0.4.1 )\n\t)\n\tqt4? (\n\t\t>=x11-libs/qt-gui-4.4.0:4[dbus?]\n\t\tjavascript? (\n\t\t\tx11-libs/qt-script\n\t\t\tx11-libs/qtscriptgenerator\n\t\t)\n\t\tspell? ( app-text/aspell )\n\t\tsqlite? ( x11-libs/qt-sql:4[sqlite] )\n\t)\n '
REPLACING_VERSIONS=2.2.4
REQUIRED_USE=$'\n\tcli? ( ^^ ( json xmlrpc ) )\n\temoticons? ( || ( gtk qt4 ) )\n\tdbus? ( qt4 )\n\tgnome? ( gtk )\n\tgtk3? ( gtk )\n\tjavascript? ( qt4 )\n\tjson? ( !xmlrpc )\n\tlibcanberra? ( !gnome gtk )\n\tlibnotify? ( gtk )\n\tspell? ( qt4 )\n\tsound? ( || ( gtk qt4 ) )\n\tsqlite? ( qt4 )\n '
RESTRICT=
RESUMECOMMAND_SSH='bash -c "x=\${2#ssh://} ; host=\${x%%/*} ; port=\${host##*:} ; host=\${host%:*} ; [[ \${host} = \${port} ]] && port=22 ; exec rsync --rsh=\"ssh -p\${port}\" -avP \"\${host}:/\${x#*/}\" \"\$1\"" rsync "${DISTDIR}/${FILE}" "${URI}"'
ROOT=/
ROOTPATH=/opt/bin:/usr/x86_64-pc-linux-gnu/arm-elf/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/opt/eagle-5.11.0/bin
RPMDIR=/usr/portage/rpm
RUBY_TARGETS='ruby18 ruby19'
R_HOME=/usr/lib/R
S=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/work/eiskaltdcpp-2.2.6
SANDBOX_LOG=net-p2p_-_eiskaltdcpp-2.2.6
SANDBOX_ON=0
SANDBOX_READ=/:/var/tmp
SANDBOX_WRITE=/var/tmp
SANE_CONFIG_DIR=/etc/sane.d
SCVIM_DIR=/usr/share/vim/scvim
SGML_CATALOG_FILES=/etc/sgml/xml-simple-docbook-1.0.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-ent.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/xml-docbook-4.5.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/xml-docbook-4.2.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook-4.2.cat:/etc/sgml/xml-docbook-4.3.cat:/etc/sgml/sgml-docbook-4.1.cat:/etc/sgml/sgml-docbook-4.0.cat:/etc/sgml/xml-simple-docbook-4.1.2.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/sgml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.4.cat
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=3
SLOT=0
SRC_URI=http://eiskaltdc.googlecode.com/files/eiskaltdcpp-2.2.6.tar.xz
SSH_ASKPASS=/usr/bin/ssh-askpass-fullscreen
SUDO_COMMAND=/bin/bash
SUDO_GID=1000
SUDO_UID=1000
SUDO_USER=zerom
SYMLINK_LIB=yes
T=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp
TEMP=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp
TERM=xterm
TMP=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp
TMPDIR=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp
UID=0
USB_DEVFS_PATH=/dev/bus/usb
USE='amd64 cli consolekit dbus dht elibc_glibc emoticons examples gtk javascript kernel_linux libnotify linguas_en linguas_ru lua minimal multilib pcre policykit qt4 spell upnp userland_GNU xmlrpc'
USERLAND=GNU
USERNAME=root
USE_EXPAND='ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CROSSCOMPILE_OPTS CURL_SSL DRACUT_MODULES DVB_CARDS ELIBC FCDSL_CARDS FFTOOLS FOO2ZJS_DEVICES FRITZCAPI_CARDS GPSD_PROTOCOLS GRUB_PLATFORMS INPUT_DEVICES KERNEL LCD_DEVICES LIBREOFFICE_EXTENSIONS LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL OFED_DRIVERS OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PHP_TARGETS PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS XFCE_PLUGINS XTABLES_ADDONS'
VBOX_APP_HOME=/opt/VirtualBox
VCS_ECLASS=
VIDEO_CARDS=
WANT_CMAKE=always
WARN=$'\E[33;01m'
WORKDIR=/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/work
XARGS='xargs -r'
XDG_CONFIG_DIRS=/etc/xdg
XDG_DATA_DIRS=/usr/local/share:/usr/share
XDG_SESSION_COOKIE=c8a48c54cc04643cc96e93600000006a-1338030056.621950-1236308238
XTABLES_ADDONS='quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account'
_=']'
_E_DOCDESTTREE_=
_E_EXEDESTTREE_=
_RC_GET_KV_CACHE=
___ECLASS_ONCE_BASE='recur -_+^+_- spank'
___ECLASS_ONCE_EUTILS='recur -_+^+_- spank'
___ECLASS_ONCE_FLAG_O_MATIC='recur -_+^+_- spank'
___ECLASS_ONCE_MULTILIB='recur -_+^+_- spank'
___ECLASS_ONCE_TOOLCHAIN_FUNCS='recur -_+^+_- spank'
___ECLASS_ONCE_USER='recur -_+^+_- spank'
args=
filespacing=24
j=1
lineno=85
linespacing=3
main_index=6
n=0
phase_str=' (pretend phase)'
portdir_repo_name=gentoo
shopts=$'autocd \toff\ncdable_vars \toff\ncdspell \toff\ncheckhash \toff\ncheckjobs \toff\ncheckwinsize \toff\ncmdhist \ton\ncompat31 \toff\ncompat32 \toff\ncompat40 \toff\ncompat41 \toff\ndirspell \toff\ndotglob \toff\nexecfail \toff\nexpand_aliases \ton\nextdebug \ton\nextglob \toff\nextquote \ton\nfailglob \toff\nforce_fignore \ton\nglobstar \toff\ngnu_errfmt \toff\nhistappend \toff\nhistreedit \toff\nhistverify \toff\nhostcomplete \ton\nhuponexit \toff\ninteractive_comments\ton\nlastpipe \toff\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=eiskaltdcpp-2.2.6.ebuild
EXPORT_FUNCTIONS ()
{
if [ -z "$ECLASS" ]; then
die "EXPORT_FUNCTIONS without a defined ECLASS";
fi;
eval $__export_funcs_var+=\" $*\"
}
KV_major ()
{
[[ -z $1 ]] && return 1;
local KV=$@;
echo "${KV%%.*}"
}
KV_micro ()
{
[[ -z $1 ]] && return 1;
local KV=$@;
KV=${KV#*.*.};
echo "${KV%%[^[:digit:]]*}"
}
KV_minor ()
{
[[ -z $1 ]] && return 1;
local KV=$@;
KV=${KV#*.};
echo "${KV%%.*}"
}
KV_to_int ()
{
[[ -z $1 ]] && return 1;
local KV_MAJOR=$(KV_major "$1");
local KV_MINOR=$(KV_minor "$1");
local KV_MICRO=$(KV_micro "$1");
local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ));
if [[ ${KV_int} -ge 131584 ]]; then
echo "${KV_int}";
return 0;
fi;
return 1
}
_assert_pkg_ebuild_phase ()
{
case ${EBUILD_PHASE} in
setup | preinst | postinst)
;;
*)
eerror "'$1()' called from '${EBUILD_PHASE}' phase which is not OK:";
eerror "You may only call from pkg_{setup,preinst,postinst} functions.";
eerror "Package fails at QA and at life. Please file a bug.";
die "Bad package! $1 is only for use in some pkg_* functions!"
;;
esac
}
_check_build_dir ()
{
: ${CMAKE_USE_DIR:=${S}};
if [[ -n ${CMAKE_IN_SOURCE_BUILD} ]]; then
CMAKE_BUILD_DIR="${CMAKE_USE_DIR}";
else
: ${CMAKE_BUILD_DIR:=${WORKDIR}/${P}_build};
fi;
mkdir -p "${CMAKE_BUILD_DIR}";
echo ">>> Working in BUILD_DIR: \"$CMAKE_BUILD_DIR\""
}
_eapi0_pkg_nofetch ()
{
[ -z "${SRC_URI}" ] && return;
elog "The following are listed in SRC_URI for ${PN}:";
local x;
for x in $(echo ${SRC_URI});
do
elog " ${x}";
done
}
_eapi0_src_compile ()
{
if [ -x ./configure ]; then
econf;
fi;
_eapi2_src_compile
}
_eapi0_src_test ()
{
local emake_cmd="${MAKE:-make} ${MAKEOPTS} ${EXTRA_EMAKE}";
if $emake_cmd -j1 check -n &>/dev/null; then
vecho ">>> Test phase [check]: ${CATEGORY}/${PF}";
$emake_cmd -j1 check || die "Make check failed. See above for details.";
else
if $emake_cmd -j1 test -n &>/dev/null; then
vecho ">>> Test phase [test]: ${CATEGORY}/${PF}";
$emake_cmd -j1 test || die "Make test failed. See above for details.";
else
vecho ">>> Test phase [none]: ${CATEGORY}/${PF}";
fi;
fi
}
_eapi0_src_unpack ()
{
[[ -n ${A} ]] && unpack ${A}
}
_eapi1_src_compile ()
{
_eapi2_src_configure;
_eapi2_src_compile
}
_eapi2_src_compile ()
{
if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
emake || die "emake failed";
fi
}
_eapi2_src_configure ()
{
if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
econf;
fi
}
_eapi4_src_install ()
{
if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
emake DESTDIR="${D}" install;
fi;
if ! declare -p DOCS &>/dev/null; then
local d;
for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG;
do
[[ -s "${d}" ]] && dodoc "${d}";
done;
else
if [[ $(declare -p DOCS) == "declare -a "* ]]; then
dodoc "${DOCS[@]}";
else
dodoc ${DOCS};
fi;
fi
}
_ebuild_arg_to_phase ()
{
[ $# -ne 2 ] && die "expected exactly 2 args, got $#: $*";
local eapi=$1;
local arg=$2;
local phase_func="";
case "$arg" in
pretend)
! has $eapi 0 1 2 3 3_pre2 && phase_func=pkg_pretend
;;
setup)
phase_func=pkg_setup
;;
nofetch)
phase_func=pkg_nofetch
;;
unpack)
phase_func=src_unpack
;;
prepare)
! has $eapi 0 1 && phase_func=src_prepare
;;
configure)
! has $eapi 0 1 && phase_func=src_configure
;;
compile)
phase_func=src_compile
;;
test)
phase_func=src_test
;;
install)
phase_func=src_install
;;
preinst)
phase_func=pkg_preinst
;;
postinst)
phase_func=pkg_postinst
;;
prerm)
phase_func=pkg_prerm
;;
postrm)
phase_func=pkg_postrm
;;
esac;
[[ -z $phase_func ]] && return 1;
echo "$phase_func";
return 0
}
_ebuild_phase_funcs ()
{
[ $# -ne 2 ] && die "expected exactly 2 args, got $#: $*";
local eapi=$1;
local phase_func=$2;
local default_phases="pkg_nofetch src_unpack src_prepare src_configure
src_compile src_install src_test";
local x y default_func="";
for x in pkg_nofetch src_unpack src_test;
do
declare -F $x > /dev/null || eval "$x() { _eapi0_$x \"\$@\" ; }";
done;
case $eapi in
0 | 1)
if ! declare -F src_compile > /dev/null; then
case $eapi in
0)
function src_compile ()
{
_eapi0_src_compile "$@"
}
;;
*)
function src_compile ()
{
_eapi1_src_compile "$@"
}
;;
esac;
fi;
for x in $default_phases;
do
eval "default_$x() {
die \"default_$x() is not supported with EAPI='$eapi' during phase $phase_func\"
}";
done;
eval "default() {
die \"default() is not supported with EAPI='$eapi' during phase $phase_func\"
}"
;;
*)
declare -F src_configure > /dev/null || function src_configure ()
{
_eapi2_src_configure "$@"
};
declare -F src_compile > /dev/null || function src_compile ()
{
_eapi2_src_compile "$@"
};
has $eapi 2 3 3_pre2 || declare -F src_install > /dev/null || function src_install ()
{
_eapi4_src_install "$@"
};
if has $phase_func $default_phases; then
function _eapi2_pkg_nofetch ()
{
_eapi0_pkg_nofetch "$@"
};
function _eapi2_src_unpack ()
{
_eapi0_src_unpack "$@"
};
function _eapi2_src_prepare ()
{
true
};
function _eapi2_src_test ()
{
_eapi0_src_test "$@"
};
function _eapi2_src_install ()
{
die "$FUNCNAME is not supported"
};
for x in $default_phases;
do
eval "default_$x() { _eapi2_$x \"\$@\" ; }";
done;
eval "default() { _eapi2_$phase_func \"\$@\" ; }";
case $eapi in
2 | 3)
;;
*)
eval "default_src_install() { _eapi4_src_install \"\$@\" ; }";
[[ $phase_func = src_install ]] && eval "default() { _eapi4_$phase_func \"\$@\" ; }"
;;
esac;
else
for x in $default_phases;
do
eval "default_$x() {
die \"default_$x() is not supported in phase $default_func\"
}";
done;
eval "default() {
die \"default() is not supported with EAPI='$eapi' during phase $phase_func\"
}";
fi
;;
esac
}
_eend ()
{
local retval=${1:-0} efunc=${2:-eerror} msg;
shift 2;
if [[ ${retval} == "0" ]]; then
msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}";
else
if [[ -n $* ]]; then
${efunc} "$*";
fi;
msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}";
fi;
if [[ ${RC_ENDCOL} == "yes" ]]; then
echo -e "${ENDCOL} ${msg}";
else
[[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0;
printf "%$(( COLS - LAST_E_LEN - 7 ))s%b\n" '' "${msg}";
fi;
return ${retval}
}
_execute_optionaly ()
{
local phase="$1";
shift;
if [[ ${WANT_CMAKE} = always ]]; then
enable_cmake-utils_${phase} "$@";
else
use ${WANT_CMAKE} && enable_cmake-utils_${phase} "$@";
fi
}
_filter-hardened ()
{
local f;
for f in "$@";
do
case "${f}" in
-fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)
gcc-specs-pie || continue;
is-flagq -nopie || append-flags -nopie
;;
-fstack-protector)
gcc-specs-ssp || continue;
is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)
;;
-fstack-protector-all)
gcc-specs-ssp-to-all || continue;
is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)
;;
-fno-strict-overflow)
gcc-specs-nostrict || continue;
is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)
;;
esac;
done
}
_filter-var ()
{
local f x var=$1 new=();
shift;
for f in ${!var};
do
for x in "$@";
do
[[ ${f} == ${x} ]] && continue 2;
done;
new+=("${f}");
done;
eval export ${var}=\""${new[*]}"\"
}
_gcc-install-dir ()
{
echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw ()
{
local cc=$(tc-getCC);
local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 }
$1=="*"directive":" { pspec=spec; spec=""; outside=0; next }
outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
{ spec=spec $0 }
END { print spec }';
return 0
}
_gcc-specs-exists ()
{
[[ -f $(_gcc-install-dir)/$1 ]]
}
_gcc_fullversion ()
{
local ver="$1";
shift;
set -- `$(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"`;
eval echo "$ver"
}
_is_flagq ()
{
local x;
for x in ${!1};
do
[[ ${x} == $2 ]] && return 0;
done;
return 1
}
_modify-cmakelists ()
{
debug-print-function ${FUNCNAME} "$@";
grep -qs "<<< Gentoo configuration >>>" CMakeLists.txt && return 0;
find "${CMAKE_USE_DIR}" -name CMakeLists.txt -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_BUILD_TYPE.*)/{s/^/#IGNORE /g}' {} + -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_COLOR_MAKEFILE.*)/{s/^/#IGNORE /g}' {} + -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_INSTALL_PREFIX.*)/{s/^/#IGNORE /g}' {} + -exec sed -i -e '/^[[:space:]]*[sS][eE][tT][[:space:]]*([[:space:]]*CMAKE_VERBOSE_MAKEFILE.*)/{s/^/#IGNORE /g}' {} + || die "${LINENO}: failed to disable hardcoded settings";
cat >> "${CMAKE_USE_DIR}"/CMakeLists.txt <<-_EOF_
MESSAGE(STATUS "<<< Gentoo configuration >>>
Build type \${CMAKE_BUILD_TYPE}
Install path \${CMAKE_INSTALL_PREFIX}
Compiler flags:
C \${CMAKE_C_FLAGS}
C++ \${CMAKE_CXX_FLAGS}
Linker flags:
Executable \${CMAKE_EXE_LINKER_FLAGS}
Module \${CMAKE_MODULE_LINKER_FLAGS}
Shared \${CMAKE_SHARED_LINKER_FLAGS}\n")
_EOF_
}
_sb_append_var ()
{
local _v=$1;
shift;
local var="SANDBOX_${_v}";
[[ -z $1 || -n $2 ]] && die "Usage: add$(echo ${_v} | LC_ALL=C tr [:upper:] [:lower:]) <colon-delimited list of paths>";
export ${var}="${!var:+${!var}:}$1"
}
_tc-getPROG ()
{
local tuple=$1;
local v var vars=$2;
local prog=$3;
var=${vars%% *};
for v in ${vars};
do
if [[ -n ${!v} ]]; then
export ${var}="${!v}";
echo "${!v}";
return 0;
fi;
done;
local search=;
[[ -n $4 ]] && search=$(type -p "$4-${prog}");
[[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}");
[[ -n ${search} ]] && prog=${search##*/};
export ${var}=${prog};
echo "${!var}"
}
_use_me_now ()
{
debug-print-function ${FUNCNAME} "$@";
local uper capitalised x;
[[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
if [[ ! -z $3 ]]; then
echo "-D$1$3=$(use $2 && echo ON || echo OFF)";
else
uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
for x in $2 $uper $capitalised;
do
echo "-D$1$x=$(use $2 && echo ON || echo OFF) ";
done;
fi
}
_use_me_now_inverted ()
{
debug-print-function ${FUNCNAME} "$@";
local uper capitalised x;
[[ -z $2 ]] && die "cmake-utils_use-$1 <USE flag> [<flag name>]";
if [[ ! -z $3 ]]; then
echo "-D$1$3=$(use $2 && echo OFF || echo ON)";
else
uper=$(echo ${2} | tr '[:lower:]' '[:upper:]');
capitalised=$(echo ${2} | sed 's/\<\(.\)\([^ ]*\)/\u\1\L\2/g');
for x in $2 $uper $capitalised;
do
echo "-D$1$x=$(use $2 && echo OFF || echo ON) ";
done;
fi
}
abort_compile ()
{
abort_handler "src_compile" $1;
rm -f "${PORTAGE_BUILDDIR}/.compiled";
exit 1
}
abort_configure ()
{
abort_handler src_configure $1;
rm -f "$PORTAGE_BUILDDIR/.configured";
exit 1
}
abort_handler ()
{
local msg;
if [ "$2" != "fail" ]; then
msg="${EBUILD}: ${1} aborted; exiting.";
else
msg="${EBUILD}: ${1} failed; exiting.";
fi;
echo;
echo "$msg";
echo;
eval ${3};
trap - SIGINT SIGQUIT
}
abort_install ()
{
abort_handler "src_install" $1;
rm -rf "${PORTAGE_BUILDDIR}/image";
exit 1
}
abort_prepare ()
{
abort_handler src_prepare $1;
rm -f "$PORTAGE_BUILDDIR/.prepared";
exit 1
}
abort_test ()
{
abort_handler "dyn_test" $1;
rm -f "${PORTAGE_BUILDDIR}/.tested";
exit 1
}
adddeny ()
{
_sb_append_var DENY "$@"
}
addpredict ()
{
_sb_append_var PREDICT "$@"
}
addread ()
{
_sb_append_var READ "$@"
}
addwrite ()
{
_sb_append_var WRITE "$@"
}
all-flag-vars ()
{
echo {C,CPP,CXX,CCAS,F,FC,LD}FLAGS
}
append-cflags ()
{
[[ $# -eq 0 ]] && return 0;
export CFLAGS=$(test-flags-CC ${CFLAGS} "$@");
return 0
}
append-cppflags ()
{
[[ $# -eq 0 ]] && return 0;
export CPPFLAGS="${CPPFLAGS} $*";
return 0
}
append-cxxflags ()
{
[[ $# -eq 0 ]] && return 0;
export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS} "$@");
return 0
}
append-fflags ()
{
[[ $# -eq 0 ]] && return 0;
export FFLAGS=$(test-flags-F77 ${FFLAGS} "$@");
export FCFLAGS=$(test-flags-FC ${FCFLAGS} "$@");
return 0
}
append-flags ()
{
[[ $# -eq 0 ]] && return 0;
case " $* " in
*' '-[DIU]*)
eqawarn 'please use append-cppflags for preprocessor flags'
;;
*' '-L*)
eqawarn 'please use append-ldflags for linker flags'
;;
esac;
append-cflags "$@";
append-cxxflags "$@";
append-fflags "$@";
return 0
}
append-ldflags ()
{
[[ $# -eq 0 ]] && return 0;
local flag;
for flag in "$@";
do
[[ ${flag} == -l* ]] && ewarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";
done;
export LDFLAGS="${LDFLAGS} $*";
return 0
}
append-lfs-flags ()
{
[[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments";
append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
append-libs ()
{
[[ $# -eq 0 ]] && return 0;
local flag;
for flag in "$@";
do
[[ ${flag} == -l* ]] && flag=${flag#-l};
export LIBS="${LIBS} -l${flag}";
done;
return 0
}
assert ()
{
local x pipestatus=${PIPESTATUS[*]};
for x in $pipestatus;
do
[[ $x -eq 0 ]] || die "$@";
done
}
assert_sigpipe_ok ()
{
local x pipestatus=${PIPESTATUS[*]};
for x in $pipestatus;
do
[[ $x -ne 0 && $x -ne ${PORTAGE_SIGPIPE_STATUS:-141} ]] && die "$@";
done;
[[ $x -eq 0 ]] || die "$@"
}
base_src_compile ()
{
debug-print-function $FUNCNAME "$@";
has src_configure ${BASE_EXPF} || base_src_configure;
base_src_make "$@"
}
base_src_configure ()
{
debug-print-function $FUNCNAME "$@";
[[ -x ${ECONF_SOURCE:-.}/configure ]] && econf "$@"
}
base_src_install ()
{
debug-print-function $FUNCNAME "$@";
emake DESTDIR="${D}" "$@" install || die "died running make install, $FUNCNAME";
base_src_install_docs
}
base_src_install_docs ()
{
debug-print-function $FUNCNAME "$@";
local x;
pushd "${S}" > /dev/null;
if [[ "$(declare -p DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
for x in "${DOCS[@]}";
do
debug-print "$FUNCNAME: docs: creating document from ${x}";
dodoc "${x}" || die "dodoc failed";
done;
fi;
if [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
for x in "${HTML_DOCS[@]}";
do
debug-print "$FUNCNAME: docs: creating html document from ${x}";
dohtml -r "${x}" || die "dohtml failed";
done;
fi;
popd > /dev/null
}
base_src_make ()
{
debug-print-function $FUNCNAME "$@";
if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
emake "$@" || die "died running emake, $FUNCNAME";
fi
}
base_src_prepare ()
{
debug-print-function $FUNCNAME "$@";
debug-print "$FUNCNAME: PATCHES=$PATCHES";
local patches_failed=0;
pushd "${S}" > /dev/null;
if [[ "$(declare -p PATCHES 2>/dev/null 2>&1)" == "declare -a"* ]]; then
for x in "${PATCHES[@]}";
do
debug-print "$FUNCNAME: applying patch from ${x}";
if [[ -d "${x}" ]]; then
EPATCH_SUFFIX=${EPATCH_SUFFIX:=patch};
oldval=${EPATCH_SOURCE};
EPATCH_SOURCE=${x};
EPATCH_FORCE=yes;
epatch;
EPATCH_SOURCE=${oldval};
else
if [[ -f "${x}" ]]; then
epatch "${x}";
else
ewarn "QA: File or directory \"${x}\" does not exist.";
ewarn "QA: Check your PATCHES array or add missing file/directory.";
patches_failed=1;
fi;
fi;
done;
[[ ${patches_failed} -eq 1 ]] && die "Some patches failed. See above messages.";
else
for x in ${PATCHES};
do
debug-print "$FUNCNAME: patching from ${x}";
epatch "${x}";
done;
fi;
debug-print "$FUNCNAME: applying user patches";
epatch_user;
popd > /dev/null
}
base_src_unpack ()
{
debug-print-function $FUNCNAME "$@";
pushd "${WORKDIR}" > /dev/null;
if [[ $(type -t unpacker_src_unpack) == "function" ]]; then
unpacker_src_unpack;
else
if [[ -n ${A} ]]; then
unpack ${A};
fi;
fi;
has src_prepare ${BASE_EXPF} || base_src_prepare;
popd > /dev/null
}
best_version ()
{
local eroot;
case "$EAPI" in
0 | 1 | 2)
[[ " ${FEATURES} " == *" force-prefix "* ]] && eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
;;
*)
eroot=${ROOT%/}${EPREFIX}/
;;
esac;
if [[ -n $PORTAGE_IPC_DAEMON ]]; then
"$PORTAGE_BIN_PATH"/ebuild-ipc best_version "${eroot}" "$1";
else
PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" best_version "${eroot}" "$1";
fi;
local retval=$?;
case "${retval}" in
0 | 1)
return ${retval}
;;
*)
die "unexpected portageq exit code: ${retval}"
;;
esac
}
built_with_use ()
{
local hidden="no";
if [[ $1 == "--hidden" ]]; then
hidden="yes";
shift;
fi;
local missing_action="die";
if [[ $1 == "--missing" ]]; then
missing_action=$2;
shift;
shift;
case ${missing_action} in
true | false | die)
;;
*)
die "unknown action '${missing_action}'"
;;
esac;
fi;
local opt=$1;
[[ ${opt:0:1} = "-" ]] && shift || opt="-a";
local PKG=$(best_version $1);
[[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package";
shift;
local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE;
local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE;
if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then
case ${missing_action} in
true)
return 0
;;
false)
return 1
;;
die)
die "Unable to determine what USE flags $PKG was built with"
;;
esac;
fi;
if [[ ${hidden} == "no" ]]; then
local IUSE_BUILT=($(<"${IUSEFILE}"));
local expand;
for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]');
do
if [[ $1 == ${expand}_* ]]; then
expand="";
break;
fi;
done;
if [[ -n ${expand} ]]; then
if ! has $1 ${IUSE_BUILT[@]#[-+]}; then
case ${missing_action} in
true)
return 0
;;
false)
return 1
;;
die)
die "$PKG does not actually support the $1 USE flag!"
;;
esac;
fi;
fi;
fi;
local USE_BUILT=$(<${USEFILE});
while [[ $# -gt 0 ]]; do
if [[ ${opt} = "-o" ]]; then
has $1 ${USE_BUILT} && return 0;
else
has $1 ${USE_BUILT} || return 1;
fi;
shift;
done;
[[ ${opt} = "-a" ]]
}
check_license ()
{
die "you no longer need this as portage supports ACCEPT_LICENSE itself"
}
cmake-utils_src_compile ()
{
_execute_optionaly "src_compile" "$@"
}
cmake-utils_src_configure ()
{
_execute_optionaly "src_configure" "$@"
}
cmake-utils_src_install ()
{
_execute_optionaly "src_install" "$@"
}
cmake-utils_src_make ()
{
debug-print-function ${FUNCNAME} "$@";
_check_build_dir;
pushd "${CMAKE_BUILD_DIR}" > /dev/null;
[[ -e Makefile ]] || die "Makefile not found. Error during configure stage.";
if [[ "${CMAKE_VERBOSE}" != "OFF" ]]; then
emake VERBOSE=1 "$@" || die "Make failed!";
else
emake "$@" || die "Make failed!";
fi;
popd > /dev/null
}
cmake-utils_src_test ()
{
_execute_optionaly "src_test" "$@"
}
cmake-utils_use ()
{
_use_me_now "" "$@"
}
cmake-utils_use_build ()
{
_use_me_now BUILD_ "$@"
}
cmake-utils_use_disable ()
{
_use_me_now_inverted DISABLE_ "$@"
}
cmake-utils_use_enable ()
{
_use_me_now ENABLE_ "$@"
}
cmake-utils_use_has ()
{
_use_me_now HAVE_ "$@"
}
cmake-utils_use_no ()
{
_use_me_now_inverted NO_ "$@"
}
cmake-utils_use_use ()
{
_use_me_now USE_ "$@"
}
cmake-utils_use_want ()
{
_use_me_now WANT_ "$@"
}
cmake-utils_use_with ()
{
_use_me_now WITH_ "$@"
}
debug-print ()
{
[[ $EBUILD_PHASE = depend || ! -d ${T} || ${#} -eq 0 ]] && return 0;
if [[ ${ECLASS_DEBUG_OUTPUT} == on ]]; then
printf 'debug: %s\n' "${@}" 1>&2;
else
if [[ -n ${ECLASS_DEBUG_OUTPUT} ]]; then
printf 'debug: %s\n' "${@}" >> "${ECLASS_DEBUG_OUTPUT}";
fi;
fi;
if [[ -w $T ]]; then
printf '%s\n' "${@}" >> "${T}/eclass-debug.log";
chgrp portage "${T}/eclass-debug.log" &>/dev/null;
chmod g+w "${T}/eclass-debug.log" &>/dev/null;
fi
}
debug-print-function ()
{
debug-print "${1}: entering function, parameters: ${*:2}"
}
debug-print-section ()
{
debug-print "now in section ${*}"
}
default ()
{
die "default() is not supported with EAPI='4' during phase pkg_pretend"
}
default_pkg_nofetch ()
{
die "default_pkg_nofetch() is not supported in phase "
}
default_src_compile ()
{
die "default_src_compile() is not supported in phase "
}
default_src_configure ()
{
die "default_src_configure() is not supported in phase "
}
default_src_install ()
{
die "default_src_install() is not supported in phase "
}
default_src_prepare ()
{
die "default_src_prepare() is not supported in phase "
}
default_src_test ()
{
die "default_src_test() is not supported in phase "
}
default_src_unpack ()
{
die "default_src_unpack() is not supported in phase "
}
die ()
{
if [[ $PORTAGE_NONFATAL -eq 1 ]]; then
echo -e " $WARN*$NORMAL ${FUNCNAME[1]}: WARNING: $@" 1>&2;
return 1;
fi;
set +e;
if [ -n "${QA_INTERCEPTORS}" ]; then
unset -f ${QA_INTERCEPTORS};
unset QA_INTERCEPTORS;
fi;
local n filespacing=0 linespacing=0;
(( n = ${#FUNCNAME[@]} - 1 ));
while (( n > 0 )); do
[ "${FUNCNAME[${n}]}" == "qa_call" ] && break;
(( n-- ));
done;
(( n == 0 )) && (( n = ${#FUNCNAME[@]} - 1 ));
while (( n > 0 )); do
sourcefile=${BASH_SOURCE[${n}]} sourcefile=${sourcefile##*/};
lineno=${BASH_LINENO[${n}]};
((filespacing < ${#sourcefile})) && filespacing=${#sourcefile};
((linespacing < ${#lineno})) && linespacing=${#lineno};
(( n-- ));
done;
local phase_str=;
[[ -n $EBUILD_PHASE ]] && phase_str=" ($EBUILD_PHASE phase)";
eerror "ERROR: $CATEGORY/$PF failed${phase_str}:";
eerror " ${*:-(no error message)}";
eerror;
local main_index;
(( main_index = ${#BASH_SOURCE[@]} - 1 ));
if has ${BASH_SOURCE[$main_index]##*/} ebuild.sh misc-functions.sh; then
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;
fi;
eerror "If you need support, post the output of 'emerge --info =$CATEGORY/$PF',";
eerror "the complete build log and the output of 'emerge -pqv =$CATEGORY/$PF'.";
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" ] && ! has ${EBUILD_PHASE} prerm postrm && [ "${EBUILD#${PORTDIR}/}" == "${EBUILD}" ]; then
local overlay=${EBUILD%/*};
overlay=${overlay%/*};
overlay=${overlay%/*};
if [[ -n $PORTAGE_REPO_NAME ]]; then
eerror "This ebuild is from an overlay named" "'$PORTAGE_REPO_NAME': '${overlay}/'";
else
eerror "This ebuild is from an overlay: '${overlay}/'";
fi;
else
if [[ -n $PORTAGE_REPO_NAME && -f "$PORTDIR"/profiles/repo_name ]]; then
local portdir_repo_name=$(<"$PORTDIR"/profiles/repo_name);
if [[ -n $portdir_repo_name && $portdir_repo_name != $PORTAGE_REPO_NAME ]]; then
eerror "This ebuild is from a repository" "named '$PORTAGE_REPO_NAME'";
fi;
fi;
fi;
if has ${BASH_SOURCE[$main_index]##*/} ebuild.sh misc-functions.sh && [[ ${EBUILD_PHASE} != depend ]]; then
local x;
for x in $EBUILD_DEATH_HOOKS;
do
${x} "$@" 1>&2 1>&2;
done;
> "$PORTAGE_BUILDDIR/.die_hooks";
fi;
[[ -n ${PORTAGE_LOG_FILE} ]] && eerror "The 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;
eerror "S: '${S}'";
[[ -n $PORTAGE_EBUILD_EXIT_FILE ]] && > "$PORTAGE_EBUILD_EXIT_FILE";
[[ -n $PORTAGE_IPC_DAEMON ]] && "$PORTAGE_BIN_PATH"/ebuild-ipc exit 1;
[[ $BASHPID = $EBUILD_MASTER_PID ]] || kill -s SIGTERM $EBUILD_MASTER_PID;
exit 1
}
diefunc ()
{
die "${@}"
}
diropts ()
{
export DIROPTIONS="$@"
}
docinto ()
{
if [ "$1" == "/" ]; then
export _E_DOCDESTTREE_="";
else
export _E_DOCDESTTREE_="$1";
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
if [ ! -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}" ]; then
install -d "${ED}usr/share/doc/${PF}/${_E_DOCDESTTREE_}";
local ret=$?;
if [[ $ret -ne 0 ]]; then
helpers_die "${FUNCNAME[0]} failed";
return $ret;
fi;
fi;
fi
}
docompress ()
{
has "${EAPI}" 0 1 2 3 && die "'docompress' not supported in this EAPI";
local f g;
if [[ $1 = "-x" ]]; then
shift;
for f in "$@";
do
f=$(strip_duplicate_slashes "${f}");
f=${f%/};
[[ ${f:0:1} = / ]] || f="/${f}";
for g in "${PORTAGE_DOCOMPRESS_SKIP[@]}";
do
[[ ${f} = "${g}" ]] && continue 2;
done;
PORTAGE_DOCOMPRESS_SKIP[${#PORTAGE_DOCOMPRESS_SKIP[@]}]=${f};
done;
else
for f in "$@";
do
f=$(strip_duplicate_slashes "${f}");
f=${f%/};
[[ ${f:0:1} = / ]] || f="/${f}";
for g in "${PORTAGE_DOCOMPRESS[@]}";
do
[[ ${f} = "${g}" ]] && continue 2;
done;
PORTAGE_DOCOMPRESS[${#PORTAGE_DOCOMPRESS[@]}]=${f};
done;
fi
}
doicon ()
{
( local i j ret;
insinto /usr/share/pixmaps;
for i in "$@";
do
if [[ -f ${i} ]]; then
doins "${i}";
((ret+=$?));
else
if [[ -d ${i} ]]; then
for j in "${i}"/*.png;
do
doins "${j}";
((ret+=$?));
done;
else
((++ret));
fi;
fi;
done;
exit ${ret} )
}
domenu ()
{
( local i j ret=0;
insinto /usr/share/applications;
for i in "$@";
do
if [[ -f ${i} ]]; then
doins "${i}";
((ret+=$?));
else
if [[ -d ${i} ]]; then
for j in "${i}"/*.desktop;
do
doins "${j}";
((ret+=$?));
done;
else
((++ret));
fi;
fi;
done;
exit ${ret} )
}
dump_trace ()
{
local funcname="" sourcefile="" lineno="" s="yes" n p;
declare -i strip=${1:-1};
local filespacing=$2 linespacing=$3;
(( n = ${#FUNCNAME[@]} - 1 ));
(( p = ${#BASH_ARGV[@]} ));
while (( n > 0 )); do
[ "${FUNCNAME[${n}]}" == "qa_call" ] && break;
(( p -= ${BASH_ARGC[${n}]} ));
(( n-- ));
done;
if (( n == 0 )); then
(( n = ${#FUNCNAME[@]} - 1 ));
(( p = ${#BASH_ARGV[@]} ));
fi;
eerror "Call stack:";
while (( n > ${strip} )); do
funcname=${FUNCNAME[${n} - 1]};
sourcefile=$(basename "${BASH_SOURCE[${n}]}");
lineno=${BASH_LINENO[${n} - 1]};
args=;
if [[ -n "${BASH_ARGV[@]}" ]]; then
for ((j = 1 ; j <= ${BASH_ARGC[${n} - 1]} ; ++j ))
do
newarg=${BASH_ARGV[$(( p - j - 1 ))]};
args="${args:+${args} }'${newarg}'";
done;
(( p -= ${BASH_ARGC[${n} - 1]} ));
fi;
eerror " $(printf "%${filespacing}s" "${sourcefile}"), line $(printf "%${linespacing}s" "${lineno}"): Called ${funcname}${args:+ ${args}}";
(( n-- ));
done
}
dyn_clean ()
{
if [ -z "${PORTAGE_BUILDDIR}" ]; then
echo "Aborting clean phase because PORTAGE_BUILDDIR is unset!";
return 1;
else
if [ ! -d "${PORTAGE_BUILDDIR}" ]; then
return 0;
fi;
fi;
if has chflags $FEATURES; then
chflags -R noschg,nouchg,nosappnd,nouappnd "${PORTAGE_BUILDDIR}";
chflags -R nosunlnk,nouunlnk "${PORTAGE_BUILDDIR}" 2> /dev/null;
fi;
rm -rf "${PORTAGE_BUILDDIR}/image" "${PORTAGE_BUILDDIR}/homedir";
rm -f "${PORTAGE_BUILDDIR}/.installed";
if [[ $EMERGE_FROM = binary ]] || ! has keeptemp $FEATURES && ! has keepwork $FEATURES; then
rm -rf "${T}";
fi;
if [[ $EMERGE_FROM = binary ]] || ! has keepwork $FEATURES; then
rm -f "$PORTAGE_BUILDDIR"/.{ebuild_changed,logid,pretended,setuped,unpacked,prepared} "$PORTAGE_BUILDDIR"/.{configured,compiled,tested,packaged} "$PORTAGE_BUILDDIR"/.die_hooks "$PORTAGE_BUILDDIR"/.ipc_{in,out,lock} "$PORTAGE_BUILDDIR"/.exit_status;
rm -rf "${PORTAGE_BUILDDIR}/build-info";
rm -rf "${WORKDIR}";
fi;
if [ -f "${PORTAGE_BUILDDIR}/.unpacked" ]; then
find "${PORTAGE_BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir &>/dev/null;
fi;
rm -rf "${PORTAGE_BUILDDIR}/distdir";
cd "$PORTAGE_BUILDDIR"/../..;
rmdir "$PORTAGE_BUILDDIR" 2> /dev/null;
true
}
dyn_compile ()
{
if [[ -e $PORTAGE_BUILDDIR/.compiled ]]; then
vecho ">>> It appears that '${PF}' is already compiled; skipping.";
vecho ">>> Remove '$PORTAGE_BUILDDIR/.compiled' to force compilation.";
return 0;
fi;
if [[ -d $S ]]; then
cd "${S}";
else
if has $EAPI 0 1 2 3 3_pre2; then
cd "${WORKDIR}";
else
if [[ -z ${A} ]] && ! has_phase_defined_up_to compile; then
cd "${WORKDIR}";
else
die "The source directory '${S}' doesn't exist";
fi;
fi;
fi;
trap abort_compile SIGINT SIGQUIT;
if has distcc $FEATURES && has distcc-pump $FEATURES; then
if [[ -z $INCLUDE_SERVER_PORT ]] || [[ ! -w $INCLUDE_SERVER_PORT ]]; then
eval $(pump --startup);
trap "pump --shutdown" EXIT;
fi;
fi;
ebuild_phase pre_src_compile;
vecho ">>> Compiling source in $PWD ...";
ebuild_phase src_compile;
>> "$PORTAGE_BUILDDIR/.compiled" || die "Failed to create $PORTAGE_BUILDDIR/.compiled";
vecho ">>> Source compiled.";
ebuild_phase post_src_compile;
trap - SIGINT SIGQUIT
}
dyn_configure ()
{
if [[ -e $PORTAGE_BUILDDIR/.configured ]]; then
vecho ">>> It appears that '$PF' is already configured; skipping.";
vecho ">>> Remove '$PORTAGE_BUILDDIR/.configured' to force configuration.";
return 0;
fi;
if [[ -d $S ]]; then
cd "${S}";
else
if has $EAPI 0 1 2 3 3_pre2; then
cd "${WORKDIR}";
else
if [[ -z ${A} ]] && ! has_phase_defined_up_to configure; then
cd "${WORKDIR}";
else
die "The source directory '${S}' doesn't exist";
fi;
fi;
fi;
trap abort_configure SIGINT SIGQUIT;
ebuild_phase pre_src_configure;
vecho ">>> Configuring source in $PWD ...";
ebuild_phase src_configure;
>> "$PORTAGE_BUILDDIR/.configured" || die "Failed to create $PORTAGE_BUILDDIR/.configured";
vecho ">>> Source configured.";
ebuild_phase post_src_configure;
trap - SIGINT SIGQUIT
}
dyn_help ()
{
echo;
echo "Portage";
echo "Copyright 1999-2010 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 " pretend : execute package specific pretend actions";
echo " setup : execute package specific setup actions";
echo " fetch : download source archive(s) and patches";
echo " digest : create a manifest file for the package";
echo " manifest : create a manifest file for the package";
echo " unpack : unpack sources (auto-dependencies if needed)";
echo " prepare : prepare sources (auto-dependencies if needed)";
echo " configure : configure sources (auto-fetch/unpack if needed)";
echo " compile : compile sources (auto-fetch/unpack/configure if needed)";
echo " test : test package (auto-fetch/unpack/configure/compile if needed)";
echo " preinst : execute pre-install instructions";
echo " postinst : execute post-install instructions";
echo " install : install the package to the temporary install directory";
echo " qmerge : merge image into live filesystem, recording files in db";
echo " merge : do fetch, unpack, compile, install and qmerge";
echo " prerm : execute pre-removal instructions";
echo " postrm : execute post-removal instructions";
echo " unmerge : remove package from live filesystem";
echo " config : execute package specific configuration actions";
echo " package : create a tarball package in ${PKGDIR}/All";
echo " rpm : build a RedHat RPM package";
echo " clean : clean up all source and temporary files";
echo;
echo "The following settings will be used for the ebuild process:";
echo;
echo " package : ${PF}";
echo " slot : ${SLOT}";
echo " category : ${CATEGORY}";
echo " description : ${DESCRIPTION}";
echo " system : ${CHOST}";
echo " c flags : ${CFLAGS}";
echo " c++ flags : ${CXXFLAGS}";
echo " make flags : ${MAKEOPTS}";
echo -n " build mode : ";
if has nostrip ${FEATURES} ${RESTRICT} || has strip ${RESTRICT}; then
echo "debug (large)";
else
echo "production (stripped)";
fi;
echo " merge to : ${ROOT}";
echo;
if [ -n "$USE" ]; then
echo "Additionally, support for the following optional features will be enabled:";
echo;
echo " ${USE}";
fi;
echo
}
dyn_install ()
{
[ -z "$PORTAGE_BUILDDIR" ] && die "${FUNCNAME}: PORTAGE_BUILDDIR is unset";
if has noauto $FEATURES; then
rm -f "${PORTAGE_BUILDDIR}/.installed";
else
if [[ -e $PORTAGE_BUILDDIR/.installed ]]; then
vecho ">>> It appears that '${PF}' is already installed; skipping.";
vecho ">>> Remove '${PORTAGE_BUILDDIR}/.installed' to force install.";
return 0;
fi;
fi;
trap "abort_install" SIGINT SIGQUIT;
ebuild_phase pre_src_install;
_x=${ED};
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
_x=${D}
;;
esac;
rm -rf "${D}";
mkdir -p "${_x}";
unset _x;
if [[ -d $S ]]; then
cd "${S}";
else
if has $EAPI 0 1 2 3 3_pre2; then
cd "${WORKDIR}";
else
if [[ -z ${A} ]] && ! has_phase_defined_up_to install; then
cd "${WORKDIR}";
else
die "The source directory '${S}' doesn't exist";
fi;
fi;
fi;
vecho;
vecho ">>> Install ${PF} into ${D} category ${CATEGORY}";
export S D;
export DESTTREE=/usr;
export INSDESTTREE="";
export _E_EXEDESTTREE_="";
export _E_DOCDESTTREE_="";
ebuild_phase src_install;
>> "$PORTAGE_BUILDDIR/.installed" || die "Failed to create $PORTAGE_BUILDDIR/.installed";
vecho ">>> Completed installing ${PF} into ${D}";
vecho;
ebuild_phase post_src_install;
cd "${PORTAGE_BUILDDIR}"/build-info;
set -f;
local f x;
IFS='
';
for f in CATEGORY DEFINED_PHASES FEATURES INHERITED IUSE PF PKGUSE SLOT KEYWORDS HOMEPAGE DESCRIPTION;
do
x=$(echo -n ${!f});
[[ -n $x ]] && echo "$x" > $f;
done;
if [[ $CATEGORY != virtual ]]; then
for f in ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE LDFLAGS LIBCFLAGS LIBCXXFLAGS;
do
x=$(echo -n ${!f});
[[ -n $x ]] && echo "$x" > $f;
done;
fi;
echo "${USE}" > USE;
echo "${EAPI:-0}" > EAPI;
case "${EAPI:-0}" in
0 | 1 | 2)
[[ " ${FEATURES} " == *" force-prefix "* ]] && [ -n "${EPREFIX}" ] && echo "${EPREFIX}" > EPREFIX
;;
*)
[ -n "${EPREFIX}" ] && echo "${EPREFIX}" > EPREFIX
;;
esac;
set +f;
unset f;
save_ebuild_env --exclude-init-phases | filter_readonly_variables --filter-path --filter-sandbox --allow-extra-vars > environment;
assert "save_ebuild_env failed";
${PORTAGE_BZIP2_COMMAND} -f9 environment;
cp "${EBUILD}" "${PF}.ebuild";
[ -n "${PORTAGE_REPO_NAME}" ] && echo "${PORTAGE_REPO_NAME}" > repository;
if has nostrip ${FEATURES} ${RESTRICT} || has strip ${RESTRICT}; then
>> DEBUGBUILD;
fi;
trap - SIGINT SIGQUIT
}
dyn_preinst ()
{
if [ -z "${D}" ]; then
eerror "${FUNCNAME}: D is unset";
return 1;
fi;
ebuild_phase_with_hooks pkg_preinst
}
dyn_prepare ()
{
if [[ -e $PORTAGE_BUILDDIR/.prepared ]]; then
vecho ">>> It appears that '$PF' is already prepared; skipping.";
vecho ">>> Remove '$PORTAGE_BUILDDIR/.prepared' to force prepare.";
return 0;
fi;
if [[ -d $S ]]; then
cd "${S}";
else
if has $EAPI 0 1 2 3 3_pre2; then
cd "${WORKDIR}";
else
if [[ -z ${A} ]] && ! has_phase_defined_up_to prepare; then
cd "${WORKDIR}";
else
die "The source directory '${S}' doesn't exist";
fi;
fi;
fi;
trap abort_prepare SIGINT SIGQUIT;
ebuild_phase pre_src_prepare;
vecho ">>> Preparing source in $PWD ...";
ebuild_phase src_prepare;
>> "$PORTAGE_BUILDDIR/.prepared" || die "Failed to create $PORTAGE_BUILDDIR/.prepared";
vecho ">>> Source prepared.";
ebuild_phase post_src_prepare;
trap - SIGINT SIGQUIT
}
dyn_pretend ()
{
if [[ -e $PORTAGE_BUILDDIR/.pretended ]]; then
vecho ">>> It appears that '$PF' is already pretended; skipping.";
vecho ">>> Remove '$PORTAGE_BUILDDIR/.pretended' to force pretend.";
return 0;
fi;
ebuild_phase pre_pkg_pretend;
ebuild_phase pkg_pretend;
>> "$PORTAGE_BUILDDIR/.pretended" || die "Failed to create $PORTAGE_BUILDDIR/.pretended";
ebuild_phase post_pkg_pretend
}
dyn_setup ()
{
if [[ -e $PORTAGE_BUILDDIR/.setuped ]]; then
vecho ">>> It appears that '$PF' is already setup; skipping.";
vecho ">>> Remove '$PORTAGE_BUILDDIR/.setuped' to force setup.";
return 0;
fi;
ebuild_phase pre_pkg_setup;
ebuild_phase pkg_setup;
>> "$PORTAGE_BUILDDIR/.setuped" || die "Failed to create $PORTAGE_BUILDDIR/.setuped";
ebuild_phase post_pkg_setup
}
dyn_test ()
{
if [[ -e $PORTAGE_BUILDDIR/.tested ]]; then
vecho ">>> It appears that ${PN} has already been tested; skipping.";
vecho ">>> Remove '${PORTAGE_BUILDDIR}/.tested' to force test.";
return;
fi;
if [ "${EBUILD_FORCE_TEST}" == "1" ]; then
! has test ${USE} && export USE="${USE} test";
fi;
trap "abort_test" SIGINT SIGQUIT;
if [ -d "${S}" ]; then
cd "${S}";
else
cd "${WORKDIR}";
fi;
if ! has test $FEATURES && [ "${EBUILD_FORCE_TEST}" != "1" ]; then
vecho ">>> Test phase [not enabled]: ${CATEGORY}/${PF}";
else
if has test $RESTRICT; then
einfo "Skipping make test/check due to ebuild restriction.";
vecho ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}";
else
local save_sp=${SANDBOX_PREDICT};
addpredict /;
ebuild_phase pre_src_test;
ebuild_phase src_test;
>> "$PORTAGE_BUILDDIR/.tested" || die "Failed to create $PORTAGE_BUILDDIR/.tested";
ebuild_phase post_src_test;
SANDBOX_PREDICT=${save_sp};
fi;
fi;
trap - SIGINT SIGQUIT
}
dyn_unpack ()
{
if [[ -f ${PORTAGE_BUILDDIR}/.unpacked ]]; then
vecho ">>> WORKDIR is up-to-date, keeping...";
return 0;
fi;
if [ ! -d "${WORKDIR}" ]; then
install -m${PORTAGE_WORKDIR_MODE:-0700} -d "${WORKDIR}" || die "Failed to create dir '${WORKDIR}'";
fi;
cd "${WORKDIR}" || die "Directory change failed: \`cd '${WORKDIR}'\`";
ebuild_phase pre_src_unpack;
vecho ">>> Unpacking source...";
ebuild_phase src_unpack;
>> "$PORTAGE_BUILDDIR/.unpacked" || die "Failed to create $PORTAGE_BUILDDIR/.unpacked";
vecho ">>> Source unpacked in ${WORKDIR}";
ebuild_phase post_src_unpack
}
ebeep ()
{
ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
ebegin ()
{
local msg="$*" dots spaces=${RC_DOT_PATTERN//?/ };
if [[ -n ${RC_DOT_PATTERN} ]]; then
dots=$(printf "%$(( COLS - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" '');
dots=${dots//${spaces}/${RC_DOT_PATTERN}};
msg="${msg}${dots}";
else
msg="${msg} ...";
fi;
einfon "${msg}";
[[ ${RC_ENDCOL} == "yes" ]] && echo;
LAST_E_LEN=$(( 3 + ${#RC_INDENTATION} + ${#msg} ));
LAST_E_CMD="ebegin";
return 0
}
ebuild_main ()
{
export EBUILD_MASTER_PID=$BASHPID;
trap 'exit 1' SIGTERM;
[[ -z ${S} ]] && export S=${WORKDIR}/${P};
if [[ -s $SANDBOX_LOG ]]; then
local x=;
if [[ -n SANDBOX_ON ]]; then
x=$SANDBOX_ON;
export SANDBOX_ON=0;
fi;
rm -f "$SANDBOX_LOG" || die "failed to remove stale sandbox log: '$SANDBOX_LOG'";
if [[ -n $x ]]; then
export SANDBOX_ON=$x;
fi;
unset x;
fi;
has ccache $FEATURES || export CCACHE_DISABLE=1;
local phase_func=$(_ebuild_arg_to_phase "$EAPI" "$EBUILD_PHASE");
[[ -n $phase_func ]] && _ebuild_phase_funcs "$EAPI" "$phase_func";
unset phase_func;
source_all_bashrcs;
case ${1} in
nofetch)
ebuild_phase_with_hooks pkg_nofetch
;;
prerm | postrm | postinst | config | info)
if has "${1}" config info && ! declare -F "pkg_${1}" > /dev/null; then
ewarn "pkg_${1}() is not defined: '${EBUILD##*/}'";
fi;
export SANDBOX_ON="0";
if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
ebuild_phase_with_hooks pkg_${1};
else
set -x;
ebuild_phase_with_hooks pkg_${1};
set +x;
fi;
if [[ $EBUILD_PHASE == postinst ]] && [[ -n $PORTAGE_UPDATE_ENV ]]; then
save_ebuild_env --exclude-init-phases | filter_readonly_variables --filter-path --filter-sandbox --allow-extra-vars | ${PORTAGE_BZIP2_COMMAND} -c -f9 > "$PORTAGE_UPDATE_ENV";
assert "save_ebuild_env failed";
fi
;;
unpack | prepare | configure | compile | test | clean | install)
if [[ ${SANDBOX_DISABLED:-0} = 0 ]]; then
export SANDBOX_ON="1";
else
export SANDBOX_ON="0";
fi;
case "${1}" in
configure | compile)
local x;
for x in ASFLAGS CCACHE_DIR CCACHE_SIZE CFLAGS CXXFLAGS LDFLAGS LIBCFLAGS LIBCXXFLAGS;
do
[[ ${!x+set} = set ]] && export $x;
done;
unset x;
has distcc $FEATURES && [[ -n $DISTCC_DIR ]] && [[ ${SANDBOX_WRITE/$DISTCC_DIR} = $SANDBOX_WRITE ]] && addwrite "$DISTCC_DIR";
x=LIBDIR_$ABI;
[ -z "$PKG_CONFIG_PATH" -a -n "$ABI" -a -n "${!x}" ] && export PKG_CONFIG_PATH=/usr/${!x}/pkgconfig;
if has 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
LC_ALL=C sleep 0.25;
done;
sleep 3;
fi;
cd "$PORTAGE_BUILDDIR";
if [ ! -d build-info ]; then
mkdir build-info;
cp "$EBUILD" "build-info/$PF.ebuild";
fi;
export S D
;;
esac;
if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
dyn_${1};
else
set -x;
dyn_${1};
set +x;
fi;
export SANDBOX_ON="0"
;;
help | pretend | setup | preinst)
export SANDBOX_ON="0";
if [ "${PORTAGE_DEBUG}" != "1" ] || [ "${-/x/}" != "$-" ]; then
dyn_${1};
else
set -x;
dyn_${1};
set +x;
fi
;;
_internal_test)
;;
*)
export SANDBOX_ON="1";
echo "Unrecognized arg '${1}'";
echo;
dyn_help;
exit 1
;;
esac;
if ! has "${1}" clean help info nofetch; then
umask 002;
save_ebuild_env | filter_readonly_variables --filter-features > "$T/environment";
assert "save_ebuild_env failed";
chown portage:portage "$T/environment" &>/dev/null;
chmod g+w "$T/environment" &>/dev/null;
fi;
[[ -n $PORTAGE_EBUILD_EXIT_FILE ]] && > "$PORTAGE_EBUILD_EXIT_FILE";
if [[ -n $PORTAGE_IPC_DAEMON ]]; then
[[ ! -s $SANDBOX_LOG ]];
"$PORTAGE_BIN_PATH"/ebuild-ipc exit $?;
fi
}
ebuild_phase ()
{
declare -F "$1" > /dev/null && 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;
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local EPREFIX=
;;
esac;
function _hasg ()
{
local x s=$1;
shift;
for x in "$@";
do
[[ ${x} == ${s} ]] && echo "${x}" && return 0;
done;
return 1
};
function _hasgq ()
{
_hasg "$@" > /dev/null
};
local phase_func=$(_ebuild_arg_to_phase "$EAPI" "$EBUILD_PHASE");
if [[ -n $phase_func ]]; then
if has "$EAPI" 0 1; then
[[ $phase_func != src_compile ]] && eqawarn "QA Notice: econf called in" "$phase_func instead of src_compile";
else
[[ $phase_func != src_configure ]] && eqawarn "QA Notice: econf called in" "$phase_func instead of src_configure";
fi;
fi;
: ${ECONF_SOURCE:=.};
if [ -x "${ECONF_SOURCE}/configure" ]; then
if [[ -n $CONFIG_SHELL && "$(head -n1 "$ECONF_SOURCE/configure")" =~ ^'#!'[[:space:]]*/bin/sh([[:space:]]|$) ]]; then
sed -e "1s:^#![[:space:]]*/bin/sh:#!$CONFIG_SHELL:" -i "$ECONF_SOURCE/configure" || die "Substition of shebang in '$ECONF_SOURCE/configure' failed";
fi;
if [ -e "${EPREFIX}"/usr/share/gnuconfig/ ]; then
find "${WORKDIR}" -type f '(' -name config.guess -o -name config.sub ')' -print0 | while read -r -d '' x; do
vecho " * econf: updating ${x/${WORKDIR}\/} with ${EPREFIX}/usr/share/gnuconfig/${x##*/}";
cp -f "${EPREFIX}"/usr/share/gnuconfig/"${x##*/}" "${x}";
done;
fi;
if ! has "$EAPI" 0 1 2 3 3_pre2 && "${ECONF_SOURCE}/configure" --help 2> /dev/null | grep -q disable-dependency-tracking; then
set -- --disable-dependency-tracking "$@";
fi;
local CONF_LIBDIR LIBDIR_VAR="LIBDIR_${ABI}";
if [[ -n ${ABI} && -n ${!LIBDIR_VAR} ]]; then
CONF_LIBDIR=${!LIBDIR_VAR};
fi;
if [[ -n ${CONF_LIBDIR} ]] && ! _hasgq --libdir=\* "$@"; then
export CONF_PREFIX=$(_hasg --exec-prefix=\* "$@");
[[ -z ${CONF_PREFIX} ]] && CONF_PREFIX=$(_hasg --prefix=\* "$@");
: ${CONF_PREFIX:=${EPREFIX}/usr};
CONF_PREFIX=${CONF_PREFIX#*=};
[[ ${CONF_PREFIX} != /* ]] && CONF_PREFIX="/${CONF_PREFIX}";
[[ ${CONF_LIBDIR} != /* ]] && CONF_LIBDIR="/${CONF_LIBDIR}";
set -- --libdir="$(strip_duplicate_slashes ${CONF_PREFIX}${CONF_LIBDIR})" "$@";
fi;
set -- --prefix="${EPREFIX}"/usr ${CBUILD:+--build=${CBUILD}} --host=${CHOST} ${CTARGET:+--target=${CTARGET}} --mandir="${EPREFIX}"/usr/share/man --infodir="${EPREFIX}"/usr/share/info --datadir="${EPREFIX}"/usr/share --sysconfdir="${EPREFIX}"/etc --localstatedir="${EPREFIX}"/var/lib "$@" ${EXTRA_ECONF};
vecho "${ECONF_SOURCE}/configure" "$@";
if ! "${ECONF_SOURCE}/configure" "$@"; then
if [ -s config.log ]; then
echo;
echo "!!! Please attach the following file when seeking support:";
echo "!!! ${PWD}/config.log";
fi;
die "econf failed";
fi;
else
if [ -f "${ECONF_SOURCE}/configure" ]; then
die "configure is not executable";
else
die "no configure script found";
fi;
fi
}
econf_build ()
{
tc-env_build econf --build=${CBUILD:-${CHOST}} "$@"
}
ecvs_clean ()
{
[[ -z $* ]] && set -- .;
find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf;
find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
}
edos2unix ()
{
[[ $# -eq 0 ]] && return 0;
sed -i 's/\r$//' -- "$@" || die
}
eend ()
{
local retval=${1:-0};
shift;
_eend ${retval} eerror "$*";
LAST_E_CMD="eend";
return ${retval}
}
eerror ()
{
elog_base ERROR "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -e "$@" | while read -r; do
echo " $BAD*$NORMAL $RC_INDENTATION$REPLY" 1>&2;
done;
LAST_E_CMD="eerror";
return 0
}
egetent ()
{
local db=$1 key=$2;
[[ $# -ge 3 ]] && die "usage: egetent <database> <key>";
case ${db} in
passwd | group)
;;
*)
die "sorry, database '${db}' not yet supported; file a bug"
;;
esac;
case ${CHOST} in
*-darwin[678])
case ${key} in
*[!0-9]*)
nidump ${db} . | awk -F: "(\$1 ~ /^${key}\$/) {print;exit;}"
;;
*)
nidump ${db} . | awk -F: "(\$3 == ${key}) {print;exit;}"
;;
esac
;;
*-darwin*)
local mykey;
case ${db} in
passwd)
db="Users" mykey="UniqueID"
;;
group)
db="Groups" mykey="PrimaryGroupID"
;;
esac;
case ${key} in
*[!0-9]*)
dscl . -read /${db}/${key} 2> /dev/null | grep RecordName
;;
*)
dscl . -search /${db} ${mykey} ${key} 2> /dev/null
;;
esac
;;
*-freebsd* | *-dragonfly*)
case ${db} in
passwd)
db="user"
;;
*)
;;
esac;
local opts;
if [[ ${key} == [[:digit:]]* ]]; then
[[ ${db} == "user" ]] && opts="-u" || opts="-g";
fi;
pw show ${db} ${opts} "${key}" -q
;;
*-netbsd* | *-openbsd*)
grep "${key}:\*:" /etc/${db}
;;
*)
nscd -i "${db}" 2> /dev/null;
getent "${db}" "${key}"
;;
esac
}
egethome ()
{
local pos;
[[ $# -eq 1 ]] || die "usage: egethome <user>";
case ${CHOST} in
*-darwin* | *-freebsd* | *-dragonfly*)
pos=9
;;
*)
pos=6
;;
esac;
egetent passwd "$1" | cut -d: -f${pos}
}
egetshell ()
{
local pos;
[[ $# -eq 1 ]] || die "usage: egetshell <user>";
case ${CHOST} in
*-darwin* | *-freebsd* | *-dragonfly*)
pos=10
;;
*)
pos=7
;;
esac;
egetent passwd "$1" | cut -d: -f${pos}
}
einfo ()
{
elog_base INFO "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -e "$@" | while read -r; do
echo " $GOOD*$NORMAL $REPLY";
done;
LAST_E_CMD="einfo";
return 0
}
einfon ()
{
elog_base INFO "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -ne " ${GOOD}*${NORMAL} $*";
LAST_E_CMD="einfon";
return 0
}
einstall ()
{
local LOCAL_EXTRA_EINSTALL="${EXTRA_EINSTALL}";
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
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:+set}" = set ]; 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="${ED}usr" datadir="${ED}usr/share" infodir="${ED}usr/share/info" localstatedir="${ED}var/lib" mandir="${ED}usr/share/man" sysconfdir="${ED}etc" ${LOCAL_EXTRA_EINSTALL} ${MAKEOPTS} ${EXTRA_EMAKE} -j1 "$@" install;
fi;
${MAKE:-make} prefix="${ED}usr" datadir="${ED}usr/share" infodir="${ED}usr/share/info" localstatedir="${ED}var/lib" mandir="${ED}usr/share/man" sysconfdir="${ED}etc" ${LOCAL_EXTRA_EINSTALL} ${MAKEOPTS} ${EXTRA_EMAKE} -j1 "$@" install || die "einstall failed";
else
die "no Makefile found";
fi
}
elog ()
{
elog_base LOG "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -e "$@" | while read -r; do
echo " $GOOD*$NORMAL $REPLY";
done;
LAST_E_CMD="elog";
return 0
}
elog_base ()
{
local messagetype;
[ -z "${1}" -o -z "${T}" -o ! -d "${T}/logging" ] && return 1;
case "${1}" in
INFO | WARN | ERROR | LOG | QA)
messagetype="${1}";
shift
;;
*)
vecho -e " ${BAD}*${NORMAL} Invalid use of internal function elog_base(), next message will not be logged";
return 1
;;
esac;
echo -e "$@" | while read -r; do
echo "$messagetype $REPLY" >> "${T}/logging/${EBUILD_PHASE:-other}";
done;
return 0
}
emktemp ()
{
local exe="touch";
[[ $1 == -d ]] && exe="mkdir" && shift;
local topdir=$1;
if [[ -z ${topdir} ]]; then
[[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
fi;
if ! type -P mktemp > /dev/null; then
local tmp=/;
while [[ -e ${tmp} ]]; do
tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
done;
${exe} "${tmp}" || ${exe} -p "${tmp}";
echo "${tmp}";
else
if [[ ${exe} == "touch" ]]; then
TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
else
TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
fi;
fi
}
enable_cmake-utils_src_compile ()
{
debug-print-function ${FUNCNAME} "$@";
has src_configure ${CMAKE_EXPF} || cmake-utils_src_configure;
cmake-utils_src_make "$@"
}
enable_cmake-utils_src_configure ()
{
debug-print-function ${FUNCNAME} "$@";
[[ "${CMAKE_REMOVE_MODULES}" == "yes" ]] && {
local name;
for name in ${CMAKE_REMOVE_MODULES_LIST};
do
find "${S}" -name ${name}.cmake -exec rm -v {} +;
done
};
_check_build_dir;
if [[ ! -e ${CMAKE_USE_DIR}/CMakeLists.txt ]]; then
eerror "Unable to locate CMakeLists.txt under:";
eerror "\"${CMAKE_USE_DIR}/CMakeLists.txt\"";
eerror "Consider not inheriting the cmake eclass.";
die "FATAL: Unable to find CMakeLists.txt";
fi;
_modify-cmakelists;
export XDG_CONFIG_HOME="${T}";
if [[ ${CMAKE_BUILD_TYPE} = Gentoo ]]; then
if ! has debug ${IUSE//+} || ! use debug; then
append-cppflags -DNDEBUG;
fi;
fi;
local build_rules=${CMAKE_BUILD_DIR}/gentoo_rules.cmake;
cat > "${build_rules}" <<-_EOF_
SET (CMAKE_C_COMPILER $(type -P $(tc-getCC)) CACHE FILEPATH "C compiler" FORCE)
SET (CMAKE_C_COMPILE_OBJECT "<CMAKE_C_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C compile command" FORCE)
SET (CMAKE_CXX_COMPILER $(type -P $(tc-getCXX)) CACHE FILEPATH "C++ compiler" FORCE)
SET (CMAKE_CXX_COMPILE_OBJECT "<CMAKE_CXX_COMPILER> <DEFINES> ${CPPFLAGS} <FLAGS> -o <OBJECT> -c <SOURCE>" CACHE STRING "C++ compile command" FORCE)
_EOF_
has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=;
if [[ -n ${EPREFIX} ]]; then
cat >> "${build_rules}" <<-_EOF_
# in Prefix we need rpath and must ensure cmake gets our default linker path
# right ... except for Darwin hosts
IF (NOT APPLE)
SET (CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
SET (CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH "${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)"
CACHE STRING "" FORCE)
ELSE ()
SET(CMAKE_PREFIX_PATH "${EPREFIX}${PREFIX}" CACHE STRING ""FORCE)
SET(CMAKE_SKIP_BUILD_RPATH OFF CACHE BOOL "" FORCE)
SET(CMAKE_SKIP_RPATH OFF CACHE BOOL "" FORCE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE CACHE BOOL "")
SET(CMAKE_INSTALL_RPATH "${EPREFIX}${PREFIX}/lib;${EPREFIX}/usr/${CHOST}/lib/gcc;${EPREFIX}/usr/${CHOST}/lib;${EPREFIX}/usr/$(get_libdir);${EPREFIX}/$(get_libdir)" CACHE STRING "" FORCE)
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE CACHE BOOL "" FORCE)
SET(CMAKE_INSTALL_NAME_DIR "${EPREFIX}${PREFIX}/lib" CACHE STRING "" FORCE)
ENDIF (NOT APPLE)
_EOF_
fi
local common_config=${CMAKE_BUILD_DIR}/gentoo_common_config.cmake;
local libdir=$(get_libdir);
cat > "${common_config}" <<-_EOF_
SET (LIB_SUFFIX ${libdir/lib} CACHE STRING "library path suffix" FORCE)
SET (CMAKE_INSTALL_LIBDIR ${PREFIX}/${libdir} CACHE PATH "Output directory for libraries")
_EOF_
[[ "${NOCOLOR}" = true || "${NOCOLOR}" = yes ]] && echo 'SET (CMAKE_COLOR_MAKEFILE OFF CACHE BOOL "pretty colors during make" FORCE)' >> "${common_config}";
if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
local mycmakeargs_local=(${mycmakeargs});
else
local mycmakeargs_local=("${mycmakeargs[@]}");
fi;
local cmakeargs=(--no-warn-unused-cli -C "${common_config}" -DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}" "${mycmakeargs_local[@]}" -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_INSTALL_DO_STRIP=OFF -DCMAKE_USER_MAKE_RULES_OVERRIDE="${build_rules}" "${MYCMAKEARGS}");
pushd "${CMAKE_BUILD_DIR}" > /dev/null;
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: mycmakeargs is ${mycmakeargs_local[*]}";
echo "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}";
"${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed";
popd > /dev/null
}
enable_cmake-utils_src_install ()
{
debug-print-function ${FUNCNAME} "$@";
_check_build_dir;
pushd "${CMAKE_BUILD_DIR}" > /dev/null;
base_src_install "$@";
popd > /dev/null;
if [[ -n "${DOCS}" ]] && [[ "$(declare -p DOCS 2>/dev/null 2>&1)" != "declare -a"* ]]; then
dodoc ${DOCS} || die "dodoc failed";
fi;
if [[ -n "${HTML_DOCS}" ]] && [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" != "declare -a"* ]]; then
dohtml -r ${HTML_DOCS} || die "dohtml failed";
fi
}
enable_cmake-utils_src_test ()
{
debug-print-function ${FUNCNAME} "$@";
local ctestargs;
_check_build_dir;
pushd "${CMAKE_BUILD_DIR}" > /dev/null;
[[ -e CTestTestfile.cmake ]] || {
echo "No tests found. Skipping.";
return 0
};
[[ -n ${TEST_VERBOSE} ]] && ctestargs="--extra-verbose --output-on-failure";
if ctest ${ctestargs} "$@"; then
einfo "Tests succeeded.";
else
if [[ -n "${CMAKE_YES_I_WANT_TO_SEE_THE_TEST_LOG}" ]]; then
eerror "Tests failed. Test log ${CMAKE_BUILD_DIR}/Testing/Temporary/LastTest.log follows:";
eerror "--START TEST LOG--------------------------------------------------------------";
cat "${CMAKE_BUILD_DIR}/Testing/Temporary/LastTest.log";
eerror "--END TEST LOG----------------------------------------------------------------";
die "Tests failed.";
else
die "Tests failed. When you file a bug, please attach the following file: \n\t${CMAKE_BUILD_DIR}/Testing/Temporary/LastTest.log";
fi;
fi;
popd > /dev/null
}
enewgroup ()
{
_assert_pkg_ebuild_phase ${FUNCNAME};
local egroup=$1;
shift;
if [[ -z ${egroup} ]]; then
eerror "No group specified !";
die "Cannot call enewgroup without a group";
fi;
if [[ -n $(egetent group "${egroup}") ]]; then
return 0;
fi;
einfo "Adding group '${egroup}' to your system ...";
local egid=$1;
shift;
if [[ ! -z ${egid} ]]; then
if [[ ${egid} -gt 0 ]]; then
if [[ -n $(egetent group ${egid}) ]]; then
egid="next available; requested gid taken";
fi;
else
eerror "Groupid given but is not greater than 0 !";
die "${egid} is not a valid GID";
fi;
else
egid="next available";
fi;
einfo " - Groupid: ${egid}";
if [[ $# -gt 0 ]]; then
die "extra arguments no longer supported; please file a bug";
fi;
function _enewgroup_next_gid ()
{
if [[ ${egid} == *[!0-9]* ]]; then
for ((egid = 101; egid <= 999; egid++))
do
[[ -z $(egetent group ${egid}) ]] && break;
done;
fi
};
case ${CHOST} in
*-darwin*)
_enewgroup_next_gid;
dscl . create "/groups/${egroup}" gid ${egid};
dscl . create "/groups/${egroup}" passwd '*'
;;
*-freebsd* | *-dragonfly*)
_enewgroup_next_gid;
pw groupadd "${egroup}" -g ${egid} || die
;;
*-netbsd*)
_enewgroup_next_gid;
groupadd -g ${egid} "${egroup}" || die
;;
*)
local opts;
if [[ ${egid} == *[!0-9]* ]]; then
opts="";
else
opts="-g ${egid}";
fi;
groupadd -r ${opts} "${egroup}" || die
;;
esac
}
enewuser ()
{
_assert_pkg_ebuild_phase ${FUNCNAME};
local euser=$1;
shift;
if [[ -z ${euser} ]]; then
eerror "No username specified !";
die "Cannot call enewuser without a username";
fi;
if [[ -n $(egetent passwd "${euser}") ]]; then
return 0;
fi;
einfo "Adding user '${euser}' to your system ...";
local opts=();
local euid=$1;
shift;
if [[ -n ${euid} && ${euid} != -1 ]]; then
if [[ ${euid} -gt 0 ]]; then
if [[ -n $(egetent passwd ${euid}) ]]; then
euid="next";
fi;
else
eerror "Userid given but is not greater than 0 !";
die "${euid} is not a valid UID";
fi;
else
euid="next";
fi;
if [[ ${euid} == "next" ]]; then
for ((euid = 101; euid <= 999; euid++))
do
[[ -z $(egetent passwd ${euid}) ]] && break;
done;
fi;
opts+=(-u ${euid});
einfo " - Userid: ${euid}";
local eshell=$1;
shift;
if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then
if [[ ! -e ${ROOT}${eshell} ]]; then
eerror "A shell was specified but it does not exist !";
die "${eshell} does not exist in ${ROOT}";
fi;
if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then
eerror "Do not specify ${eshell} yourself, use -1";
die "Pass '-1' as the shell parameter";
fi;
else
for eshell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;
do
[[ -x ${ROOT}${eshell} ]] && break;
done;
if [[ ${eshell} == "/dev/null" ]]; then
eerror "Unable to identify the shell to use, proceeding with userland default.";
case ${USERLAND} in
GNU)
eshell="/bin/false"
;;
BSD)
eshell="/sbin/nologin"
;;
Darwin)
eshell="/usr/sbin/nologin"
;;
*)
die "Unable to identify the default shell for userland ${USERLAND}"
;;
esac;
fi;
fi;
einfo " - Shell: ${eshell}";
opts+=(-s "${eshell}");
local ehome=$1;
shift;
if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then
ehome="/dev/null";
fi;
einfo " - Home: ${ehome}";
opts+=(-d "${ehome}");
local egroups=$1;
shift;
local g egroups_arr;
IFS="," read -r -a egroups_arr <<< "${egroups}";
shift;
if [[ ${#egroups_arr[@]} -gt 0 ]]; then
local defgroup exgroups;
for g in "${egroups_arr[@]}";
do
if [[ -z $(egetent group "${g}") ]]; then
eerror "You must add group ${g} to the system first";
die "${g} is not a valid GID";
fi;
if [[ -z ${defgroup} ]]; then
defgroup=${g};
else
exgroups+=",${g}";
fi;
done;
opts+=(-g "${defgroup}");
if [[ ! -z ${exgroups} ]]; then
opts+=(-G "${exgroups:1}");
fi;
fi;
einfo " - Groups: ${egroups:-(none)}";
if [[ $# -gt 0 ]]; then
die "extra arguments no longer supported; please file a bug";
else
local comment="added by portage for ${PN}";
opts+=(-c "${comment}");
einfo " - GECOS: ${comment}";
fi;
case ${CHOST} in
*-darwin*)
dscl . create "/users/${euser}" uid ${euid};
dscl . create "/users/${euser}" shell "${eshell}";
dscl . create "/users/${euser}" home "${ehome}";
dscl . create "/users/${euser}" realname "added by portage for ${PN}";
for g in "${egroups_arr[@]}";
do
dscl . merge "/groups/${g}" users "${euser}";
done
;;
*-freebsd* | *-dragonfly*)
pw useradd "${euser}" "${opts[@]}" || die
;;
*-netbsd*)
useradd "${opts[@]}" "${euser}" || die
;;
*-openbsd*)
useradd -u ${euid} -s "${eshell}" -d "${ehome}" -g "${egroups}" "${euser}" || die
;;
*)
useradd -r "${opts[@]}" "${euser}" || die
;;
esac;
if [[ ! -e ${ROOT}/${ehome} ]]; then
einfo " - Creating ${ehome} in ${ROOT}";
mkdir -p "${ROOT}/${ehome}";
chown "${euser}" "${ROOT}/${ehome}";
chmod 755 "${ROOT}/${ehome}";
fi
}
epatch ()
{
function _epatch_draw_line ()
{
[[ -z $1 ]] && set "$(printf "%65s" '')";
echo "${1//?/=}"
};
unset P4CONFIG P4PORT P4USER;
local EPATCH_OPTS=(${EPATCH_OPTS[*]});
while [[ $# -gt 0 ]]; do
case $1 in
-*)
EPATCH_OPTS+=("$1")
;;
*)
break
;;
esac;
shift;
done;
if [[ $# -gt 1 ]]; then
local m;
for m in "$@";
do
epatch "${m}";
done;
return 0;
fi;
local SINGLE_PATCH="no";
[[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}";
if [[ -f $1 ]]; then
SINGLE_PATCH="yes";
set -- "$1";
local EPATCH_SUFFIX=$1;
else
if [[ -d $1 ]]; then
set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"};
else
if [[ -f ${EPATCH_SOURCE}/$1 ]]; then
epatch "${EPATCH_SOURCE}/$1";
return $?;
else
[[ $# -ne 0 ]] && EPATCH_SOURCE=$1;
echo;
eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:";
eerror;
eerror " ${EPATCH_SOURCE}";
eerror " ( ${EPATCH_SOURCE##*/} )";
echo;
die "Cannot find \$EPATCH_SOURCE!";
fi;
fi;
fi;
EPATCH_OPTS="${EPATCH_COMMON_OPTS} ${EPATCH_OPTS[*]}";
local PIPE_CMD;
case ${EPATCH_SUFFIX##*\.} in
xz)
PIPE_CMD="xz -dc"
;;
lzma)
PIPE_CMD="lzma -dc"
;;
bz2)
PIPE_CMD="bzip2 -dc"
;;
gz | Z | z)
PIPE_CMD="gzip -dc"
;;
ZIP | zip)
PIPE_CMD="unzip -p"
;;
*)
;;
esac;
[[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}";
local x;
for x in "$@";
do
[[ ! -f ${x} ]] && continue;
local patchname=${x##*/};
local a=${patchname#*_};
a=${a%%_*};
if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then
continue;
fi;
if [[ -n ${EPATCH_EXCLUDE} ]]; then
eshopts_push -o noglob;
local ex;
for ex in ${EPATCH_EXCLUDE};
do
if [[ ${patchname} == ${ex} ]]; then
eshopts_pop;
continue 2;
fi;
done;
eshopts_pop;
fi;
if [[ ${SINGLE_PATCH} == "yes" ]]; then
if [[ -n ${EPATCH_SINGLE_MSG} ]]; then
einfo "${EPATCH_SINGLE_MSG}";
else
einfo "Applying ${patchname} ...";
fi;
else
einfo " ${patchname} ...";
fi;
local STDERR_TARGET="${T}/${patchname}.out";
if [[ -e ${STDERR_TARGET} ]]; then
STDERR_TARGET="${T}/${patchname}-$$.out";
fi;
printf "***** %s *****\nPWD: %s\n\n" "${patchname}" "${PWD}" > "${STDERR_TARGET}";
local count=0;
local PATCH_TARGET;
if [[ -n ${PIPE_CMD} ]]; then
PATCH_TARGET="${T}/$$.patch";
echo "PIPE_COMMAND: ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}";
if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
echo;
eerror "Could not extract patch!";
count=5;
break;
fi;
else
PATCH_TARGET=${x};
fi;
local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
if [[ -n ${abs_paths} ]]; then
count=1;
printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}";
fi;
local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}");
if [[ -n ${rel_paths} ]]; then
eqawarn "QA Notice: Your patch uses relative paths '../'.";
eqawarn " In the future this will cause a failure.";
eqawarn "${rel_paths}";
fi;
local patch_cmd;
while [[ ${count} -lt 5 ]]; do
patch_cmd="${BASH_ALIASES[patch]:-patch} -p${count} ${EPATCH_OPTS}";
( _epatch_draw_line "***** ${patchname} *****";
echo;
echo "PATCH COMMAND: ${patch_cmd} < '${PATCH_TARGET}'";
echo;
_epatch_draw_line "***** ${patchname} *****";
${patch_cmd} --dry-run -f < "${PATCH_TARGET}" 2>&1;
ret=$?;
echo;
echo "patch program exited with status ${ret}";
exit ${ret} ) >> "${STDERR_TARGET}";
if [ $? -eq 0 ]; then
( _epatch_draw_line "***** ${patchname} *****";
echo;
echo "ACTUALLY APPLYING ${patchname} ...";
echo;
_epatch_draw_line "***** ${patchname} *****";
${patch_cmd} < "${PATCH_TARGET}" 2>&1;
ret=$?;
echo;
echo "patch program exited with status ${ret}";
exit ${ret} ) >> "${STDERR_TARGET}";
if [ $? -ne 0 ]; then
echo;
eerror "A dry-run of patch command succeeded, but actually";
eerror "applying the patch failed!";
count=5;
fi;
break;
fi;
: $(( count++ ));
done;
if [[ -n ${PIPE_CMD} ]]; then
rm -f "${PATCH_TARGET}";
fi;
if [[ ${count} -ge 5 ]]; then
echo;
eerror "Failed Patch: ${patchname} !";
eerror " ( ${PATCH_TARGET} )";
eerror;
eerror "Include in your bugreport the contents of:";
eerror;
eerror " ${STDERR_TARGET}";
echo;
die "Failed Patch: ${patchname}!";
fi;
rm -f "${STDERR_TARGET}";
cat >> "${T}/epatch.log" <<-EOF
PATCH: ${x}
CMD: ${patch_cmd}
PWD: ${PWD}
EOF
eend 0;
done;
[[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
:
}
epatch_user ()
{
[[ $# -ne 0 ]] && die "epatch_user takes no options";
local applied="${T}/epatch_user.log";
[[ -e ${applied} ]] && return 2;
local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
for check in ${CATEGORY}/{${P}-${PR},${P},${PN}};
do
EPATCH_SOURCE=${base}/${CTARGET}/${check};
[[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check};
[[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check};
if [[ -d ${EPATCH_SOURCE} ]]; then
EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch;
echo "${EPATCH_SOURCE}" > "${applied}";
return 0;
fi;
done;
echo "none" > "${applied}";
return 1
}
epause ()
{
ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
epunt_cxx ()
{
local dir=$1;
[[ -z ${dir} ]] && dir=${S};
ebegin "Removing useless C++ checks";
local f;
find "${dir}" -name configure | while read f; do
patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null;
done;
eend 0
}
eqawarn ()
{
elog_base QA "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -e "$@" | while read -r; do
vecho " $WARN*$NORMAL $REPLY" 1>&2;
done;
LAST_E_CMD="eqawarn";
return 0
}
eshopts_pop ()
{
local s;
estack_pop eshopts s || die "${FUNCNAME}: unbalanced push";
if [[ ${s} == "shopt -"* ]]; then
eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}";
else
set +$- || die "${FUNCNAME}: sanity: invalid shell settings: $-";
set -${s} || die "${FUNCNAME}: sanity: unable to restore saved shell settings: ${s}";
fi
}
eshopts_push ()
{
if [[ $1 == -[su] ]]; then
estack_push eshopts "$(shopt -p)";
[[ $# -eq 0 ]] && return 0;
shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*";
else
estack_push eshopts $-;
[[ $# -eq 0 ]] && return 0;
set "$@" || die "${FUNCNAME}: bad options to set: $*";
fi
}
estack_pop ()
{
[[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments";
local __estack_name="__ESTACK_$1__";
shift;
local __estack_retvar=$1;
shift;
eval local __estack_i=\${#${__estack_name}\[@\]};
[[ $(( --__estack_i )) -eq -1 ]] && return 1;
if [[ -n ${__estack_retvar} ]]; then
eval ${__estack_retvar}=\"\${${__estack_name}\[${__estack_i}\]}\";
fi;
eval unset ${__estack_name}\[${__estack_i}\]
}
estack_push ()
{
[[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments";
local stack_name="__ESTACK_$1__";
shift;
eval ${stack_name}+=\( \"\$@\" \)
}
esvn_clean ()
{
[[ -z $* ]] && set -- .;
find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
esyslog ()
{
return 0
}
eumask_pop ()
{
[[ $# -eq 0 ]] || die "${FUNCNAME}: we take no options";
local s;
estack_pop eumask s || die "${FUNCNAME}: unbalanced push";
umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}"
}
eumask_push ()
{
estack_push eumask "$(umask)";
umask "$@" || die "${FUNCNAME}: bad options to umask: $*"
}
ewarn ()
{
elog_base WARN "$*";
[[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo;
echo -e "$@" | while read -r; do
echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" 1>&2;
done;
LAST_E_CMD="ewarn";
return 0
}
exeinto ()
{
if [ "$1" == "/" ]; then
export _E_EXEDESTTREE_="";
else
export _E_EXEDESTTREE_="$1";
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
if [ ! -d "${ED}${_E_EXEDESTTREE_}" ]; then
install -d "${ED}${_E_EXEDESTTREE_}";
local ret=$?;
if [[ $ret -ne 0 ]]; then
helpers_die "${FUNCNAME[0]} failed";
return $ret;
fi;
fi;
fi
}
exeopts ()
{
export EXEOPTIONS="$@";
has -s ${EXEOPTIONS} && die "Never call exeopts() with -s"
}
filter-flags ()
{
_filter-hardened "$@";
local v;
for v in $(all-flag-vars);
do
_filter-var ${v} "$@";
done;
return 0
}
filter-ldflags ()
{
_filter-var LDFLAGS "$@";
return 0
}
filter-lfs-flags ()
{
[[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments";
filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
}
filter-mfpmath ()
{
local orig_mfpmath new_math prune_math;
orig_mfpmath=$(get-flag -mfpmath);
new_math=$(get-flag mfpmath);
new_math=" ${new_math//,/ } ";
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;
local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID";
local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
SECONDS SHELL SHLVL _";
local filtered_sandbox_vars="SANDBOX_ACTIVE SANDBOX_BASHRC
SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
SANDBOX_LOG SANDBOX_ON";
local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR";
local misc_garbage_vars="_portage_filter_opts";
filtered_vars="$readonly_bash_vars $bash_misc_vars
$PORTAGE_READONLY_VARS $misc_garbage_vars";
case "${EAPI:-0}" in
0 | 1 | 2)
[[ " ${FEATURES} " == *" force-prefix "* ]] && filtered_vars+=" ED EPREFIX EROOT"
;;
*)
filtered_vars+=" ED EPREFIX EROOT"
;;
esac;
if has --filter-sandbox $*; then
filtered_vars="${filtered_vars} SANDBOX_.*";
else
filtered_vars="${filtered_vars} ${filtered_sandbox_vars}";
fi;
if has --filter-features $*; then
filtered_vars="${filtered_vars} FEATURES PORTAGE_FEATURES";
fi;
if has --filter-path $*; then
filtered_vars+=" PATH";
fi;
if has --filter-locale $*; then
filtered_vars+=" LANG LC_ALL LC_COLLATE
LC_CTYPE LC_MESSAGES LC_MONETARY
LC_NUMERIC LC_PAPER LC_TIME";
fi;
if ! has --allow-extra-vars $*; then
if [ "${EMERGE_FROM}" = binary ]; then
filtered_vars+=" ${binpkg_untrusted_vars}";
else
filtered_vars+=" ${PORTAGE_SAVED_READONLY_VARS}";
filtered_vars+=" ${PORTAGE_MUTABLE_FILTERED_VARS}";
fi;
fi;
"${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars}" || die "filter-bash-environment.py failed"
}
gcc-fullversion ()
{
_gcc_fullversion '$1.$2.$3' "$@"
}
gcc-major-version ()
{
_gcc_fullversion '$1' "$@"
}
gcc-micro-version ()
{
_gcc_fullversion '$3' "$@"
}
gcc-minor-version ()
{
_gcc_fullversion '$2' "$@"
}
gcc-specs-directive ()
{
local directive subdname subdirective;
directive="$(_gcc-specs-directive_raw $1)";
while [[ ${directive} == *%\(*\)* ]]; do
subdname=${directive/*%\(};
subdname=${subdname/\)*};
subdirective="$(_gcc-specs-directive_raw ${subdname})";
directive="${directive//\%(${subdname})/${subdirective}}";
done;
echo "${directive}";
return 0
}
gcc-specs-nostrict ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]])
}
gcc-specs-now ()
{
local directive;
directive=$(gcc-specs-directive link_command);
return $([[ "${directive/\{!nonow:}" != "${directive}" ]])
}
gcc-specs-pie ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!nopie:}" != "${directive}" ]])
}
gcc-specs-relro ()
{
local directive;
directive=$(gcc-specs-directive link_command);
return $([[ "${directive/\{!norelro:}" != "${directive}" ]])
}
gcc-specs-ssp ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]])
}
gcc-specs-ssp-to-all ()
{
local directive;
directive=$(gcc-specs-directive cc1);
return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]])
}
gcc-version ()
{
_gcc_fullversion '$1.$2' "$@"
}
gen_usr_ldscript ()
{
local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
[[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/;
tc-is-static-only && return;
dodir /usr/${libdir};
if [[ $1 == "-a" ]]; then
auto=true;
shift;
dodir /${libdir};
fi;
output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
[[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
for lib in "$@";
do
local tlib;
if ${auto}; then
lib="lib${lib}${suffix}";
else
[[ -r ${ED}/${libdir}/${lib} ]] || continue;
fi;
case ${CTARGET:-${CHOST}} in
*-darwin*)
if ${auto}; then
tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
else
tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib});
fi;
[[ -z ${tlib} ]] && die "unable to read install_name from ${lib}";
tlib=${tlib##*/};
if ${auto}; then
mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
fi;
rm -f "${ED}"/${libdir}/${lib};
fi;
if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
chmod u+w "${ED}${libdir}/${tlib}";
local nowrite=yes;
fi;
install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
[[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
pushd "${ED}/usr/${libdir}" > /dev/null;
ln -snf "../../${libdir}/${tlib}" "${lib}";
popd > /dev/null
;;
*-aix* | *-irix* | *64*-hpux* | *-interix* | *-winnt*)
if ${auto}; then
mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
tlib=$(readlink "${ED}"/${libdir}/${lib});
tlib=${tlib##*/};
if [[ -z ${tlib} ]]; then
tlib=${lib};
else
rm -f "${ED}"/${libdir}/${lib};
fi;
else
tlib=${lib};
fi;
pushd "${ED}/usr/${libdir}" > /dev/null;
ln -snf "../../${libdir}/${tlib}" "${lib}";
popd > /dev/null
;;
hppa*-hpux*)
if ${auto}; then
tlib=$(chatr "${ED}"/usr/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
[[ -z ${tlib} ]] && tlib=${lib};
tlib=${tlib##*/};
mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
if [[ ${tlib} != ${lib}* ]]; then
mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
fi;
[[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
else
tlib=$(chatr "${ED}"/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
[[ -z ${tlib} ]] && tlib=${lib};
tlib=${tlib##*/};
fi;
pushd "${ED}"/usr/${libdir} > /dev/null;
ln -snf "../../${libdir}/${tlib}" "${lib}";
[[ ${tlib} != ${lib} ]] && ln -snf "../../${libdir}/${tlib}" "${tlib}";
popd > /dev/null
;;
*)
if ${auto}; then
tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
[[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}";
mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
if [[ ${tlib} != ${lib}* ]]; then
mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
fi;
rm -f "${ED}"/${libdir}/${lib};
else
tlib=${lib};
fi;
cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT
/* GNU ld script
Since Gentoo has critical dynamic libraries in /lib, and the static versions
in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
run into linking problems. This "fake" dynamic lib is a linker script that
redirects the linker to the real lib. And yes, this works in the cross-
compiling scenario as the sysroot-ed linker will prepend the real path.
See bug http://bugs.gentoo.org/4411 for more info.
*/
${output_format}
GROUP ( ${EPREFIX}/${libdir}/${tlib} )
END_LDSCRIPT
;;
esac
fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
done
}
get-flag ()
{
local f var findflag="$1";
for var in $(all-flag-vars);
do
for f in ${!var};
do
if [ "${f/${findflag}}" != "${f}" ]; then
printf "%s\n" "${f/-${findflag}=}";
return 0;
fi;
done;
done;
return 1
}
get_KV ()
{
[[ -z ${_RC_GET_KV_CACHE} ]] && _RC_GET_KV_CACHE=$(uname -r);
echo $(KV_to_int "${_RC_GET_KV_CACHE}");
return $?
}
get_abi_CFLAGS ()
{
get_abi_var CFLAGS "$@"
}
get_abi_CHOST ()
{
get_abi_var CHOST "$@"
}
get_abi_CTARGET ()
{
get_abi_var CTARGET "$@"
}
get_abi_FAKE_TARGETS ()
{
get_abi_var FAKE_TARGETS "$@"
}
get_abi_LDFLAGS ()
{
get_abi_var LDFLAGS "$@"
}
get_abi_LIBDIR ()
{
get_abi_var LIBDIR "$@"
}
get_abi_var ()
{
local flag=$1;
local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};
local var="${flag}_${abi}";
echo ${!var}
}
get_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;
local abi;
local dir;
for abi in ${MULTILIB_ABIS};
do
libdirs+=" $(get_abi_LIBDIR ${abi})";
done;
[[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";
echo "${libdirs}"
}
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
has ${x} ${ABI_DENY} || order="${order} ${x}";
fi;
done;
has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";
if [[ -n ${ABI_ALLOW} ]]; then
local ordera="";
for x in ${order};
do
if has ${x} ${ABI_ALLOW}; then
ordera="${ordera} ${x}";
fi;
done;
order=${ordera};
fi;
else
order=${DEFAULT_ABI};
fi;
if [[ -z ${order} ]]; then
die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
fi;
echo ${order};
return 0
}
get_libdir ()
{
local CONF_LIBDIR;
if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
echo ${CONF_LIBDIR_OVERRIDE};
else
get_abi_LIBDIR;
fi
}
get_libname ()
{
local libname;
local ver=$1;
case ${CHOST} in
*-cygwin | mingw* | *-mingw*)
libname="dll"
;;
*-darwin*)
libname="dylib"
;;
*-mint*)
libname="irrelevant"
;;
hppa*-hpux*)
libname="sl"
;;
*)
libname="so"
;;
esac;
if [[ -z $* ]]; then
echo ".${libname}";
else
for ver in "$@";
do
case ${CHOST} in
*-darwin*)
echo ".${ver}.${libname}"
;;
*-mint*)
echo ".${libname}"
;;
*)
echo ".${libname}.${ver}"
;;
esac;
done;
fi
}
get_modname ()
{
local modname;
local ver=$1;
case ${CHOST} in
*-darwin*)
modname="bundle"
;;
*)
modname="so"
;;
esac;
echo ".${modname}"
}
has ()
{
local needle=$1;
shift;
local x;
for x in "$@";
do
[ "${x}" = "${needle}" ] && return 0;
done;
return 1
}
has_m32 ()
{
die "${FUNCNAME}: don't use this anymore"
}
has_m64 ()
{
eqawarn "${FUNCNAME}: don't use this anymore";
local temp="$(emktemp)";
echo "int main() { return(0); }" > "${temp}".c;
MY_CC=$(tc-getCC);
${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
local ret=$?;
rm -f "${temp}".c;
[[ ${ret} != 1 ]] && return 0;
return 1
}
has_multilib_profile ()
{
[ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
has_phase_defined_up_to ()
{
local phase;
for phase in unpack prepare configure compile install;
do
has ${phase} ${DEFINED_PHASES} && return 0;
[[ ${phase} == $1 ]] && return 1;
done;
return 1
}
has_version ()
{
local eroot;
case "$EAPI" in
0 | 1 | 2)
[[ " ${FEATURES} " == *" force-prefix "* ]] && eroot=${ROOT%/}${EPREFIX}/ || eroot=${ROOT}
;;
*)
eroot=${ROOT%/}${EPREFIX}/
;;
esac;
if [[ -n $PORTAGE_IPC_DAEMON ]]; then
"$PORTAGE_BIN_PATH"/ebuild-ipc has_version "${eroot}" "$1";
else
PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" has_version "${eroot}" "$1";
fi;
local retval=$?;
case "${retval}" in
0 | 1)
return ${retval}
;;
*)
die "unexpected portageq exit code: ${retval}"
;;
esac
}
hasq ()
{
has $EBUILD_PHASE prerm postrm || eqawarn "QA Notice: The 'hasq' function is deprecated (replaced by 'has')";
has "$@"
}
hasv ()
{
if has "$@"; then
echo "$1";
return 0;
fi;
return 1
}
helpers_die ()
{
case "${EAPI:-0}" in
0 | 1 | 2 | 3)
echo -e "$@" 1>&2
;;
*)
die "$@"
;;
esac
}
in_iuse ()
{
debug-print-function ${FUNCNAME} "${@}";
[[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()";
local flag=${1};
local liuse=(${IUSE});
has "${flag}" "${liuse[@]#[+-]}"
}
inherit ()
{
ECLASS_DEPTH=$(($ECLASS_DEPTH + 1));
if [[ ${ECLASS_DEPTH} > 1 ]]; then
debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})";
fi;
if [[ -n $ECLASS && -n ${!__export_funcs_var} ]]; then
echo "QA Notice: EXPORT_FUNCTIONS is called before inherit in" "$ECLASS.eclass. For compatibility with <=portage-2.1.6.7," "only call EXPORT_FUNCTIONS after inherit(s)." | fmt -w 75 | while read -r; do
eqawarn "$REPLY";
done;
fi;
local location;
local olocation;
local x;
local PECLASS=$ECLASS;
local prev_export_funcs_var=$__export_funcs_var;
local B_IUSE;
local B_REQUIRED_USE;
local B_DEPEND;
local B_RDEPEND;
local B_PDEPEND;
while [ "$1" ]; do
location="${ECLASSDIR}/${1}.eclass";
olocation="";
export ECLASS="$1";
__export_funcs_var=__export_functions_$ECLASS_DEPTH;
unset $__export_funcs_var;
if [ "${EBUILD_PHASE}" != "depend" ] && [[ ${EBUILD_PHASE} != *rm ]] && [[ ${EMERGE_FROM} != "binary" ]]; then
if ! has $ECLASS $INHERITED $__INHERITED_QA_CACHE; then
eqawarn "QA Notice: ECLASS '$ECLASS' inherited illegally in $CATEGORY/$PF $EBUILD_PHASE";
fi;
fi;
if [ -n "$PORTDIR_OVERLAY" ]; then
local overlay;
for overlay in ${PORTDIR_OVERLAY};
do
olocation="${overlay}/eclass/${1}.eclass";
if [ -e "$olocation" ]; then
location="${olocation}";
debug-print " eclass exists: ${location}";
fi;
done;
fi;
debug-print "inherit: $1 -> $location";
[ ! -e "$location" ] && die "${1}.eclass could not be found by inherit()";
if [ "${location}" == "${olocation}" ] && ! has "${location}" ${EBUILD_OVERLAY_ECLASSES}; then
EBUILD_OVERLAY_ECLASSES="${EBUILD_OVERLAY_ECLASSES} ${location}";
fi;
set -f;
unset B_IUSE B_REQUIRED_USE B_DEPEND B_RDEPEND B_PDEPEND;
[ "${IUSE+set}" = set ] && B_IUSE="${IUSE}";
[ "${REQUIRED_USE+set}" = set ] && B_REQUIRED_USE="${REQUIRED_USE}";
[ "${DEPEND+set}" = set ] && B_DEPEND="${DEPEND}";
[ "${RDEPEND+set}" = set ] && B_RDEPEND="${RDEPEND}";
[ "${PDEPEND+set}" = set ] && B_PDEPEND="${PDEPEND}";
unset IUSE REQUIRED_USE DEPEND RDEPEND PDEPEND;
set +f;
qa_source "$location" || die "died sourcing $location in inherit()";
set -f;
[ "${IUSE+set}" = set ] && E_IUSE+="${E_IUSE:+ }${IUSE}";
[ "${REQUIRED_USE+set}" = set ] && E_REQUIRED_USE+="${E_REQUIRED_USE:+ }${REQUIRED_USE}";
[ "${DEPEND+set}" = set ] && E_DEPEND+="${E_DEPEND:+ }${DEPEND}";
[ "${RDEPEND+set}" = set ] && E_RDEPEND+="${E_RDEPEND:+ }${RDEPEND}";
[ "${PDEPEND+set}" = set ] && E_PDEPEND+="${E_PDEPEND:+ }${PDEPEND}";
[ "${B_IUSE+set}" = set ] && IUSE="${B_IUSE}";
[ "${B_IUSE+set}" = set ] || unset IUSE;
[ "${B_REQUIRED_USE+set}" = set ] && REQUIRED_USE="${B_REQUIRED_USE}";
[ "${B_REQUIRED_USE+set}" = set ] || unset REQUIRED_USE;
[ "${B_DEPEND+set}" = set ] && DEPEND="${B_DEPEND}";
[ "${B_DEPEND+set}" = set ] || unset DEPEND;
[ "${B_RDEPEND+set}" = set ] && RDEPEND="${B_RDEPEND}";
[ "${B_RDEPEND+set}" = set ] || unset RDEPEND;
[ "${B_PDEPEND+set}" = set ] && PDEPEND="${B_PDEPEND}";
[ "${B_PDEPEND+set}" = set ] || unset PDEPEND;
set +f;
if [[ -n ${!__export_funcs_var} ]]; then
for x in ${!__export_funcs_var};
do
debug-print "EXPORT_FUNCTIONS: $x -> ${ECLASS}_$x";
declare -F "${ECLASS}_$x" > /dev/null || die "EXPORT_FUNCTIONS: ${ECLASS}_$x is not defined";
eval "$x() { ${ECLASS}_$x \"\$@\" ; }" > /dev/null;
done;
fi;
unset $__export_funcs_var;
has $1 $INHERITED || export INHERITED="$INHERITED $1";
shift;
done;
((--ECLASS_DEPTH));
if (( ECLASS_DEPTH > 0 )); then
export ECLASS=$PECLASS;
__export_funcs_var=$prev_export_funcs_var;
else
unset ECLASS __export_funcs_var;
fi;
return 0
}
insinto ()
{
if [ "$1" == "/" ]; then
export INSDESTTREE="";
else
export INSDESTTREE=$1;
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
if [ ! -d "${ED}${INSDESTTREE}" ]; then
install -d "${ED}${INSDESTTREE}";
local ret=$?;
if [[ $ret -ne 0 ]]; then
helpers_die "${FUNCNAME[0]} failed";
return $ret;
fi;
fi;
fi
}
insopts ()
{
export INSOPTIONS="$@";
has -s ${INSOPTIONS} && die "Never call insopts() with -s"
}
into ()
{
if [ "$1" == "/" ]; then
export DESTTREE="";
else
export DESTTREE=$1;
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
if [ ! -d "${ED}${DESTTREE}" ]; then
install -d "${ED}${DESTTREE}";
local ret=$?;
if [[ $ret -ne 0 ]]; then
helpers_die "${FUNCNAME[0]} failed";
return $ret;
fi;
fi;
fi
}
is-flag ()
{
is-flagq "$@" && echo true
}
is-flagq ()
{
[[ -n $2 ]] && die "Usage: is-flag <flag>";
local var;
for var in $(all-flag-vars);
do
_is_flagq ${var} "$1" && return 0;
done;
return 1
}
is-ldflag ()
{
is-ldflagq "$@" && echo true
}
is-ldflagq ()
{
[[ -n $2 ]] && die "Usage: is-ldflag <flag>";
_is_flagq LDFLAGS $1
}
is_final_abi ()
{
has_multilib_profile || return 0;
set -- $(get_install_abis);
local LAST_ABI=$#;
[[ ${!LAST_ABI} == ${ABI} ]]
}
keepdir ()
{
dodir "$@";
local x;
[[ " ${FEATURES} " == *" force-prefix "* ]] || case "$EAPI" in
0 | 1 | 2)
local ED=${D}
;;
esac;
if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then
shift;
find "$@" -type d -printf "${ED}%p/.keep_${CATEGORY}_${PN}-${SLOT}\n" | tr "\n" "\0" | while read -r -d ''; do
>> "$REPLY" || die "Failed to recursively create .keep files";
done;
else
for x in "$@";
do
>> "${ED}${x}/.keep_${CATEGORY}_${PN}-${SLOT}" || die "Failed to create .keep in ${ED}${x}";
done;
fi
}
libopts ()
{
export LIBOPTIONS="$@";
has -s ${LIBOPTIONS} && die "Never call libopts() with -s"
}
make_desktop_entry ()
{
[[ -z $1 ]] && die "make_desktop_entry: You must specify the executable";
local exec=${1};
local name=${2:-${PN}};
local icon=${3:-${PN}};
local type=${4};
local fields=${5};
if [[ -z ${type} ]]; then
local catmaj=${CATEGORY%%-*};
local catmin=${CATEGORY##*-};
case ${catmaj} in
app)
case ${catmin} in
accessibility)
type="Utility;Accessibility"
;;
admin)
type=System
;;
antivirus)
type=System
;;
arch)
type="Utility;Archiving"
;;
backup)
type="Utility;Archiving"
;;
cdr)
type="AudioVideo;DiscBurning"
;;
dicts)
type="Office;Dictionary"
;;
doc)
type=Documentation
;;
editors)
type="Utility;TextEditor"
;;
emacs)
type="Development;TextEditor"
;;
emulation)
type="System;Emulator"
;;
laptop)
type="Settings;HardwareSettings"
;;
office)
type=Office
;;
pda)
type="Office;PDA"
;;
vim)
type="Development;TextEditor"
;;
xemacs)
type="Development;TextEditor"
;;
esac
;;
dev)
type="Development"
;;
games)
case ${catmin} in
action | fps)
type=ActionGame
;;
arcade)
type=ArcadeGame
;;
board)
type=BoardGame
;;
emulation)
type=Emulator
;;
kids)
type=KidsGame
;;
puzzle)
type=LogicGame
;;
roguelike)
type=RolePlaying
;;
rpg)
type=RolePlaying
;;
simulation)
type=Simulation
;;
sports)
type=SportsGame
;;
strategy)
type=StrategyGame
;;
esac;
type="Game;${type}"
;;
gnome)
type="Gnome;GTK"
;;
kde)
type="KDE;Qt"
;;
mail)
type="Network;Email"
;;
media)
case ${catmin} in
gfx)
type=Graphics
;;
*)
case ${catmin} in
radio)
type=Tuner
;;
sound)
type=Audio
;;
tv)
type=TV
;;
video)
type=Video
;;
esac;
type="AudioVideo;${type}"
;;
esac
;;
net)
case ${catmin} in
dialup)
type=Dialup
;;
ftp)
type=FileTransfer
;;
im)
type=InstantMessaging
;;
irc)
type=IRCClient
;;
mail)
type=Email
;;
news)
type=News
;;
nntp)
type=News
;;
p2p)
type=FileTransfer
;;
voip)
type=Telephony
;;
esac;
type="Network;${type}"
;;
sci)
case ${catmin} in
astro*)
type=Astronomy
;;
bio*)
type=Biology
;;
calc*)
type=Calculator
;;
chem*)
type=Chemistry
;;
elec*)
type=Electronics
;;
geo*)
type=Geology
;;
math*)
type=Math
;;
physics)
type=Physics
;;
visual*)
type=DataVisualization
;;
esac;
type="Education;Science;${type}"
;;
sys)
type="System"
;;
www)
case ${catmin} in
client)
type=WebBrowser
;;
esac;
type="Network;${type}"
;;
*)
type=
;;
esac;
fi;
if [ "${SLOT}" == "0" ]; then
local desktop_name="${PN}";
else
local desktop_name="${PN}-${SLOT}";
fi;
local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
type=${type%;}${type:+;};
eshopts_push -s extglob;
if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then
ewarn "As described in the Icon Theme Specification, icon file extensions are not";
ewarn "allowed in .desktop files if the value is not an absolute path.";
icon=${icon%.@(xpm|png|svg)};
fi;
eshopts_pop;
cat > "${desktop}" <<-EOF
[Desktop Entry]
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type}
EOF
if [[ ${fields:-=} != *=* ]]; then
ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}";
fields="Path=${fields}";
fi;
[[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}";
( insinto /usr/share/applications;
doins "${desktop}" ) || die "installing desktop file failed"
}
make_session_desktop ()
{
[[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
[[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
local title=$1;
local command=$2;
local desktop=${T}/${wm:-${PN}}.desktop;
shift 2;
cat > "${desktop}" <<-EOF
[Desktop Entry]
Name=${title}
Comment=This session logs you into ${title}
Exec=${command} $*
TryExec=${command}
Type=XSession
EOF
( insinto /usr/share/xsessions;
doins "${desktop}" )
}
make_wrapper ()
{
local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
local tmpwrapper=$(emktemp);
cat > "${tmpwrapper}" <<EOF
#!/bin/sh
cd "${chdir:-.}"
if [ -n "${libdir}" ] ; then
if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}"
else
export LD_LIBRARY_PATH="${libdir}"
fi
fi
exec ${bin} "\$@"
EOF
chmod go+rx "${tmpwrapper}";
if [[ -n ${path} ]]; then
( exeinto "${path}";
newexe "${tmpwrapper}" "${wrapper}" ) || die;
else
newbin "${tmpwrapper}" "${wrapper}" || die;
fi
}
makeopts_jobs ()
{
[[ $# -eq 0 ]] && set -- ${MAKEOPTS};
local jobs=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' -e 's:.*[[:space:]](-j|--jobs)[[:space:]].*:999:p');
echo ${jobs:-1}
}
multilib_env ()
{
local CTARGET=${1:-${CTARGET}};
case ${CTARGET} in
x86_64*)
export CFLAGS_x86=${CFLAGS_x86--m32};
export CHOST_x86=${CTARGET/x86_64/i686};
export CTARGET_x86=${CHOST_x86};
if [[ ${SYMLINK_LIB} == "yes" ]]; then
export LIBDIR_x86="lib32";
else
export LIBDIR_x86="lib";
fi;
export CFLAGS_amd64=${CFLAGS_amd64--m64};
export CHOST_amd64=${CTARGET};
export CTARGET_amd64=${CHOST_amd64};
export LIBDIR_amd64="lib64";
export CFLAGS_x32=${CFLAGS_x32--mx32};
export CHOST_x32=${CTARGET};
export CTARGET_x32=${CHOST_x32};
export LIBDIR_x32="libx32";
: ${MULTILIB_ABIS=amd64 x86};
: ${DEFAULT_ABI=amd64}
;;
mips64*)
export CFLAGS_o32=${CFLAGS_o32--mabi=32};
export CHOST_o32=${CTARGET/mips64/mips};
export CTARGET_o32=${CHOST_o32};
export LIBDIR_o32="lib";
export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
export CHOST_n32=${CTARGET};
export CTARGET_n32=${CHOST_n32};
export LIBDIR_n32="lib32";
export CFLAGS_n64=${CFLAGS_n64--mabi=64};
export CHOST_n64=${CTARGET};
export CTARGET_n64=${CHOST_n64};
export LIBDIR_n64="lib64";
: ${MULTILIB_ABIS=n64 n32 o32};
: ${DEFAULT_ABI=n32}
;;
powerpc64*)
export CFLAGS_ppc=${CFLAGS_ppc--m32};
export CHOST_ppc=${CTARGET/powerpc64/powerpc};
export CTARGET_ppc=${CHOST_ppc};
export LIBDIR_ppc="lib";
export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
export CHOST_ppc64=${CTARGET};
export CTARGET_ppc64=${CHOST_ppc64};
export LIBDIR_ppc64="lib64";
: ${MULTILIB_ABIS=ppc64 ppc};
: ${DEFAULT_ABI=ppc64}
;;
s390x*)
export CFLAGS_s390=${CFLAGS_s390--m31};
export CHOST_s390=${CTARGET/s390x/s390};
export CTARGET_s390=${CHOST_s390};
export LIBDIR_s390="lib";
export CFLAGS_s390x=${CFLAGS_s390x--m64};
export CHOST_s390x=${CTARGET};
export CTARGET_s390x=${CHOST_s390x};
export LIBDIR_s390x="lib64";
: ${MULTILIB_ABIS=s390x s390};
: ${DEFAULT_ABI=s390x}
;;
sparc*)
export CFLAGS_sparc32=${CFLAGS_sparc32--m32};
export CHOST_sparc32=${CTARGET/sparc64/sparc};
export CTARGET_sparc32=${CHOST_sparc32};
export LIBDIR_sparc32="lib";
export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
export CHOST_sparc64=${CTARGET};
export CTARGET_sparc64=${CHOST_sparc64};
export LIBDIR_sparc64="lib64";
: ${MULTILIB_ABIS=sparc64 sparc32};
: ${DEFAULT_ABI=sparc64}
;;
*)
: ${MULTILIB_ABIS=default};
: ${DEFAULT_ABI=default}
;;
esac;
export MULTILIB_ABIS DEFAULT_ABI
}
multilib_toolchain_setup ()
{
local v vv;
export ABI=$1;
if [[ ${__DEFAULT_ABI_SAVED} == "true" ]]; then
for v in CHOST CBUILD AS CC CXX LD;
do
vv="__abi_saved_${v}";
export ${v}="${!vv}";
unset ${vv};
done;
unset __DEFAULT_ABI_SAVED;
fi;
if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
for v in CHOST CBUILD AS CC CXX LD;
do
export __abi_saved_${v}="${!v}";
done;
export __DEFAULT_ABI_SAVED="true";
export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
export CC="$(tc-getCC) $(get_abi_CFLAGS)";
export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
export CHOST=$(get_abi_CHOST $1);
export CBUILD=$(get_abi_CHOST $1);
fi
}
newicon ()
{
( insinto /usr/share/pixmaps;
newins "$@" )
}
newmenu ()
{
( insinto /usr/share/applications;
newins "$@" )
}
no-as-needed ()
{
case $($(tc-getLD) -v 2>&1 </dev/null) in
*GNU*)
echo "-Wl,--no-as-needed"
;;
esac
}
nonfatal ()
{
if has "${EAPI:-0}" 0 1 2 3 3_pre2; then
die "$FUNCNAME() not supported in this EAPI";
fi;
if [[ $# -lt 1 ]]; then
die "$FUNCNAME(): Missing argument";
fi;
PORTAGE_NONFATAL=1 "$@"
}
number_abis ()
{
set -- `get_install_abis`;
echo $#
}
path_exists ()
{
local opt=$1;
[[ ${opt} == -[ao] ]] && shift || opt="-a";
[[ $# -eq 0 ]] && return 1;
local p r=0;
for p in "$@";
do
[[ -e ${p} ]];
: $(( r += $? ));
done;
case ${opt} in
-a)
return $(( r != 0 ))
;;
-o)
return $(( r == $# ))
;;
esac
}
pkg_nofetch ()
{
_eapi0_pkg_nofetch "$@"
}
pkg_pretend ()
{
if [[ ${MERGE_TYPE} != binary ]]; then
[[ $(gcc-major-version) -lt 4 ]] || ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 4 ]] ) && die "Sorry, but gcc-4.4 and earlier won't work.";
fi
}
portageq ()
{
PYTHONPATH=${PORTAGE_PYM_PATH}${PYTHONPATH:+:}${PYTHONPATH} "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}/portageq" "$@"
}
preprocess_ebuild_env ()
{
local _portage_filter_opts="--filter-features --filter-locale --filter-path --filter-sandbox";
[ -f "${T}/environment.raw" ] || return 0;
filter_readonly_variables $_portage_filter_opts < "${T}"/environment >> "$T/environment.filtered" || return $?;
unset _portage_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}/save-ebuild-env.sh" || exit $?;
save_ebuild_env || exit $?;
>> "$T/environment.success" || exit $? ) > "${T}/environment.filtered";
local retval;
if [ -e "${T}/environment.success" ]; then
filter_readonly_variables --filter-features < "${T}/environment.filtered" > "${T}/environment";
retval=$?;
else
retval=1;
fi;
rm -f "${T}"/environment.{filtered,raw,success};
return ${retval}
}
preserve_old_lib ()
{
if [[ ${EBUILD_PHASE} != "preinst" ]]; then
eerror "preserve_old_lib() must be called from pkg_preinst() only";
die "Invalid preserve_old_lib() usage";
fi;
[[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
has preserve-libs ${FEATURES} && return 0;
local lib dir;
for lib in "$@";
do
[[ -e ${ROOT}/${lib} ]] || continue;
dir=${lib%/*};
dodir ${dir} || die "dodir ${dir} failed";
cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed";
touch "${D}"/${lib};
done
}
preserve_old_lib_notify ()
{
if [[ ${EBUILD_PHASE} != "postinst" ]]; then
eerror "preserve_old_lib_notify() must be called from pkg_postinst() only";
die "Invalid preserve_old_lib_notify() usage";
fi;
has preserve-libs ${FEATURES} && return 0;
local lib notice=0;
for lib in "$@";
do
[[ -e ${ROOT}/${lib} ]] || continue;
if [[ ${notice} -eq 0 ]]; then
notice=1;
ewarn "Old versions of installed libraries were detected on your system.";
ewarn "In order to avoid breaking packages that depend on these old libs,";
ewarn "the libraries are not being removed. You need to run revdep-rebuild";
ewarn "in order to remove these old dependencies. If you do not have this";
ewarn "helper program, simply emerge the 'gentoolkit' package.";
ewarn;
fi;
[[ ${PN} == "mpfr" ]] && lib=${lib##*/};
ewarn " # revdep-rebuild --library '${lib}'";
done;
if [[ ${notice} -eq 1 ]]; then
ewarn;
ewarn "Once you've finished running revdep-rebuild, it should be safe to";
ewarn "delete the old libraries. Here is a copy & paste for the lazy:";
for lib in "$@";
do
ewarn " # rm '${lib}'";
done;
fi
}
qa_call ()
{
local shopts=$(shopt) OLDIFS="$IFS";
local retval;
"$@";
retval=$?;
set +e;
[[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while calling '$*'";
[[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while calling '$*'";
return $retval
}
qa_source ()
{
local shopts=$(shopt) OLDIFS="$IFS";
local retval;
source "$@";
retval=$?;
set +e;
[[ $shopts != $(shopt) ]] && eqawarn "QA Notice: Global shell options changed and were not restored while sourcing '$*'";
[[ "$IFS" != "$OLDIFS" ]] && eqawarn "QA Notice: Global IFS changed and was not restored while sourcing '$*'";
return $retval
}
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 ()
{
local x;
for x in $*;
do
has $x $EBUILD_DEATH_HOOKS || export EBUILD_DEATH_HOOKS="$EBUILD_DEATH_HOOKS $x";
done
}
register_success_hook ()
{
local x;
for x in $*;
do
has $x $EBUILD_SUCCESS_HOOKS || export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x";
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 ]] && die "Usage: replace-flags <old flag> <new flag>";
local f var new;
for var in $(all-flag-vars);
do
new=();
for f in ${!var};
do
[[ ${f} == ${1} ]] && f=${2};
new+=("${f}");
done;
eval export ${var}=\""${new[*]}"\";
done;
return 0
}
replace-sparc64-flags ()
{
local SPARC64_CPUS="ultrasparc3 ultrasparc v9";
if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then
for x in ${SPARC64_CPUS};
do
CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";
done;
else
for x in ${SPARC64_CPUS};
do
CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
done;
fi;
if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then
for x in ${SPARC64_CPUS};
do
CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";
done;
else
for x in ${SPARC64_CPUS};
do
CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
done;
fi;
export CFLAGS CXXFLAGS
}
save_ebuild_env ()
{
( if has --exclude-init-phases $*; then
unset S _E_DOCDESTTREE_ _E_EXEDESTTREE_ PORTAGE_DOCOMPRESS PORTAGE_DOCOMPRESS_SKIP;
if [[ -n $PYTHONPATH && ${PYTHONPATH%%:*} -ef $PORTAGE_PYM_PATH ]]; then
if [[ $PYTHONPATH == *:* ]]; then
export PYTHONPATH=${PYTHONPATH#*:};
else
unset PYTHONPATH;
fi;
fi;
fi;
unset COLORTERM DISPLAY EDITOR LESS LESSOPEN LOGNAME LS_COLORS PAGER TERM TERMCAP USER ftp_proxy http_proxy no_proxy;
unset CVS_RSH ECHANGELOG_USER GPG_AGENT_INFO SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY;
unset ${!CCACHE_*} ${!DISTCC_*};
for x in pkg_setup pkg_nofetch src_unpack src_prepare src_configure src_compile src_test src_install pkg_preinst pkg_postinst pkg_prerm pkg_postrm;
do
unset -f default_$x _eapi{0,1,2,3,4}_$x;
done;
unset x;
unset -f assert assert_sigpipe_ok dump_trace die diefunc quiet_mode vecho elog_base eqawarn elog esyslog einfo einfon ewarn eerror ebegin _eend eend KV_major KV_minor KV_micro KV_to_int get_KV unset_colors set_colors has has_phase_defined_up_to hasv hasq qa_source qa_call addread addwrite adddeny addpredict _sb_append_var use usev useq has_version portageq best_version use_with use_enable register_die_hook keepdir unpack strip_duplicate_slashes econf einstall dyn_setup dyn_unpack dyn_clean into insinto exeinto docinto insopts diropts exeopts libopts docompress abort_handler abort_prepare abort_configure abort_compile abort_test abort_install dyn_prepare dyn_configure dyn_compile dyn_test dyn_install dyn_preinst dyn_pretend dyn_help debug-print debug-print-function debug-print-section helpers_die inherit EXPORT_FUNCTIONS nonfatal register_success_hook remove_path_entry save_ebuild_env filter_readonly_variables preprocess_ebuild_env set_unless_changed unset_unless_changed source_all_bashrcs ebuild_main ebuild_phase ebuild_phase_with_hooks _ebuild_arg_to_phase _ebuild_phase_funcs default _hasg _hasgq _unpack_tar ${QA_INTERCEPTORS};
unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR EBUILD_FORCE_TEST EBUILD_MASTER_PID ECLASS_DEPTH ENDCOL FAKEROOTKEY GOOD HILITE HOME LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR PORTAGE_BASHRCS_SOURCED PORTAGE_COMPRESS_EXCLUDE_SUFFIXES PORTAGE_NONFATAL PORTAGE_QUIET PORTAGE_SANDBOX_DENY PORTAGE_SANDBOX_PREDICT PORTAGE_SANDBOX_READ PORTAGE_SANDBOX_WRITE PREROOTPATH QA_INTERCEPTORS RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND WARN XARGS _RC_GET_KV_CACHE;
unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK;
declare -p;
declare -fp;
if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
export;
fi )
}
set_colors ()
{
COLS=${COLUMNS:-0};
[[ $COLS == 0 && $EBUILD_PHASE != depend ]] && COLS=$(set -- $( ( stty size </dev/tty ) 2>/dev/null || echo 24 80 ) ; echo $2);
(( COLS > 0 )) || (( COLS = 80 ));
ENDCOL='['$(( COLS - 8 ))'C';
if [ -n "${PORTAGE_COLORMAP}" ]; then
eval ${PORTAGE_COLORMAP};
else
GOOD='';
WARN='';
BAD='';
HILITE='';
BRACKET='';
fi;
NORMAL=''
}
set_unless_changed ()
{
if [[ $# -lt 1 ]]; then
die "${FUNCNAME}() requires at least 1 argument: VARIABLE=VALUE";
fi;
local argument value variable;
for argument in "$@";
do
if [[ ${argument} != *=* ]]; then
die "${FUNCNAME}(): Argument '${argument}' has incorrect syntax";
fi;
variable="${argument%%=*}";
value="${argument#*=}";
if eval "[[ \${${variable}} == \$(env -u ${variable} portageq envvar ${variable}) ]]"; then
eval "${variable}=\"\${value}\"";
fi;
done
}
setup-allowed-flags ()
{
ALLOWED_FLAGS="-pipe";
ALLOWED_FLAGS+=" -O -O1 -O2 -Os -mcpu -march -mtune";
ALLOWED_FLAGS+=" -fstack-protector -fstack-protector-all";
ALLOWED_FLAGS+=" -fbounds-checking -fno-strict-overflow";
ALLOWED_FLAGS+=" -fno-PIE -fno-pie -fno-unit-at-a-time";
ALLOWED_FLAGS+=" -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+";
ALLOWED_FLAGS+=" -fno-ident -fpermissive";
ALLOWED_FLAGS+=" -W* -w";
ALLOWED_FLAGS+=" -fno-stack-protector -fno-stack-protector-all -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer";
ALLOWED_FLAGS+=" -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt -mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt -m*-toc -D* -U*";
ALLOWED_FLAGS+=" -mno-fma4 -mno-movbe -mno-xop -mno-lwp";
ALLOWED_FLAGS+=" -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm";
export ALLOWED_FLAGS;
return 0
}
source_all_bashrcs ()
{
[[ $PORTAGE_BASHRCS_SOURCED = 1 ]] && return 0;
PORTAGE_BASHRCS_SOURCED=1;
local x;
local OCC="${CC}" OCXX="${CXX}";
if [[ $EBUILD_PHASE != depend ]]; then
[ "${IFS:-unset}" != "unset" ] && old_IFS="${IFS}";
IFS='
';
local path_array=($PROFILE_PATHS);
if [ "${old_IFS:-unset}" != "unset" ]; then
IFS="${old_IFS}";
unset old_IFS;
else
unset IFS;
fi;
for x in "${path_array[@]}";
do
[ -f "$x/profile.bashrc" ] && qa_source "$x/profile.bashrc";
done;
fi;
for x in "${PORTAGE_BASHRC}" "${PM_EBUILD_HOOK_DIR}"/${CATEGORY}/{${PN},${PN}:${SLOT},${P},${PF}};
do
if [ -r "${x}" ]; then
if [ "$PORTAGE_DEBUG" != "1" ] || [ "${-/x/}" != "$-" ]; then
source "${x}";
else
set -x;
source "${x}";
set +x;
fi;
fi;
done;
[ ! -z "${OCC}" ] && export CC="${OCC}";
[ ! -z "${OCXX}" ] && export CXX="${OCXX}"
}
src_compile ()
{
cmake-utils_src_compile "$@"
}
src_configure ()
{
local langs x;
for x in ${LANGS};
do
use linguas_${x} && langs+=" ${x}";
done;
local mycmakeargs=(-DLIB_INSTALL_DIR="$(get_libdir)" -Dlinguas="${langs}" -DLOCAL_MINIUPNP=OFF "$(use cli && cmake-utils_use json USE_CLI_JSONRPC)" "$(use cli && cmake-utils_use xmlrpc USE_CLI_XMLRPC)" "$(cmake-utils_use daemon NO_UI_DAEMON)" "$(use daemon && cmake-utils_use json JSONRPC_DAEMON)" "$(use daemon && cmake-utils_use xmlrpc XMLRPC_DAEMON)" "$(cmake-utils_use dbus DBUS_NOTIFY)" "$(cmake-utils_use dht WITH_DHT)" "$(cmake-utils_use emoticons WITH_EMOTICONS)" "$(cmake-utils_use examples WITH_EXAMPLES)" "$(cmake-utils_use gnome USE_LIBGNOME2)" "$(cmake-utils_use gtk USE_GTK)" "$(cmake-utils_use gtk3 USE_GTK3)" "$(cmake-utils_use idn USE_IDNA)" "$(cmake-utils_use javascript USE_JS)" "$(cmake-utils_use libcanberra LIBCANBERRA)" "$(cmake-utils_use libnotify USE_LIBNOTIFY)" "$(cmake-utils_use lua LUA_SCRIPT)" "$(cmake-utils_use lua WITH_LUASCRIPTS)" "$(cmake-utils_use !minimal WITH_DEV_FILES)" "$(cmake-utils_use pcre PERL_REGEX)" "$(cmake-utils_use qt4 USE_QT)" "$(cmake-utils_use sound WITH_SOUNDS)" "$(cmake-utils_use spell USE_ASPELL)" "$(cmake-utils_use sqlite USE_QT_SQLITE)" "$(cmake-utils_use upnp USE_MINIUPNP)");
cmake-utils_src_configure
}
src_install ()
{
cmake-utils_src_install "$@"
}
src_prepare ()
{
base_src_prepare "$@"
}
src_test ()
{
cmake-utils_src_test "$@"
}
src_unpack ()
{
base_src_unpack "$@"
}
strip-flags ()
{
local x y var;
setup-allowed-flags;
set -f;
for var in $(all-flag-vars);
do
local new=();
for x in ${!var};
do
local flag=${x%%=*};
for y in ${ALLOWED_FLAGS};
do
if [[ -z ${flag%%${y}} ]]; then
new+=("${x}");
break;
fi;
done;
done;
if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then
new+=(-O2);
fi;
eval export ${var}=\""${new[*]}"\";
done;
set +f;
return 0
}
strip-linguas ()
{
local ls newls nols;
if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
local op=$1;
shift;
ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
shift;
local d f;
for d in "$@";
do
if [[ ${op} == "-u" ]]; then
newls=${ls};
else
newls="";
fi;
for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
do
if [[ ${op} == "-i" ]]; then
has ${f} ${ls} && newls="${newls} ${f}";
else
has ${f} ${ls} || newls="${newls} ${f}";
fi;
done;
ls=${newls};
done;
else
ls="$@";
fi;
nols="";
newls="";
for f in ${LINGUAS};
do
if has ${f} ${ls}; then
newls="${newls} ${f}";
else
nols="${nols} ${f}";
fi;
done;
[[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
export LINGUAS=${newls:1}
}
strip-unsupported-flags ()
{
export CFLAGS=$(test-flags-CC ${CFLAGS});
export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});
export FFLAGS=$(test-flags-F77 ${FFLAGS});
export FCFLAGS=$(test-flags-FC ${FCFLAGS})
}
strip_duplicate_slashes ()
{
if [[ -n $1 ]]; then
local removed=$1;
while [[ ${removed} == *//* ]]; do
removed=${removed//\/\///};
done;
echo ${removed};
fi
}
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-env_build ()
{
CFLAGS=${BUILD_CFLAGS:--O1 -pipe} CXXFLAGS=${BUILD_CXXFLAGS:--O1 -pipe} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@"
}
tc-export ()
{
local var;
for var in "$@";
do
[[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'";
eval tc-get${var} > /dev/null;
done
}
tc-getAR ()
{
tc-getPROG AR ar "$@"
}
tc-getAS ()
{
tc-getPROG AS as "$@"
}
tc-getBUILD_AR ()
{
tc-getBUILD_PROG AR ar "$@"
}
tc-getBUILD_AS ()
{
tc-getBUILD_PROG AS as "$@"
}
tc-getBUILD_CC ()
{
tc-getBUILD_PROG CC gcc "$@"
}
tc-getBUILD_CPP ()
{
tc-getBUILD_PROG CPP cpp "$@"
}
tc-getBUILD_CXX ()
{
tc-getBUILD_PROG CXX g++ "$@"
}
tc-getBUILD_LD ()
{
tc-getBUILD_PROG LD ld "$@"
}
tc-getBUILD_NM ()
{
tc-getBUILD_PROG NM nm "$@"
}
tc-getBUILD_OBJCOPY ()
{
tc-getBUILD_PROG OBJCOPY objcopy "$@"
}
tc-getBUILD_PKG_CONFIG ()
{
tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"
}
tc-getBUILD_PROG ()
{
_tc-getPROG CBUILD "BUILD_$1 $1_FOR_BUILD HOST$1" "${@:2}"
}
tc-getBUILD_RANLIB ()
{
tc-getBUILD_PROG RANLIB ranlib "$@"
}
tc-getBUILD_STRIP ()
{
tc-getBUILD_PROG STRIP strip "$@"
}
tc-getCC ()
{
tc-getPROG CC gcc "$@"
}
tc-getCPP ()
{
tc-getPROG CPP cpp "$@"
}
tc-getCXX ()
{
tc-getPROG CXX g++ "$@"
}
tc-getDLLWRAP ()
{
tc-getPROG DLLWRAP dllwrap "$@"
}
tc-getF77 ()
{
tc-getPROG F77 gfortran "$@"
}
tc-getFC ()
{
tc-getPROG FC gfortran "$@"
}
tc-getGCJ ()
{
tc-getPROG GCJ gcj "$@"
}
tc-getLD ()
{
tc-getPROG LD ld "$@"
}
tc-getNM ()
{
tc-getPROG NM nm "$@"
}
tc-getOBJCOPY ()
{
tc-getPROG OBJCOPY objcopy "$@"
}
tc-getPKG_CONFIG ()
{
tc-getPROG PKG_CONFIG pkg-config "$@"
}
tc-getPROG ()
{
_tc-getPROG CHOST "$@"
}
tc-getRANLIB ()
{
tc-getPROG RANLIB ranlib "$@"
}
tc-getRC ()
{
tc-getPROG RC windres "$@"
}
tc-getSTRIP ()
{
tc-getPROG STRIP strip "$@"
}
tc-has-openmp ()
{
local base="${T}/test-tc-openmp";
cat > "${base}.c" <<-EOF
#include <omp.h>
int main() {
int nthreads, tid, ret = 0;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
nthreads = omp_get_num_threads(); ret += tid + nthreads;
}
return ret;
}
EOF
$(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &>/dev/null;
local ret=$?;
rm -f "${base}"*;
return ${ret}
}
tc-has-tls ()
{
local base="${T}/test-tc-tls";
cat > "${base}.c" <<-EOF
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}
EOF
local flags;
case $1 in
-s)
flags="-S"
;;
-c)
flags="-c"
;;
-l)
;;
-*)
die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
;;
esac;
: ${flags:=-fPIC -shared -Wl,-z,defs};
[[ $1 == -* ]] && shift;
$(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null;
local ret=$?;
rm -f "${base}"*;
return ${ret}
}
tc-is-cross-compiler ()
{
return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]])
}
tc-is-hardfloat ()
{
[[ ${CTARGET//_/-} == *-hardfloat-* ]] && echo "yes" || echo "no"
}
tc-is-softfloat ()
{
local CTARGET=${CTARGET:-${CHOST}};
case ${CTARGET} in
bfin* | h8300*)
echo "only"
;;
*)
[[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no"
;;
esac
}
tc-is-static-only ()
{
local host=${CTARGET:-${CHOST}};
return $([[ ${host} == *-mint* ]])
}
tc-ninja_magic_to_arch ()
{
function ninj ()
{
[[ ${type} == "kern" ]] && echo $1 || echo $2
};
local type=$1;
local host=$2;
[[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
case ${host} in
alpha*)
echo alpha
;;
arm*)
echo arm
;;
avr*)
ninj avr32 avr
;;
bfin*)
ninj blackfin bfin
;;
cris*)
echo cris
;;
hppa*)
ninj parisc hppa
;;
i?86*)
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then
echo i386;
else
echo x86;
fi
;;
ia64*)
echo ia64
;;
m68*)
echo m68k
;;
mips*)
echo mips
;;
nios2*)
echo nios2
;;
nios*)
echo nios
;;
powerpc*)
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then
echo powerpc;
else
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then
if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then
echo powerpc;
else
echo ppc;
fi;
else
if [[ ${host} == powerpc64* ]]; then
echo ppc64;
else
if [[ ${PROFILE_ARCH} == "ppc64" ]]; then
ninj ppc64 ppc;
else
echo ppc;
fi;
fi;
fi;
fi
;;
s390*)
echo s390
;;
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*freebsd*)
echo amd64
;;
x86_64*)
if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then
echo x86;
else
ninj x86_64 amd64;
fi
;;
*)
echo unknown
;;
esac
}
test-flag-CC ()
{
test-flag-PROG "CC" "$1"
}
test-flag-CXX ()
{
test-flag-PROG "CXX" "$1"
}
test-flag-F77 ()
{
test-flag-PROG "F77" "$1"
}
test-flag-FC ()
{
test-flag-PROG "FC" "$1"
}
test-flag-PROG ()
{
local comp=$1;
local flag=$2;
[[ -z ${comp} || -z ${flag} ]] && return 1;
local PROG=$(tc-get${comp});
${PROG} "${flag}" -c -o /dev/null -xc /dev/null > /dev/null 2>&1
}
test-flags ()
{
test-flags-CC "$@"
}
test-flags-CC ()
{
test-flags-PROG "CC" "$@"
}
test-flags-CXX ()
{
test-flags-PROG "CXX" "$@"
}
test-flags-F77 ()
{
test-flags-PROG "F77" "$@"
}
test-flags-FC ()
{
test-flags-PROG "FC" "$@"
}
test-flags-PROG ()
{
local comp=$1;
local flags;
local x;
shift;
[[ -z ${comp} ]] && return 1;
for x in "$@";
do
test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}";
done;
echo "${flags}";
[[ -n ${flags} ]]
}
test_version_info ()
{
if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then
return 0;
else
return 1;
fi
}
unpack ()
{
local srcdir;
local x;
local y;
local myfail;
local eapi=${EAPI:-0};
[ -z "$*" ] && die "Nothing passed to the 'unpack' command";
for x in "$@";
do
vecho ">>> Unpacking ${x} to ${PWD}";
y=${x%.*};
y=${y##*.};
if [[ ${x} == "./"* ]]; then
srcdir="";
else
if [[ ${x} == ${DISTDIR%/}/* ]]; then
die "Arguments to unpack() cannot begin with \${DISTDIR}.";
else
if [[ ${x} == "/"* ]]; then
die "Arguments to unpack() cannot be absolute";
else
srcdir="${DISTDIR}/";
fi;
fi;
fi;
[[ ! -s ${srcdir}${x} ]] && die "${x} does not exist";
function _unpack_tar ()
{
if [ "${y}" == "tar" ]; then
$1 -c -- "$srcdir$x" | tar xof -;
assert_sigpipe_ok "$myfail";
else
local cwd_dest=${x##*/};
cwd_dest=${cwd_dest%.*};
$1 -c -- "${srcdir}${x}" > "${cwd_dest}" || die "$myfail";
fi
};
myfail="failure unpacking ${x}";
case "${x##*.}" in
tar)
tar xof "$srcdir$x" || die "$myfail"
;;
tgz)
tar xozf "$srcdir$x" || die "$myfail"
;;
tbz | tbz2)
${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d} -c -- "$srcdir$x" | tar xof -;
assert_sigpipe_ok "$myfail"
;;
ZIP | zip | jar)
( set +x;
while true; do
echo n || break;
done ) | unzip -qo "${srcdir}${x}" || die "$myfail"
;;
gz | Z | z)
_unpack_tar "gzip -d"
;;
bz2 | bz)
_unpack_tar "${PORTAGE_BUNZIP2_COMMAND:-${PORTAGE_BZIP2_COMMAND} -d}"
;;
7Z | 7z)
local my_output;
my_output="$(7z x -y "${srcdir}${x}")";
if [ $? -ne 0 ]; then
echo "${my_output}" 1>&2;
die "$myfail";
fi
;;
RAR | rar)
unrar x -idq -o+ "${srcdir}${x}" || die "$myfail"
;;
LHa | LHA | lha | lzh)
lha xfq "${srcdir}${x}" || die "$myfail"
;;
a)
ar x "${srcdir}${x}" || die "$myfail"
;;
deb)
if type -P deb2targz > /dev/null; then
y=${x##*/};
local created_symlink=0;
if [ ! "$srcdir$x" -ef "$y" ]; then
ln -sf "$srcdir$x" "$y" || die "$myfail";
created_symlink=1;
fi;
deb2targz "$y" || die "$myfail";
if [ $created_symlink = 1 ]; then
rm -f "$y";
fi;
mv -f "${y%.deb}".tar.gz data.tar.gz || die "$myfail";
else
ar x "$srcdir$x" || die "$myfail";
fi
;;
lzma)
_unpack_tar "lzma -d"
;;
xz)
if has $eapi 0 1 2; then
vecho "unpack ${x}: file format not recognized. Ignoring.";
else
_unpack_tar "xz -d";
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
}
unset_colors ()
{
COLS=80;
ENDCOL=;
GOOD=;
WARN=;
BAD=;
NORMAL=;
HILITE=;
BRACKET=
}
unset_unless_changed ()
{
if [[ $# -lt 1 ]]; then
die "${FUNCNAME}() requires at least 1 argument: VARIABLE";
fi;
local variable;
for variable in "$@";
do
if eval "[[ \${${variable}} == \$(env -u ${variable} portageq envvar ${variable}) ]]"; then
unset ${variable};
fi;
done
}
use ()
{
local u=$1;
local found=0;
if [[ ${u:0:1} == "!" ]]; then
u=${u:1};
found=1;
fi;
if [[ $EBUILD_PHASE = depend ]]; then
true;
else
if [[ -n $PORTAGE_IUSE && -n $EBUILD_PHASE ]]; then
[[ $u =~ $PORTAGE_IUSE ]] || eqawarn "QA Notice: USE Flag '${u}' not" "in IUSE for ${CATEGORY}/${PF}";
fi;
fi;
if has ${u} ${USE}; then
return ${found};
else
return $((!found));
fi
}
use_enable ()
{
if [ -z "$1" ]; then
echo "!!! use_enable() called without a parameter." 1>&2;
echo "!!! use_enable <USEFLAG> [<flagname> [value]]" 1>&2;
return 1;
fi;
if ! has "${EAPI:-0}" 0 1 2 3; then
local UE_SUFFIX=${3+=$3};
else
local UE_SUFFIX=${3:+=$3};
fi;
local UWORD=${2:-$1};
if use $1; then
echo "--enable-${UWORD}${UE_SUFFIX}";
else
echo "--disable-${UWORD}";
fi;
return 0
}
use_if_iuse ()
{
in_iuse $1 || return 1;
use $1
}
use_with ()
{
if [ -z "$1" ]; then
echo "!!! use_with() called without a parameter." 1>&2;
echo "!!! use_with <USEFLAG> [<flagname> [value]]" 1>&2;
return 1;
fi;
if ! has "${EAPI:-0}" 0 1 2 3; then
local UW_SUFFIX=${3+=$3};
else
local UW_SUFFIX=${3:+=$3};
fi;
local UWORD=${2:-$1};
if use $1; then
echo "--with-${UWORD}${UW_SUFFIX}";
else
echo "--without-${UWORD}";
fi;
return 0
}
useq ()
{
has $EBUILD_PHASE prerm postrm || eqawarn "QA Notice: The 'useq' function is deprecated (replaced by 'use')";
use ${1}
}
usev ()
{
if use ${1}; then
echo "${1#!}";
return 0;
fi;
return 1
}
usex ()
{
use "$1" && echo "${2-yes}$4" || echo "${3-no}$5"
}
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 "$@"
}
declare -x A="eiskaltdcpp-2.2.6.tar.xz"
declare -x ABI="amd64"
declare -x ACCEPT_LICENSE="GPL-2 GPL-3"
declare -x ALSA_CARDS=""
declare -x ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"
declare -x ANT_HOME="/usr/share/ant"
declare -x APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
declare -x ARCH="amd64"
declare -x BOOTSTRAP_USE="cxx unicode multilib"
declare -x BUILD_PREFIX="/var/tmp/portage"
declare -x CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump"
declare -x CAMERAS="adc65 agfa_cl20 aox ax203 barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 jl2005a kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_dc1000 panasonic_dc1580 panasonic_l859 pccam300 pccam600 polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung sierra sipix_blink sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 st2205 stv0674 stv0680 sx330z template topfield toshiba_pdrm11"
declare -x CATEGORY="net-p2p"
declare -x CBUILD="x86_64-pc-linux-gnu"
declare -x CCACHE_DISABLE="1"
declare -x CFLAGS="-O2 -march=core2 -mtune=core2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -mssse3 -mcx16 -msahf -mavx -mpclmul -mpopcnt"
declare -x CFLAGS_amd64="-m64"
declare -x CFLAGS_default
declare -x CFLAGS_x32="-mx32"
declare -x CFLAGS_x86="-m32"
declare -x CG_COMPILER_EXE="/usr/bin/cgc"
declare -x CHOST="x86_64-pc-linux-gnu"
declare -x CHOST_amd64="x86_64-pc-linux-gnu"
declare -x CHOST_default="x86_64-pc-linux-gnu"
declare -x CHOST_x32="x86_64-pc-linux-gnu"
declare -x CHOST_x86="i686-pc-linux-gnu"
declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
declare -x COLUMNS="168"
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="x86_64-pc-linux-gnu"
declare -x CXXFLAGS="-O2 -march=core2 -mtune=core2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -mssse3 -mcx16 -msahf -mavx -mpclmul -mpopcnt"
declare -rx D="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/image/"
declare -x DEFAULT_ABI="amd64"
declare -rx DEFINED_PHASES=" compile configure install prepare pretend test unpack"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x DISPLAY=":0"
declare -x DISTDIR="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/distdir"
declare -x DRACUT_MODULES="plymouth"
declare -rx EAPI="4"
declare -rx EBUILD="/usr/portage/net-p2p/eiskaltdcpp/eiskaltdcpp-2.2.6.ebuild"
declare -x EBUILD_MASTER_PID="11815"
declare -rx EBUILD_PHASE="pretend"
declare -rx ECLASSDIR="/usr/portage/eclass"
declare -ix ECLASS_DEPTH="0"
declare -rx ED="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/image/"
declare -x ELIBC="glibc"
declare -rx EMERGE_FROM="ebuild"
declare -rx EPREFIX=""
declare -rx EROOT="/"
declare -x EXEOPTIONS="-m0755"
declare -x FCFLAGS=""
declare -x FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x FFLAGS=""
declare -rx FILESDIR="/usr/portage/net-p2p/eiskaltdcpp/files"
declare -x GCC_SPECS=""
declare -x GDK_USE_XFT="1"
declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx"
declare -x GRUB_PLATFORMS=""
declare -x GSETTINGS_BACKEND="gconf"
declare -x GUILE_LOAD_PATH="/usr/share/guile/1.8"
declare -x HG="/usr/bin/hg"
declare -x HOME="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/homedir"
declare -rx INHERITED=" toolchain-funcs multilib user eutils flag-o-matic base cmake-utils"
declare -x INPUT_DEVICES="evdev"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare -x JAVACC_HOME="/usr/share/javacc/"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="amd64"
declare -rx KEYWORDS="~amd64 ~x86"
declare -x LADSPA_PATH="/usr/lib64/ladspa"
declare -x LANG="ru_RU.UTF-8"
declare -x LANGUAGE=""
declare -x LCD_DEVICES=""
declare -x LC_ALL=""
declare -x LDFLAGS="-Wl,-O1,--hash-style=gnu,--as-needed"
declare -x LDFLAGS_amd64="-m elf_x86_64"
declare -x LDFLAGS_default
declare -x LDFLAGS_x32="-m elf32_x86_64"
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LESS="-R -M --shift 5"
declare -x LESSOPEN="|lesspipe %s"
declare -x LIBDIR_amd64="lib64"
declare -x LIBDIR_amd64_fbsd="lib64"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_n32="lib32"
declare -x LIBDIR_n64="lib64"
declare -x LIBDIR_o32="lib"
declare -x LIBDIR_ppc="lib32"
declare -x LIBDIR_ppc64="lib64"
declare -x LIBDIR_s390="lib32"
declare -x LIBDIR_s390x="lib64"
declare -x LIBDIR_sparc32="lib32"
declare -x LIBDIR_sparc64="lib64"
declare -x LIBDIR_x32="libx32"
declare -x LIBDIR_x86="lib32"
declare -x LIBDIR_x86_fbsd="lib32"
declare -x LIBOPTIONS="-m0644"
declare -x LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer"
declare -rx LICENSE="GPL-2 GPL-3"
declare -x LINGUAS="ru en"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:"
declare -x MAIL="/var/mail/root"
declare -rx MERGE_TYPE="source"
declare -x MINICOM="-c on"
declare -x MOPREFIX="eiskaltdcpp"
declare -x MULTILIB_ABIS="amd64 x86"
declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev)"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -x OLDPWD="/usr/portage/net-p2p/eiskaltdcpp"
declare -x OPENCL_PROFILE="nvidia"
declare -x OPENGL_PROFILE="xorg-x11"
declare -x P="eiskaltdcpp-2.2.6"
declare -x PATH="/usr/lib64/portage/bin/ebuild-helpers/4:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/arm-elf/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/opt/eagle-5.11.0/bin"
declare -x PF="eiskaltdcpp-2.2.6"
declare -x PHP_TARGETS=""
declare -x PKGDIR="/usr/portage/packages"
declare -x PKGUSE="dbus emoticons gtk kde libnotify qt4 spell examples javascript lua sounds upnp xmlrpc"
declare -x PKG_LOGDIR="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp/logging"
declare -x PKG_TMPDIR="/var/tmp/portage/._unmerge_"
declare -rx PM_EBUILD_HOOK_DIR="/etc/portage/env"
declare -x PN="eiskaltdcpp"
declare -rx PORTAGE_ACTUAL_DISTDIR="/usr/portage/distfiles"
declare -rx PORTAGE_ARCHLIST="ppc sparc64-freebsd ppc-openbsd x86-openbsd ppc64 x86-winnt x86-fbsd ppc-aix alpha arm x86-freebsd s390 amd64 arm-linux x86-macos x64-openbsd ia64-hpux hppa x86-netbsd ppc64-linux x86-cygwin amd64-linux ia64-linux x86 sparc-solaris x64-freebsd sparc64-solaris x86-linux x64-macos sparc m68k-mint ia64 mips ppc-macos x86-interix hppa-hpux amd64-fbsd x64-solaris m68k sh x86-solaris sparc-fbsd"
declare -rx PORTAGE_BASHRC="/etc/portage/bashrc"
declare -rx PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
declare -rx PORTAGE_BUILDDIR="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6"
declare -rx PORTAGE_BZIP2_COMMAND="bzip2"
declare -rx PORTAGE_COLORMAP="GOOD=\$''
WARN=\$''
BAD=\$''
HILITE=\$''
BRACKET=\$''"
declare -x PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png"
declare -rx PORTAGE_CONFIGROOT="/"
declare -rx PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
declare -x PORTAGE_FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
declare -rx PORTAGE_GID="250"
declare -rx PORTAGE_INST_GID="0"
declare -rx PORTAGE_INST_UID="0"
declare -rx PORTAGE_IPC_DAEMON="1"
declare -rx PORTAGE_IUSE="^(3dfx|adabas|alpha|alsa\\_cards\\_aoa|alsa\\_cards\\_aoa\\-fabric\\-layout|alsa\\_cards\\_aoa\\-onyx|alsa\\_cards\\_aoa\\-soundbus|alsa\\_cards\\_aoa\\-soundbus\\-i2s|alsa\\_cards\\_aoa\\-tas|alsa\\_cards\\_aoa\\-toonie|alsa\\_cards\\_armaaci|alsa\\_cards\\_at91\\-soc|alsa\\_cards\\_at91\\-soc\\-eti\\-b1\\-wm8731|alsa\\_cards\\_au1x00|alsa\\_cards\\_cs5535audio|alsa\\_cards\\_harmony|alsa\\_cards\\_powermac|alsa\\_cards\\_pxa2xx\\-i2sound|alsa\\_cards\\_pxa2xx\\-soc|alsa\\_cards\\_pxa2xx\\-soc\\-corgi|alsa\\_cards\\_pxa2xx\\-soc\\-poodle|alsa\\_cards\\_pxa2xx\\-soc\\-spitz|alsa\\_cards\\_pxa2xx\\-soc\\-tosa|alsa\\_cards\\_sa11xx\\-uda1341ts|alsa\\_cards\\_sun\\-amd7930|alsa\\_cards\\_sun\\-cs4231|alsa\\_cards\\_sun\\-dbri|altivec|amd64|amd64\\-fbsd|amd64\\-linux|aqua|arm|arm\\-linux|ayatana|birdstep|bootstrap|build|capslib|cli|cmucl|consolekit|coreaudio|crosscompile\\_opts\\_.*|daemon|dbmaker|dbus|dht|drac|elibc\\_AIX|elibc\\_Darwin|elibc\\_DragonFly|elibc\\_FreeBSD|elibc\\_HPUX|elibc\\_Interix|elibc\\_NetBSD|elibc\\_OpenBSD|elibc\\_SunOS|elibc\\_.*|elibc\\_glibc|elibc\\_mintlib|elibc\\_uclibc|emoticons|empress|empress\\-bcs|esoob|examples|fdftk|filepro|firebird|fixed\\-point|frontbase|gamess|gcc64|gluon|gnome|gtk|gtk3|gulm|hppa|hppa\\-hpux|ia64|ia64\\-hpux|ia64\\-linux|ibm|idn|informix|ingres|iwmmxt|javascript|json|kdeprefix|kernel\\_AIX|kernel\\_Darwin|kernel\\_FreeBSD|kernel\\_HPUX|kernel\\_Interix|kernel\\_NetBSD|kernel\\_OpenBSD|kernel\\_SunOS|kernel\\_.*|kernel\\_freemint|kernel\\_linux|kqueue|lcd\\_devices\\_svga|libcanberra|libnotify|linguas\\_be|linguas\\_bg|linguas\\_cs|linguas\\_de|linguas\\_el|linguas\\_en|linguas\\_es|linguas\\_fr|linguas\\_hu|linguas\\_it|linguas\\_pl|linguas\\_ru|linguas\\_sk|linguas\\_sr\\@latin|linguas\\_uk|lua|m68k|m68k\\-mint|macbook|minimal|mips|multilib|n32|n64|neon|osp|packagekit|pam\\_console|pbbuttonsd|pcre|pfpro|php\\_targets\\_php5\\-2|policykit|ppc|ppc64|ppc64\\-linux|ppc\\-aix|ppc\\-macos|ppc\\-openbsd|ppcsha1|prefix|ps3|psyco|pvm|qt4|real|s390|selinux|sh|solid|sound|sparc|sparc64\\-freebsd|sparc64\\-solaris|sparc\\-fbsd|sparc\\-solaris|spell|sqlite|svga|sybase|sybase\\-ct|tcb|tcc|test|uclibc|ultra1|upnp|userland\\_BSD|userland\\_GNU|userland\\_.*|video\\_cards\\_geode|video\\_cards\\_i740|video\\_cards\\_impact|video\\_cards\\_newport|video\\_cards\\_nsc|video\\_cards\\_omap|video\\_cards\\_omapfb|video\\_cards\\_sunbw2|video\\_cards\\_suncg14|video\\_cards\\_suncg3|video\\_cards\\_suncg6|video\\_cards\\_sunffb|video\\_cards\\_sunleo|video\\_cards\\_suntcx|video\\_cards\\_voodoo|video\\_cards\\_xgi|vidix|vis|win32codecs|x64\\-freebsd|x64\\-macos|x64\\-openbsd|x64\\-solaris|x86|x86\\-cygwin|x86\\-fbsd|x86\\-freebsd|x86\\-interix|x86\\-linux|x86\\-macos|x86\\-netbsd|x86\\-openbsd|x86\\-solaris|x86\\-winnt|xmlrpc|yellownet)\$"
declare -rx PORTAGE_LOG_FILE="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp/build.log"
declare -rx PORTAGE_OVERRIDE_EPREFIX=""
declare -rx PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
declare -rx PORTAGE_PYTHON="/usr/bin/python2.7"
declare -rx PORTAGE_REPO_NAME="gentoo"
declare -rx PORTAGE_RESTRICT=""
declare -rx PORTAGE_SIGPIPE_STATUS="141"
declare -rx PORTAGE_TMPDIR="/var/tmp"
declare -rx PORTAGE_VERBOSE="1"
declare -rx PORTAGE_WORKDIR_MODE="0700"
declare -rx PORTDIR="/usr/portage"
declare -rx PORTDIR_OVERLAY=""
declare -x PR="r0"
declare -x PRELINK_PATH_MASK="/usr/lib64/klibc:/opt/eagle-5.11.0:/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so"
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -rx PROFILE_PATHS="/usr/portage/profiles/base
/usr/portage/profiles/default/linux
/usr/portage/profiles/arch/base
/usr/portage/profiles/features/multilib
/usr/portage/profiles/features/multilib/lib32
/usr/portage/profiles/arch/amd64
/usr/portage/profiles/default/linux/amd64
/usr/portage/profiles/releases
/usr/portage/profiles/releases/10.0
/usr/portage/profiles/default/linux/amd64/10.0
/usr/portage/profiles/targets/desktop
/usr/portage/profiles/default/linux/amd64/10.0/desktop
/usr/portage/profiles/targets/desktop
/usr/portage/profiles/targets/desktop/kde
/usr/portage/profiles/default/linux/amd64/10.0/desktop/kde
/etc/portage/profile"
declare -x PROPERTIES=""
declare -rx PROVIDE=""
declare -x PV="2.2.6"
declare -x PVR="2.2.6"
declare -x PWD="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6"
declare -x PYTHONDOCS="/usr/share/doc/python-docs-2.7.1/html/library"
declare -x PYTHONDOCS_2_5="/usr/share/doc/python-docs-2.5.4-r1/html"
declare -x PYTHONDOCS_2_6="/usr/share/doc/python-docs-2.6.6/html/library"
declare -x PYTHONDOCS_2_7="/usr/share/doc/python-docs-2.7.2/html/library"
declare -x PYTHONDOCS_3_1="/usr/share/doc/python-docs-3.1.3/html/library"
declare -x PYTHONDOCS_3_2="/usr/share/doc/python-docs-3.2.2/html/library"
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -x PYTHON_TARGETS="python3_2"
declare -x QT_GRAPHICSSYSTEM="raster"
declare -x QT_PLUGIN_PATH="/usr/lib64/kde4/plugins"
declare -rx REPLACING_VERSIONS="2.2.4"
declare -rx RESTRICT=""
declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x ROOT="/"
declare -x ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/arm-elf/gcc-bin/4.6.3:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3:/opt/eagle-5.11.0/bin"
declare -x RPMDIR="/usr/portage/rpm"
declare -x RUBY_TARGETS="ruby18 ruby19"
declare -x R_HOME="/usr/lib/R"
declare -x S="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/work/eiskaltdcpp-2.2.6"
declare -x SANDBOX_LOG="net-p2p_-_eiskaltdcpp-2.2.6"
declare -x SANDBOX_ON="0"
declare -x SANDBOX_READ="/:/var/tmp"
declare -x SANDBOX_WRITE="/var/tmp"
declare -x SANE_CONFIG_DIR="/etc/sane.d"
declare -x SCVIM_DIR="/usr/share/vim/scvim"
declare -x SGML_CATALOG_FILES="/etc/sgml/xml-simple-docbook-1.0.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-ent.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/xml-docbook-4.5.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/xml-docbook-4.2.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook-4.2.cat:/etc/sgml/xml-docbook-4.3.cat:/etc/sgml/sgml-docbook-4.1.cat:/etc/sgml/sgml-docbook-4.0.cat:/etc/sgml/xml-simple-docbook-4.1.2.4.cat:/etc/sgml/xml-docbook-4.1.2.cat:/etc/sgml/sgml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.4.cat"
declare -x SHELL="/bin/bash"
declare -x SHLVL="3"
declare -rx SLOT="0"
declare -x SSH_ASKPASS="/usr/bin/ssh-askpass-fullscreen"
declare -x SUDO_COMMAND="/bin/bash"
declare -x SUDO_GID="1000"
declare -x SUDO_UID="1000"
declare -x SUDO_USER="zerom"
declare -x SYMLINK_LIB="yes"
declare -rx T="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp"
declare -x TEMP="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp"
declare -x TERM="xterm"
declare -x TMP="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp"
declare -x TMPDIR="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/temp"
declare -x USB_DEVFS_PATH="/dev/bus/usb"
declare -x USE="amd64 cli consolekit dbus dht elibc_glibc emoticons examples gtk javascript kernel_linux libnotify linguas_en linguas_ru lua minimal multilib pcre policykit qt4 spell upnp userland_GNU xmlrpc"
declare -x USERLAND="GNU"
declare -x USERNAME="root"
declare -x USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CALLIGRA_FEATURES CAMERAS COLLECTD_PLUGINS CROSSCOMPILE_OPTS CURL_SSL DRACUT_MODULES DVB_CARDS ELIBC FCDSL_CARDS FFTOOLS FOO2ZJS_DEVICES FRITZCAPI_CARDS GPSD_PROTOCOLS GRUB_PLATFORMS INPUT_DEVICES KERNEL LCD_DEVICES LIBREOFFICE_EXTENSIONS LINGUAS LIRC_DEVICES MISDN_CARDS NETBEANS_MODULES NGINX_MODULES_HTTP NGINX_MODULES_MAIL OFED_DRIVERS OPENMPI_FABRICS OPENMPI_OFED_FEATURES OPENMPI_RM PHP_TARGETS PYTHON_TARGETS QEMU_SOFTMMU_TARGETS QEMU_USER_TARGETS RUBY_TARGETS SANE_BACKENDS USERLAND VIDEO_CARDS XFCE_PLUGINS XTABLES_ADDONS"
declare -x VBOX_APP_HOME="/opt/VirtualBox"
declare -x VIDEO_CARDS=""
declare -rx WORKDIR="/var/tmp/portage/net-p2p/eiskaltdcpp-2.2.6/work"
declare -x XARGS="xargs -r"
declare -x XDG_CONFIG_DIRS="/etc/xdg"
declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share"
declare -x XDG_SESSION_COOKIE="c8a48c54cc04643cc96e93600000006a-1338030056.621950-1236308238"
declare -x XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment