Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 68039 Details for
Bug 105394
ogre 1.0.4 install fails due to libtool relinking crap
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
environment
environment (text/plain), 108.20 KB, created by
Carlos Rendon
on 2005-09-09 08:50:48 UTC
(
hide
)
Description:
environment
Filename:
MIME Type:
Creator:
Carlos Rendon
Created:
2005-09-09 08:50:48 UTC
Size:
108.20 KB
patch
obsolete
>A=ogre-linux_osx-v1-0-4.tar.bz2 >AA=ogre-linux_osx-v1-0-4.tar.bz2 >ACCEPT_KEYWORDS=x86 >ACCEPT_LICENSE= >ANT_HOME=/usr/share/ant-core >ARCH=x86 >ARGS=unpack >AUTOCLEAN=yes >BAD=$'\E[31;01m' >BASH=/bin/bash >BASH_ARGC=([0]="1") >BASH_ARGV=([0]="unpack") >BASH_ENV=/etc/spork/is/not/valid/profile.env >BASH_LINENO=([0]="0") >BASH_SOURCE=([0]="/usr/lib/portage/bin/ebuild.sh") >BASH_VERSINFO=([0]="3" [1]="00" [2]="16" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") >BASH_VERSION='3.00.16(1)-release' >BRACKET=$'\E[34;01m' >BUILDDIR=/var/tmp/portage/ogre-1.0.4 >BUILD_PREFIX=/var/tmp/portage >CATEGORY=dev-games >CBUILD=i686-pc-linux-gnu >CDEFINE_default=__unix__ >CDEPEND=' ' >CFLAGS='-O2 -march=pentium4 -fomit-frame-pointer -pipe' >CG_COMPILER_EXE=/usr/bin/cgc >CHOST=i686-pc-linux-gnu >CHOST_default=i686-pc-linux-gnu >CLASSPATH=. >CLEAN_DELAY=5 >COLS=80 >CONFIG_PROTECT='/usr/lib/mozilla/defaults/pref /usr/lib/X11/xkb /usr/kde/3.4/share/config /usr/kde/3.4/env /usr/kde/3.4/shutdown /usr/kde/3.3/share/config /usr/kde/3.3/env /usr/kde/3.3/shutdown /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/xdvi/ /usr/share/config' >CONFIG_PROTECT_MASK='/etc/gconf /etc/terminfo' >CVS_RSH=ssh >CXXFLAGS='-O2 -march=pentium4 -fomit-frame-pointer -pipe' >D=/var/tmp/portage/ogre-1.0.4/image/ >DEFAULT_ABI=default >DEPEND=$'>=dev-libs/zziplib-0.13.36\n\t=media-libs/freetype-2*\n\tthreads? ( dev-libs/boost )\n\tcegui? ( >=dev-games/cegui-0.3.0 )\n\tdevil? ( >=media-libs/devil-1.5 )\n\topenexr? ( >=media-libs/openexr-1.2 )\n\tsdl? ( >=media-libs/libsdl-1.2.6 )\n\t!sdl? ( !opengl? (\n\t\t=dev-cpp/gtkglextmm-1.0*\n\t\t=dev-cpp/libglademm-2.2*\n\t) )\n\tgtk? (\n\t\t=dev-cpp/libglademm-2.2*\n\t\t=dev-cpp/gtkmm-2.2*\n\t)\n\tvirtual/opengl\n\tsys-libs/zlib\n\tsys-devel/flex\n\tcg? ( >=media-gfx/nvidia-cg-toolkit-1.2 ) !bootstrap? ( sys-devel/patch )' >DESCRIPTION='Object-oriented Graphics Rendering Engine' >DESTTREE=/usr >DIROPTIONS=-m0755 >DIRSTACK=() >DISTDIR=/usr/portage/distfiles >DOCDESTTREE= >EBUILD=/usr/portage/dev-games/ogre/ogre-1.0.4.ebuild >EBUILD_PHASE=unpack >ECLASS= >ECLASSDIR=/usr/portage/eclass >ECLASS_DEPTH=0 >EDITOR=/bin/nano >ELIBC=glibc >EMERGE_FROM=ebuild >EMERGE_WARNING_DELAY=10 >ENDCOL=$'\E[A\E[73G' >EPATCH_EXCLUDE= >EPATCH_FORCE=no >EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...' >EPATCH_OPTS='-g0 --no-backup-if-mismatch' >EPATCH_SINGLE_MSG= >EPATCH_SOURCE=/var/tmp/portage/ogre-1.0.4/work/patch >EPATCH_SUFFIX=patch.bz2 >EUID=0 >EXEDESTTREE= >EXEOPTIONS=-m0755 >FEATURES='autoconfig distlocks sandbox sfperms strict' >FETCHCOMMAND='/usr/bin/wget -t 5 --passive-ftp -P ${DISTDIR} ${URI}' >FILESDIR=/usr/portage/dev-games/ogre/files >GCC_SPECS= >GDK_USE_XFT=1 >GENTOO_MIRRORS='http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo' >GOOD=$'\E[32;01m' >GROUPS=([0]="0" [1]="1" [2]="2" [3]="3" [4]="4" [5]="6" [6]="10" [7]="11" [8]="20" [9]="26" [10]="27") >G_BROKEN_FILENAMES=1 >HILITE=$'\E[36;01m' >HISTCONTROL=ignoredups >HOME=/var/tmp/portage/homedir >HOMEPAGE=http://www.ogre3d.org/ >HOSTNAME=icarus >HOSTTYPE=i686 >IFS=$' \t\n' >INFOPATH=/usr/share/info:/usr/share/binutils-data/i686-pc-linux-gnu/2.15.92.0.2/info:/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5-20050130/info:/usr/share/info/emacs-21 >INHERITED='multilib eutils' >INSDESTTREE= >INSOPTIONS=-m0644 >IUSE='cegui cg devil double-precision doc gtk opengl openexr sdl threads ' >JAVAC=/opt/sun-jdk-1.4.2.08/bin/javac >JAVA_HOME=/opt/sun-jdk-1.4.2.08 >JDK_HOME=/opt/sun-jdk-1.4.2.08 >KDEDIRS=/usr >KDE_MALLOC=1 >KERNEL=linux >KEYWORDS='~x86' >KV=2.6.13 >KVERS=. >LADSPA_PATH=/usr/lib/ladspa >LDFLAGS=-O1 >LD_PRELOAD=/usr/lib/libsandbox.so >LESS=-R >LESSOPEN='|lesspipe.sh %s' >LIBDIR_default=lib >LIBOPTIONS=-m0644 >LICENSE=LGPL-2.1 >LOGNAME=carneboy >LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.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:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.xcf=01;35:*.pcx=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.avi=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.mov=01;35:*.qt=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.fli=01;35:*.gl=01;35:*.dl=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:*.mp3=00;36:*.wav=00;36:*.mid=00;36:*.midi=00;36:*.au=00;36:*.ogg=00;36:*.flac=00;36:*.aac=00;36:' >MACHTYPE=i686-pc-linux-gnu >MAKEOPTS=-j4 >MANPATH=/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/i686-pc-linux-gnu/2.15.92.0.2/man:/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5-20050130/man::/opt/sun-jdk-1.4.2.08/man:/usr/qt/3/doc/man >MOPREFIX=ogre >MOZILLA_FIVE_HOME=/usr/lib/mozilla >MULTILIB_ABIS=default >MY_PV=1-0-4 >NET_FS_LIST='afs cifs coda davfs gfs ncpfs nfs nfs4 shfs smbfs' >NORMAL=$'\E[0m' >O=/usr/portage/dev-games/ogre >OCC= >OCXX= >OLDPWD=/var/tmp/portage/ogre-1.0.4/work/ogrenew >OPENGL_PROFILE=nvidia >OPTERR=1 >OPTIND=1 >OSTYPE=linux-gnu >P=ogre-1.0.4 >PAGER=/usr/bin/less >PATH=/sbin:/usr/sbin:/usr/lib/portage/bin:/bin:/usr/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130:/opt/sun-jdk-1.4.2.08/bin:/opt/sun-jdk-1.4.2.08/jre/bin:/opt/sun-jdk-1.4.2.08/jre/javaws:/usr/qt/3/bin:/usr/kde/3.4/sbin:/usr/kde/3.4/bin:/usr/kde/3.3/sbin:/usr/kde/3.3/bin >PDEPEND=' ' >PF=ogre-1.0.4 >PIPESTATUS=([0]="0") >PKGDIR=/usr/portage/packages >PKGUSE='cegui cg devil opengl sdl' >PKG_TMPDIR=/var/tmp/portage-pkg >PN=ogre >PORTAGE_ARCHLIST='alpha amd64 arm hppa ia64 m68k mips ppc ppc64 ppc-macos ppc-od s390 sh sparc x86 x86-fbsd x86-od' >PORTAGE_BASHRC=/etc/portage/bashrc >PORTAGE_BINHOST_CHUNKSIZE=3000 >PORTAGE_CALLER=emerge >PORTAGE_GID=250 >PORTAGE_MASTER_PID=26603 >PORTAGE_TMPDIR=/var/tmp >PORTDIR=/usr/portage >PPID=26970 >PR=r0 >PRELINK_PATH= >PRELINK_PATH_MASK=/usr/lib/gstreamer-0.8 >PROFILE_PATHS=$'/usr/portage/profiles/base\n/usr/portage/profiles/default-linux\n/usr/portage/profiles/default-linux/x86\n/usr/portage/profiles/default-linux/x86/2005.0\n/etc/portage/profile\n/etc/portage/profile' >PROVIDE= >PS4='+ ' >PV=1.0.4 >PVR=1.0.4 >PWD=/var/tmp/portage/ogre-1.0.4 >PYTHONPATH=/usr/lib/portage/pym >QA_INTERCEPTORS='javac java-config python python-config perl grep egrep fgrep sed gcc g++ cc bash awk nawk gawk pkg-config' >QMAKESPEC=linux-g++ >QTDIR=/usr/qt/3 >RC_DEFAULT_INDENT=2 >RC_DEVICES=auto >RC_DEVICE_TARBALL=yes >RC_DOT_PATTERN= >RC_ENDCOL=yes >RC_FAIL_ON_ZOMBIE=no >RC_FORCE_AUTO=no >RC_GOT_FUNCTIONS=yes >RC_INDENTATION= >RC_NET_STRICT_CHECKING=no >RC_NOCOLOR= >RC_PARALLEL_STARTUP=no >RC_QUIET_STDOUT=no >RC_RETRY_COUNT=5 >RC_RETRY_KILL=yes >RC_RETRY_TIMEOUT=1 >RC_TTY_NUMBER=11 >RC_USE_CONFIG_PROFILE=yes >RC_USE_FSTAB=no >RC_VERBOSE=no >RC_VOLUME_ORDER='raid evms lvm dm' >RDEPEND=$'>=dev-libs/zziplib-0.13.36\n\t=media-libs/freetype-2*\n\tthreads? ( dev-libs/boost )\n\tcegui? ( >=dev-games/cegui-0.3.0 )\n\tdevil? ( >=media-libs/devil-1.5 )\n\topenexr? ( >=media-libs/openexr-1.2 )\n\tsdl? ( >=media-libs/libsdl-1.2.6 )\n\t!sdl? ( !opengl? (\n\t\t=dev-cpp/gtkglextmm-1.0*\n\t\t=dev-cpp/libglademm-2.2*\n\t) )\n\tgtk? (\n\t\t=dev-cpp/libglademm-2.2*\n\t\t=dev-cpp/gtkmm-2.2*\n\t)\n\tvirtual/opengl\n\tsys-libs/zlib ' >RESTRICT= >RESUMECOMMAND='/usr/bin/wget -c -t 5 --passive-ftp -P ${DISTDIR} ${URI}' >ROOT=/ >ROOTPATH=/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130:/opt/sun-jdk-1.4.2.08/bin:/opt/sun-jdk-1.4.2.08/jre/bin:/opt/sun-jdk-1.4.2.08/jre/javaws:/usr/qt/3/bin:/usr/kde/3.4/sbin:/usr/kde/3.4/bin:/usr/kde/3.3/sbin:/usr/kde/3.3/bin >RPMDIR=/usr/portage/rpm >RSYNC_RETRIES=3 >RSYNC_TIMEOUT=180 >S=/var/tmp/portage/ogre-1.0.4/work/ogrenew >SHELL=/bin/bash >SHELLOPTS=braceexpand:hashall:interactive-comments >SHLVL=5 >SLOT=0 >SRC_URI=mirror://sourceforge/ogre/ogre-linux_osx-v1-0-4.tar.bz2 >SSH_CLIENT='138.23.76.128 1072 22' >SSH_CONNECTION='138.23.76.128 1072 192.168.1.100 22' >SSH_TTY=/dev/pts/0 >STARTDIR=/home/carneboy >STY=21868.pts-0.icarus >SVCDIR=/var/lib/supervise >SYNC=rsync://rsync.gentoo.org/gentoo-portage >T=/var/tmp/portage/ogre-1.0.4/temp >TERM=screen >TERMCAP=$'SC|screen|VT 100/ANSI X3.64 virtual terminal:\\\n\t:DO=\\E[%dB:LE=\\E[%dD:RI=\\E[%dC:UP=\\E[%dA:bs:bt=\\E[Z:\\\n\t:cd=\\E[J:ce=\\E[K:cl=\\E[H\\E[J:cm=\\E[%i%d;%dH:ct=\\E[3g:\\\n\t:do=^J:nd=\\E[C:pt:rc=\\E8:rs=\\Ec:sc=\\E7:st=\\EH:up=\\EM:\\\n\t:le=^H:bl=^G:cr=^M:it#8:ho=\\E[H:nw=\\EE:ta=^I:is=\\E)0:\\\n\t:li#24:co#80:am:xn:xv:LP:sr=\\EM:al=\\E[L:AL=\\E[%dL:\\\n\t:cs=\\E[%i%d;%dr:dl=\\E[M:DL=\\E[%dM:dc=\\E[P:DC=\\E[%dP:\\\n\t:im=\\E[4h:ei=\\E[4l:mi:IC=\\E[%d@:ks=\\E[?1h\\E=:\\\n\t:ke=\\E[?1l\\E>:vi=\\E[?25l:ve=\\E[34h\\E[?25h:vs=\\E[34l:\\\n\t:ti=\\E[?1049h:te=\\E[?1049l:us=\\E[4m:ue=\\E[24m:so=\\E[3m:\\\n\t:se=\\E[23m:mb=\\E[5m:md=\\E[1m:mr=\\E[7m:me=\\E[m:ms:\\\n\t:Co#8:pa#64:AF=\\E[3%dm:AB=\\E[4%dm:op=\\E[39;49m:AX:\\\n\t:vb=\\Eg:G0:as=\\E(0:ae=\\E(B:\\\n\t:ac=\\140\\140aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~..--++,,hhII00:\\\n\t:po=\\E[5i:pf=\\E[4i:Z0=\\E[?3h:Z1=\\E[?3l:k0=\\E[10~:\\\n\t:k1=\\EOP:k2=\\EOQ:k3=\\EOR:k4=\\EOS:k5=\\E[15~:k6=\\E[17~:\\\n\t:k7=\\E[18~:k8=\\E[19~:k9=\\E[20~:k;=\\E[21~:F1=\\E[23~:\\\n\t:F2=\\E[24~:F3=\\EO2P:F4=\\EO2Q:F5=\\EO2R:F6=\\EO2S:\\\n\t:F7=\\E[15;2~:F8=\\E[17;2~:F9=\\E[18;2~:FA=\\E[19;2~:kb=^H:\\\n\t:K2=\\EOE:kB=\\E[Z:*4=\\E[3;2~:*7=\\E[1;2F:#2=\\E[1;2H:\\\n\t:#3=\\E[2;2~:#4=\\E[1;2D:%c=\\E[6;2~:%e=\\E[5;2~:%i=\\E[1;2C:\\\n\t:kh=\\E[1~:@1=\\E[1~:kH=\\E[4~:@7=\\E[4~:kN=\\E[6~:kP=\\E[5~:\\\n\t:kI=\\E[2~:kD=\\E[3~:ku=\\EOA:kd=\\EOB:kr=\\EOC:kl=\\EOD:km:' >TMP=/var/tmp/portage/ogre-1.0.4/temp >TMPDIR=/var/tmp/portage/ogre-1.0.4/temp >UID=0 >USE='x86 X aac aalib alsa apache2 apm avi bash-completion berkdb bitmap-fonts bonobo cdr cegui cg crypt cups curl devil directfb divx4linux dvd dvdr eds emacs emboss encode esd fam fbcon flac foomaticdb fortran gd gdbm gif gnome gpm gstreamer gtk gtk2 imlib ipv6 java jpeg libg++ libwww mad mikmod mmx motif mozilla mozsvg mp3 mpeg ncurses nls nptl nvidia offensive ogg oggvorbis opengl pam pdflib perl png ppds python quicktime readline samba sdl speex spell sqlite sse sse2 ssl svg tcltk tcpd tetex tiff truetype truetype-fonts type1-fonts unicode usb vorbis win32codecs wxwindows xine xml2 xmms xv zlib userland_GNU kernel_linux elibc_glibc' >USER=carneboy >USERLAND=GNU >USE_EXPAND='FRITZCAPI_CARDS FCDSL_CARDS VIDEO_CARDS INPUT_DEVICES LINGUAS USERLAND KERNEL ELIBC' >WARN=$'\E[33;01m' >WINDOW=0 >WORKDIR=/var/tmp/portage/ogre-1.0.4/work >XARGS='xargs -r' >XINITRC=/etc/X11/xinit/xinitrc >_=002 >deptypes='need use' >dir=/etc/portage/profile >myarg=unpack >ordtypes='before after' >svcdir=/var/lib/init.d >svcfstype=tmpfs >svclib=/lib/rcscripts >svcmount=no >svcsize=2048 >EXPORT_FUNCTIONS () >{ > if [ -z "$ECLASS" ]; then > echo "EXPORT_FUNCTIONS without a defined ECLASS" 1>&2; > exit 1; > fi; > while [ "$1" ]; do > debug-print "EXPORT_FUNCTIONS: ${1} -> ${ECLASS}_${1}"; > eval "$1() { ${ECLASS}_$1 "\$@" ; }" >/dev/null; > shift; > done >} >KV_major () >{ > [[ -z $1 ]] && return 1; > local KV=$@; > echo ${KV%%.*} >} >KV_micro () >{ > [[ -z $1 ]] && return 1; > local KV=$@; > KV=${KV#*.*.}; > echo ${KV%%[^[:digit:]]*} >} >KV_minor () >{ > [[ -z $1 ]] && return 1; > local KV=$@; > KV=${KV#*.}; > echo ${KV%%.*} >} >KV_to_int () >{ > [[ -z $1 ]] && return 1; > local KV_MAJOR=$(KV_major "$1"); > local KV_MINOR=$(KV_minor "$1"); > local KV_MICRO=$(KV_micro "$1"); > local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO )); > if [[ ${KV_int} -ge 131584 ]]; then > echo "${KV_int}"; > return 0; > fi; > return 1 >} >_eend () >{ > local retval=${1:-0} efunc=${2:-eerror} msg; > shift 2; > if [[ ${retval} == 0 ]]; then > [[ ${RC_QUIET_STDOUT} == yes ]] && return 0; > msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"; > else > if [[ -c /dev/null ]]; then > rc_splash "stop" >&/dev/null & > else > rc_splash "stop" & > fi; > if [[ -n "$*" ]]; then > ${efunc} "$*"; > fi; > msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"; > fi; > if [[ ${RC_ENDCOL} == yes ]]; then > echo -e "${ENDCOL} ${msg}"; > else > [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0; > printf "%$(( COLS - LAST_E_LEN - 6 ))s%b\n" '' "${msg}"; > fi; > return ${retval} >} >abort_compile () >{ > abort_handler "src_compile" $1; > rm -f "${BUILDDIR}/.compiled"; > exit 1 >} >abort_handler () >{ > local msg; > if [ "$2" != "fail" ]; then > msg="${EBUILD}: ${1} aborted; exiting."; > else > msg="${EBUILD}: ${1} failed; exiting."; > fi; > echo; > echo "$msg"; > echo; > eval ${3}; > trap SIGINT SIGQUIT >} >abort_install () >{ > abort_handler "src_install" $1; > rm -rf "${BUILDDIR}/image"; > exit 1 >} >abort_package () >{ > abort_handler "dyn_package" $1; > rm -f "${BUILDDIR}/.packaged"; > rm -f "${PKGDIR}"/All/${PF}.t*; > exit 1 >} >abort_test () >{ > abort_handler "dyn_test" $1; > rm -f "${BUILDDIR}/.tested"; > exit 1 >} >abort_unpack () >{ > abort_handler "src_unpack" $1; > rm -f "${BUILDDIR}/.unpacked"; > rm -rf "${BUILDDIR}/work"; > exit 1 >} >add_suffix () >{ > if [ "${RC_USE_CONFIG_PROFILE}" = "yes" -a -e "$1.${DEFAULTLEVEL}" ]; then > echo "$1.${DEFAULTLEVEL}"; > else > echo "$1"; > fi; > return 0 >} >adddeny () >{ > export SANDBOX_DENY="$SANDBOX_DENY:$1" >} >addpredict () >{ > export SANDBOX_PREDICT="$SANDBOX_PREDICT:$1" >} >addread () >{ > export SANDBOX_READ="$SANDBOX_READ:$1" >} >addwrite () >{ > export SANDBOX_WRITE="$SANDBOX_WRITE:$1" >} >best_version () >{ > if [ "${EBUILD_PHASE}" == "depend" ]; then > echo -n "QA Notice: best_version() in global scope: " 1>&2; > if [ ${ECLASS_DEPTH} -gt 0 ]; then > echo "eclass ${ECLASS}" 1>&2; > else > echo "${CATEGORY}/${PF}" 1>&2; > fi; > fi; > /usr/lib/portage/bin/portageq 'best_version' "${ROOT}" "$1" >} >bootlog () >{ > return 0 >} >built_with_use () >{ > local opt=$1; > [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; > local PKG=$(best_version $1); > shift; > local USEFILE="${ROOT}/var/db/pkg/${PKG}/USE"; > [[ ! -e ${USEFILE} ]] && return 1; > local USE_BUILT=$(<${USEFILE}); > while [[ $# -gt 0 ]]; do > if [[ ${opt} = "-o" ]]; then > has $1 ${USE_BUILT} && return 0; > else > has $1 ${USE_BUILT} || return 1; > fi; > shift; > done; > [[ ${opt} = "-a" ]] >} >cdrom_get_cds () >{ > local cdcnt=0; > local f=; > for f in "$@"; > do > cdcnt=$((cdcnt + 1)); > export CDROM_CHECK_${cdcnt}="$f"; > done; > export CDROM_TOTAL_CDS=${cdcnt}; > export CDROM_CURRENT_CD=1; > if [[ ! -z ${CD_ROOT} ]]; then > export CDROM_ROOT=${CD_ROOT}; > einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"; > return; > fi; > if [[ ! -z ${CD_ROOT_1} ]]; then > local var=; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > cdcnt=$((cdcnt + 1)); > var="CD_ROOT_${cdcnt}"; > if [[ -z ${!var} ]]; then > eerror "You must either use just the CD_ROOT"; > eerror "or specify ALL the CD_ROOT_X variables."; > eerror "In this case, you will need ${CDROM_TOTAL_CDS} CD_ROOT_X variables."; > diefunc "$FUNCNAME" "$LINENO" "$?" "could not locate CD_ROOT_${cdcnt}"; > fi; > export CDROM_ROOTS_${cdcnt}="${!var}"; > done; > export CDROM_ROOT=${CDROM_ROOTS_1}; > einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"; > return; > fi; > if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then > einfon "This ebuild will need the "; > if [[ -z ${CDROM_NAME} ]]; then > echo "cdrom for ${PN}."; > else > echo "${CDROM_NAME}."; > fi; > echo; > einfo "If you do not have the CD, but have the data files"; > einfo "mounted somewhere on your filesystem, just export"; > einfo "the variable CD_ROOT so that it points to the"; > einfo "directory containing the files."; > echo; > einfo "For example:"; > einfo "export CD_ROOT=/mnt/cdrom"; > echo; > else > einfo "This package will need access to ${CDROM_TOTAL_CDS} cds."; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > cdcnt=$((cdcnt + 1)); > var="CDROM_NAME_${cdcnt}"; > [[ ! -z ${!var} ]] && einfo " CD ${cdcnt}: ${!var}"; > done; > echo; > einfo "If you do not have the CDs, but have the data files"; > einfo "mounted somewhere on your filesystem, just export"; > einfo "the following variables so they point to the right place:"; > einfon ""; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > cdcnt=$((cdcnt + 1)); > echo -n " CD_ROOT_${cdcnt}"; > done; > echo; > einfo "Or, if you have all the files in the same place, or"; > einfo "you only have one cdrom, you can export CD_ROOT"; > einfo "and that place will be used as the same data source"; > einfo "for all the CDs."; > echo; > einfo "For example:"; > einfo "export CD_ROOT_1=/mnt/cdrom"; > echo; > fi; > export CDROM_CURRENT_CD=0; > cdrom_load_next_cd >} >cdrom_load_next_cd () >{ > export CDROM_CURRENT_CD=$((CDROM_CURRENT_CD + 1)); > local var=; > if [[ ! -z ${CD_ROOT} ]]; then > einfo "Using same root as before for CD #${CDROM_CURRENT_CD}"; > return; > fi; > unset CDROM_ROOT; > var=CDROM_ROOTS_${CDROM_CURRENT_CD}; > if [[ -z ${!var} ]]; then > var="CDROM_CHECK_${CDROM_CURRENT_CD}"; > cdrom_locate_file_on_cd ${!var}; > else > export CDROM_ROOT=${!var}; > fi; > einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}" >} >cdrom_locate_file_on_cd () >{ > while [[ -z ${CDROM_ROOT} ]]; do > local dir=$(dirname "$*"); > local file=$(basename "$*"); > local mline=""; > local showedmsg=0; > for mline in $(mount | egrep -e '(iso|cdrom)' | awk '{print $3}'); > do > [[ -d ${mline}/${dir} ]] || continue; > [[ ! -z $(find ${mline}/${dir} -maxdepth 1 -iname ${file}) ]] && export CDROM_ROOT=${mline}; > done; > if [[ -z ${CDROM_ROOT} ]]; then > echo; > if [[ ${showedmsg} -eq 0 ]]; then > if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then > if [[ -z ${CDROM_NAME} ]]; then > einfo "Please insert the cdrom for ${PN} now !"; > else > einfo "Please insert the ${CDROM_NAME} cdrom now !"; > fi; > else > if [[ -z ${CDROM_NAME_1} ]]; then > einfo "Please insert cd #${CDROM_CURRENT_CD} for ${PN} now !"; > else > local var="CDROM_NAME_${CDROM_CURRENT_CD}"; > einfo "Please insert+mount the ${!var} cdrom now !"; > fi; > fi; > showedmsg=1; > fi; > einfo "Press return to scan for the cd again"; > einfo "or hit CTRL+C to abort the emerge."; > echo; > einfo "If you are having trouble with the detection"; > einfo "of your CD, it is possible that you do not have"; > einfo "Joliet support enabled in your kernel. Please"; > einfo "check that CONFIG_JOLIET is enabled in your kernel."; > read; > fi; > done >} >check_KV () >{ > if [ -z "${KV}" ]; then > eerror ""; > eerror "Could not determine your kernel version."; > eerror "Make sure that you have /usr/src/linux symlink."; > eerror "And that said kernel has been configured."; > eerror "You can also simply run the following command"; > eerror "in the kernel referenced by /usr/src/linux:"; > eerror " make include/linux/version.h"; > eerror ""; > diefunc "$FUNCNAME" "$LINENO" "$?"; > fi >} >check_license () >{ > local lic=$1; > if [ -z "${lic}" ]; then > lic="${PORTDIR}/licenses/${LICENSE}"; > else > if [ -e "${PORTDIR}/licenses/${src}" ]; then > lic="${PORTDIR}/licenses/${src}"; > else > if [ -e "${PWD}/${src}" ]; then > lic="${PWD}/${src}"; > else > if [ -e "${src}" ]; then > lic="${src}"; > fi; > fi; > fi; > fi; > [ ! -f "${lic}" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "Could not find requested license ${src}"; > local l="`basename ${lic}`"; > local shopts=$-; > local alic; > set -o noglob; > for alic in ${ACCEPT_LICENSE}; > do > if [[ ${alic} == * || ${alic} == ${l} ]]; then > set +o noglob; > set -${shopts}; > return 0; > fi; > done; > set +o noglob; > set -$shopts; > local licmsg="$(emktemp)"; > cat >${licmsg} <<EOF >********************************************************** >The following license outlines the terms of use of this >package. You MUST accept this license for installation to >continue. When you are done viewing, hit 'q'. If you >CTRL+C out of this, the install will not run! >********************************************************** > >EOF > > cat ${lic} >>${licmsg}; > ${PAGER:-less} ${licmsg} || diefunc "$FUNCNAME" "$LINENO" "$?" "Could not execute pager (${PAGER}) to accept ${lic}"; > einfon "Do you accept the terms of this license (${l})? [yes/no] "; > read alic; > case ${alic} in > yes | Yes | y | Y) > return 0 > ;; > *) > echo; > echo; > echo; > eerror "You MUST accept the license to continue! Exiting!"; > diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to accept license" > ;; > esac >} >create_ml_includes () >{ > local dest="${1}"; > shift; > local mlinfo="${@}"; > local basedirs=$(create_ml_includes-listdirs ${mlinfo}); > create_ml_includes-makedestdirs ${dest} ${basedirs}; > local file; > for file in $(create_ml_includes-allfiles ${basedirs}); > do > local name="$(echo $file | tr a-z A-Z | sed 's:[^A-Z]:_:g')"; > { > echo "/* Common header file autogenerated by create_ml_includes in multilib.eclass */"; > local dir; > for dir in ${basedirs}; > do > if [ -f "${D}/${dir}/${file}" ]; then > local sym=$(create_ml_includes-sym_for_dir ${dir} ${mlinfo}); > if [[ ${sym::1} == "!" ]]; then > echo "#ifndef ${sym:1}"; > else > echo "#ifdef ${sym}"; > fi; > echo "#include <$(create_ml_includes-absolute ${dir}/${file})>"; > echo "#endif /* ${sym} */"; > echo ""; > fi; > done > } >${D}/${dest}/${file}; > done >} >create_ml_includes-absolute () >{ > local dst="$(create_ml_includes-tidy_path ${1})"; > dst=(${dst//\// }); > local i; > for ((i=0 ; i<${#dst[*]} ; i++)) > do > [ "${dst[i]}" == "include" ] && break; > done; > local strip_upto=$i; > for ((i=strip_upto+1 ; i<${#dst[*]}-1 ; i++)) > do > echo -n ${dst[i]}/; > done; > echo -n ${dst[i]} >} >create_ml_includes-allfiles () >{ > local basedirs=${@}; > local basedir; > for basedir in ${basedirs}; > do > local file; > for file in $(find ${D}/${basedir} -type f); > do > echo ${file/${D}\/${basedir}\//}; > done; > done | sort | uniq >} >create_ml_includes-listdirs () >{ > local dirs; > local data; > for data in ${@}; > do > dirs="${dirs} ${data/*:/}"; > done; > echo ${dirs:1} >} >create_ml_includes-makedestdirs () >{ > local dest=${1}; > shift; > local basedirs=${@}; > dodir ${dest}; > local basedir; > for basedir in ${basedirs}; > do > local dir; > for dir in $(find ${D}/${basedir} -type d); > do > dodir ${dest}/${dir/${D}\/${basedir}/}; > done; > done >} >create_ml_includes-sym_for_dir () >{ > local dir="${1}"; > shift; > local data; > for data in ${@}; > do > if [ "${dir}" = "${data/*:/}" ]; then > echo ${data/:*/}; > return 0; > fi; > done; > echo "Shouldn't be here -- create_ml_includes-sym_for_dir ${1} ${@}"; > exit 1 >} >create_ml_includes-tidy_path () >{ > local removed="${1}"; > if [ -n "${removed}" ]; then > while [ "${removed}" != "${removed/\/\//\/}" ]; do > removed=${removed/\/\//\/}; > done; > while [ "${removed}" != "${removed//\/.\//\/}" ]; do > removed=${removed//\/.\//\/}; > done; > [ "${removed##*/}" = "." ] && removed=${removed%/*}; > while [ "${removed}" != "${removed//\/..\/}" ]; do > local p1="${removed%%\/..\/*}"; > local p2="${removed#*\/..\/}"; > removed="${p1%\/*}/${p2}"; > done; > [ "${removed##*/}" = ".." ] && removed=${removed%/*/*}; > [ "${removed##*/}" = "" ] && removed=${removed%/*}; > echo ${removed}; > fi >} >debug-print () >{ > [ -z "$T" ] && return 0; > while [ "$1" ]; do > if [ "$ECLASS_DEBUG_OUTPUT" == "on" ]; then > echo "debug: $1"; > else > if [ -n "$ECLASS_DEBUG_OUTPUT" ]; then > echo "debug: $1" >>$ECLASS_DEBUG_OUTPUT; > fi; > fi; > echo "$1" >>"${T}/eclass-debug.log"; > chmod g+w "${T}/eclass-debug.log" >&/dev/null; > shift; > done >} >debug-print-function () >{ > str="$1: entering function"; > shift; > debug-print "$str, parameters: $*" >} >debug-print-section () >{ > debug-print "now in section $*" >} >diefunc () >{ > local funcname="$1" lineno="$2" exitcode="$3"; > shift 3; > echo 1>&2; > echo "!!! ERROR: $CATEGORY/$PF failed." 1>&2; > echo "!!! Function $funcname, Line $lineno, Exitcode $exitcode" 1>&2; > echo "!!! ${*:-(no error message)}" 1>&2; > echo "!!! If you need support, post the topmost build error, NOT this status message." 1>&2; > echo 1>&2; > exit 1 >} >diropts () >{ > DIROPTIONS=""; > for x in $*; > do > DIROPTIONS="${DIROPTIONS} $x"; > done; > export DIROPTIONS >} >do_newdepend () >{ > debug-print-function do_newdepend $*; > [ -z "$1" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "do_newdepend without arguments"; > [[ ${ECLASS_DEPTH} > 0 ]] && TARGET="E_$1"; > [[ ${ECLASS_DEPTH} > 0 ]] || TARGET="$1"; > shift; > while [ -n "$1" ]; do > eval export ${TARGET}=\"\${${TARGET}} \$1\"; > shift; > done >} >docinto () >{ > if [ "$1" == "/" ]; then > export DOCDESTTREE=""; > else > export DOCDESTTREE="$1"; > if [ ! -d "${D}usr/share/doc/${PF}/${DOCDESTTREE}" ]; then > install -d "${D}usr/share/doc/${PF}/${DOCDESTTREE}"; > fi; > fi >} >doicon () >{ > local i j; > insinto /usr/share/pixmaps; > for i in "$@"; > do > if [[ -f ${i} ]]; then > doins "${i}"; > else > if [[ -d ${i} ]]; then > for j in "${i}"/*.png; > do > doins "${j}"; > done; > fi; > fi; > done >} >dolisting () >{ > local x=; > local y=; > local tmpstr=; > local mylist=; > local mypath="$*"; > if [ "${mypath%/\*}" != "${mypath}" ]; then > mypath="${mypath%/\*}"; > fi; > for x in ${mypath}; > do > [ ! -e "${x}" ] && continue; > if [ ! -d "${x}" ] && ( [ -L "${x}" -o -f "${x}" ] ); then > mylist="${mylist} $(ls "${x}" 2> /dev/null)"; > else > [ "${x%/}" != "${x}" ] && x="${x%/}"; > cd "${x}"; > tmpstr="$(ls)"; > for y in ${tmpstr}; > do > mylist="${mylist} ${x}/${y}"; > done; > fi; > done; > echo "${mylist}" >} >domenu () >{ > local i j; > insinto /usr/share/applications; > for i in "$@"; > do > if [[ -f ${i} ]]; then > doins "${i}"; > else > if [[ -d ${i} ]]; then > for j in "${i}"/*.desktop; > do > doins "${j}"; > done; > fi; > fi; > done >} >dopamd () >{ > [[ -z $1 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "dopamd requires at least one argument"; > use pam || return 0; > INSDESTTREE=/etc/pam.d doins "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "failed to install $@" >} >draw_line () >{ > local i=0; > local str_length=""; > if [ -z "$1" -o ! -x "$(which wc 2>/dev/null)" ]; then > echo "==============================================================="; > return 0; > fi; > str_length="$(echo -n "$*" | wc -m)"; > while [ "$i" -lt "${str_length}" ]; do > echo -n "="; > i=$((i + 1)); > done; > echo; > return 0 >} >dyn_clean () >{ > if [ "$USERLAND" == "BSD" ] && type -p chflags >&/dev/null; then > chflags -R noschg,nouchg,nosappnd,nouappnd,nosunlnk,nouunlnk "${BUILDDIR}"; > fi; > if [ "$USERLAND" == "Darwin" ] && type -p chflags >&/dev/null; then > chflags -R noschg,nouchg,nosappnd,nouappnd "${BUILDDIR}"; > fi; > rm -rf "${BUILDDIR}/image"; > if ! hasq keeptemp $FEATURES; then > rm -rf "${T}"; > else > mv "${T}/environment" "${T}/environment.keeptemp"; > fi; > if ! hasq keepwork $FEATURES; then > rm -rf "${BUILDDIR}/.unpacked"; > rm -rf "${BUILDDIR}/.compiled"; > rm -rf "${BUILDDIR}/.tested"; > rm -rf "${BUILDDIR}/.installed"; > rm -rf "${BUILDDIR}/.packaged"; > rm -rf "${BUILDDIR}/build-info"; > rm -rf "${WORKDIR}"; > fi; > if [ -f "${BUILDDIR}/.unpacked" ]; then > find "${BUILDDIR}" -type d ! -regex "^${WORKDIR}" | sort -r | tr "\n" "\0" | $XARGS -0 rmdir >&/dev/null; > fi; > if [ -z "$(find "${BUILDDIR}" -mindepth 1 -maxdepth 1)" ]; then > rmdir "${BUILDDIR}"; > fi; > true >} >dyn_compile () >{ > trap "abort_compile" SIGINT SIGQUIT; > [ "${CFLAGS-unset}" != "unset" ] && export CFLAGS; > [ "${CXXFLAGS-unset}" != "unset" ] && export CXXFLAGS; > [ "${LIBCFLAGS-unset}" != "unset" ] && export LIBCFLAGS; > [ "${LIBCXXFLAGS-unset}" != "unset" ] && export LIBCXXFLAGS; > [ "${LDFLAGS-unset}" != "unset" ] && export LDFLAGS; > [ "${ASFLAGS-unset}" != "unset" ] && export ASFLAGS; > [ "${CCACHE_DIR-unset}" != "unset" ] && export CCACHE_DIR; > [ "${CCACHE_SIZE-unset}" != "unset" ] && export CCACHE_SIZE; > [ "${DISTCC_DIR-unset}" == "unset" ] && export DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"; > [ ! -z "${DISTCC_DIR}" ] && addwrite "${DISTCC_DIR}"; > if hasq noauto $FEATURES >&/dev/null && [ ! -f ${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; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0.25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > echo -ne "\a"; > sleep 0,25 >&/dev/null; > sleep 3; > fi; > cd "${BUILDDIR}"; > if [ ! -e "build-info" ]; then > mkdir build-info; > fi; > cp "${EBUILD}" "build-info/${PF}.ebuild"; > if [ ${BUILDDIR}/.compiled -nt "${WORKDIR}" ]; then > echo ">>> It appears that ${PN} is already compiled; skipping."; > echo ">>> (clean to force compilation)"; > trap SIGINT SIGQUIT; > return; > fi; > if [ -d "${S}" ]; then > cd "${S}"; > fi; > export S D; > export PWORKDIR="$WORKDIR"; > src_compile; > cd "${BUILDDIR}"; > touch .compiled; > cd build-info; > echo "$ASFLAGS" >ASFLAGS; > echo "$CATEGORY" >CATEGORY; > echo "$CBUILD" >CBUILD; > echo "$CC" >CC; > echo "$CDEPEND" >CDEPEND; > echo "$CFLAGS" >CFLAGS; > echo "$CHOST" >CHOST; > echo "$CTARGET" >CTARGET; > echo "$CXX" >CXX; > echo "$CXXFLAGS" >CXXFLAGS; > echo "$DEPEND" >DEPEND; > echo "$EXTRA_ECONF" >EXTRA_ECONF; > echo "$EXTRA_EINSTALL" >EXTRA_EINSTALL; > echo "$EXTRA_EMAKE" >EXTRA_MAKE; > echo "$FEATURES" >FEATURES; > echo "$INHERITED" >INHERITED; > echo "$IUSE" >IUSE; > echo "$PKGUSE" >PKGUSE; > echo "$LDFLAGS" >LDFLAGS; > echo "$LIBCFLAGS" >LIBCFLAGS; > echo "$LIBCXXFLAGS" >LIBCXXFLAGS; > echo "$LICENSE" >LICENSE; > echo "$PDEPEND" >PDEPEND; > echo "$PF" >PF; > echo "$PROVIDE" >PROVIDE; > echo "$RDEPEND" >RDEPEND; > echo "$RESTRICT" >RESTRICT; > echo "$SLOT" >SLOT; > echo "$USE" >USE; > set >environment; > export -p | sed 's:declare -rx:declare -x:' >>environment; > bzip2 -9 environment; > cp "${EBUILD}" "${PF}.ebuild"; > if hasq nostrip $FEATURES $RESTRICT; then > touch DEBUGBUILD; > fi; > trap SIGINT SIGQUIT >} >dyn_help () >{ > echo; > echo "Portage"; > echo "Copyright 1999-2004 Gentoo Foundation"; > echo; > echo "How to use the ebuild command:"; > echo; > echo "The first argument to ebuild should be an existing .ebuild file."; > echo; > echo "One or more of the following options can then be specified. If more"; > echo "than one option is specified, each will be executed in order."; > echo; > echo " help : show this help screen"; > echo " setup : execute package specific setup actions"; > echo " fetch : download source archive(s) and patches"; > echo " digest : creates a digest and a manifest file for the package"; > echo " manifest : creates a manifest file for the package"; > echo " unpack : unpack/patch sources (auto-fetch if needed)"; > echo " compile : compile sources (auto-fetch/unpack if needed)"; > echo " test : test package (auto-fetch/unpack/compile if needed)"; > echo " preinst : execute pre-install instructions"; > echo " postinst : execute post-install instructions"; > echo " install : installs the package to the temporary install directory"; > echo " qmerge : merge image into live filesystem, recording files in db"; > echo " merge : does 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 tarball package in ${PKGDIR}/All"; > echo " rpm : builds a RedHat RPM package"; > echo " clean : clean up all source and temporary files"; > echo; > echo "The following settings will be used for the ebuild process:"; > echo; > echo " package : ${PF}"; > echo " slot : ${SLOT}"; > echo " category : ${CATEGORY}"; > echo " description : ${DESCRIPTION}"; > echo " system : ${CHOST}"; > echo " c flags : ${CFLAGS}"; > echo " c++ flags : ${CXXFLAGS}"; > echo " make flags : ${MAKEOPTS}"; > echo -n " build mode : "; > if hasq nostrip $FEATURES $RESTRICT; 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 () >{ > trap "abort_install" SIGINT SIGQUIT; > rm -rf "${BUILDDIR}/image"; > mkdir "${BUILDDIR}/image"; > if [ -d "${S}" ]; then > cd "${S}"; > fi; > echo; > echo ">>> Install ${PF} into ${D} category ${CATEGORY}"; > export S D; > export PWORKDIR="$WORKDIR"; > src_install; > prepall; > cd "${D}"; > declare -i UNSAFE=0; > for i in $(find "${D}/" -type f -perm -2002); > do > UNSAFE=$(($UNSAFE + 1)); > echo "UNSAFE SetGID: $i"; > done; > for i in $(find "${D}/" -type f -perm -4002); > do > UNSAFE=$(($UNSAFE + 1)); > echo "UNSAFE SetUID: $i"; > done; > if [ -x /usr/bin/readelf -a -x /usr/bin/file ]; then > for x in $(find "${D}/" -type f \( -perm -04000 -o -perm -02000 \) ); > do > f=$(file "${x}"); > if [ -z "${f/*SB executable*/}" -o -z "${f/*SB shared object*/}" ]; then > /usr/bin/readelf -d "${x}" | egrep '\(FLAGS(.*)NOW' >/dev/null; > if [ $? != 0 ]; then > if [ ! -z "${f/*statically linked*/}" ]; then > echo -ne '\a'; > echo "QA Notice: ${x:${#D}:${#x}} is setXid, dynamically linked and using lazy bindings."; > echo "This combination is generally discouraged. Try: CFLAGS='-Wl,-z,now' emerge ${PN}"; > echo -ne '\a'; > sleep 1; > fi; > fi; > fi; > done; > fi; > if [[ $UNSAFE > 0 ]]; then > diefunc "$FUNCNAME" "$LINENO" "$?" "There are ${UNSAFE} unsafe files. Portage will not install them."; > fi; > function stat_perms () > { > local f; > if ! type -p stat >&/dev/null; then > function do_stat () > { > python -c "import os,stat; print '%o' % os.stat('$1')[stat.ST_MODE]" > }; > else > if [ "${USERLAND}" == "BSD" ] || [ "${USERLAND}" == "Darwin" ]; then > function do_stat () > { > $(type -p stat) -f '%p' "$1" > }; > else > function do_stat () > { > f=$($(type -p stat) -c '%f' "$1") || return $?; > printf '%o' "0x$f" > }; > fi; > fi; > f=$(do_stat "$@") || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to perform stat operation on file: $1"; > f="${f:2:4}"; > echo $f > }; > local file s; > local count=0; > find "${D}/" -user portage | while read file; do > count=$(( $count + 1 )); > [[ ! -L ${file} ]] && s=$(stat_perms $file); > chown root "$file"; > [[ ! -L ${file} ]] && chmod "$s" "$file"; > done; > if (( $count > 0 )); then > ewarn "$count files were installed with user portage!"; > fi; > count=0; > find "${D}/" -group portage | while read file; do > count=$(( $count + 1 )); > [[ ! -L ${file} ]] && s=$(stat_perms "$file"); > if [ "$USERLAND" == "BSD" ] || [ "$USERLAND" == "Darwin" ]; then > chgrp wheel "$file"; > else > chgrp root "$file"; > fi; > [[ ! -L ${file} ]] && chmod "$s" "$file"; > done; > if (( $count > 0 )); then > ewarn "$count files were installed with group portage!"; > fi; > unset -f stat_perms; > if [ -f "${D}/usr/share/info/dir.gz" ]; then > rm -f "${D}/usr/share/info/dir.gz"; > fi; > if hasq multilib-strict ${FEATURES} && [ -x /usr/bin/file -a -x /usr/bin/find -a -n "${MULTILIB_STRICT_DIRS}" -a -n "${MULTILIB_STRICT_DENY}" ]; then > MULTILIB_STRICT_EXEMPT=${MULTILIB_STRICT_EXEMPT:-"(perl5|gcc|gcc-lib)"}; > for dir in ${MULTILIB_STRICT_DIRS}; > do > [ -d "${D}/${dir}" ] || continue; > for file in $(find ${D}/${dir} -type f | egrep -v "^${D}/${dir}/${MULTILIB_STRICT_EXEMPT}"); > do > file ${file} | egrep -q "${MULTILIB_STRICT_DENY}" && diefunc "$FUNCNAME" "$LINENO" "$?" "File ${file} matches a file type that is not allowed in ${dir}"; > done; > done; > fi; > touch "${BUILDDIR}/.installed"; > echo ">>> Completed installing ${PF} into ${D}"; > echo; > cd ${BUILDDIR}; > trap SIGINT SIGQUIT >} >dyn_package () >{ > trap "abort_package" SIGINT SIGQUIT; > cd "${BUILDDIR}/image"; > tar cpvf - ./ | bzip2 -f >../bin.tar.bz2 || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create tarball"; > cd ..; > xpak build-info inf.xpak; > tbz2tool join bin.tar.bz2 inf.xpak "${PF}.tbz2"; > mv "${PF}.tbz2" "${PKGDIR}/All" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to move tbz2 to ${PKGDIR}/All"; > rm -f inf.xpak bin.tar.bz2; > if [ ! -d "${PKGDIR}/${CATEGORY}" ]; then > install -d "${PKGDIR}/${CATEGORY}"; > fi; > ln -sf "../All/${PF}.tbz2" "${PKGDIR}/${CATEGORY}/${PF}.tbz2" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create symlink in ${PKGDIR}/${CATEGORY}"; > echo ">>> Done."; > cd "${BUILDDIR}"; > touch .packaged || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to 'touch .packaged' in ${BUILDDIR}"; > trap SIGINT SIGQUIT >} >dyn_preinst () >{ > [ "${EMERGE_FROM}" == "binary" ] && IMAGE=${PKG_TMPDIR}/${PF}/bin || IMAGE=${D}; > pkg_preinst; > local shopts=$-; > set -o noglob; > for no_inst in ${INSTALL_MASK}; > do > set +o noglob; > einfo "Removing ${no_inst}"; > rm -Rf ${IMAGE}/${no_inst} >&/dev/null; > find "${IMAGE}" -name ${no_inst} -exec rm -fR {} \; >&/dev/null; > done; > set +o noglob; > set -${shopts}; > if hasq noman $FEATURES; then > rm -fR "${IMAGE}/usr/share/man"; > fi; > if hasq noinfo $FEATURES; then > rm -fR "${IMAGE}/usr/share/info"; > fi; > if hasq nodoc $FEATURES; then > rm -fR "${IMAGE}/usr/share/doc"; > fi; > if hasq nodoc $FEATURES -o hasq noman $FEATURES -o hasq noinfo $FEATURES; then > rmdir "${IMAGE}/usr/share" >&/dev/null; > fi; > if hasq sfperms $FEATURES; then > for i in $(find ${IMAGE}/ -type f -perm -4000); > do > ebegin ">>> SetUID: [chmod go-r] $i "; > chmod go-r "$i"; > eend $?; > done; > for i in $(find ${IMAGE}/ -type f -perm -2000); > do > ebegin ">>> SetGID: [chmod o-r] $i "; > chmod o-r "$i"; > eend $?; > done; > fi; > if hasq suidctl $FEATURES >/dev/null; then > sfconf=/etc/portage/suidctl.conf; > echo ">>> Preforming suid scan in ${IMAGE}"; > for i in $(find ${IMAGE}/ -type f \( -perm -4000 -o -perm -2000 \) ); > do > if [ -s "${sfconf}" ]; then > suid="`grep ^${i/${IMAGE}/}$ ${sfconf}`"; > if [ "${suid}" = "${i/${IMAGE}/}" ]; then > echo "- ${i/${IMAGE}/} is an approved suid file"; > else > echo ">>> Removing sbit on non registered ${i/${IMAGE}/}"; > for x in 5 4 3 2 1 0; > do > echo -ne "\a"; > sleep 0.25; > done; > echo -ne "\a"; > chmod ugo-s "${i}"; > grep ^#${i/${IMAGE}/}$ ${sfconf} >/dev/null || { > addwrite "${sfconf}"; > echo ">>> Appending commented out entry to ${sfconf} for ${PF}"; > ls_ret=`ls -ldh "${i}"`; > echo "## ${ls_ret%${IMAGE}*}${ls_ret#*${IMAGE}}" >>${sfconf}; > echo "#${i/${IMAGE}/}" >>${sfconf} > }; > fi; > else > echo "suidctl feature set but you are lacking a ${sfconf}"; > fi; > done; > fi; > if useq selinux; then > if [ -f /selinux/context -a -x /usr/sbin/setfiles ]; then > echo ">>> Setting SELinux security labels"; > if [ -f ${POLICYDIR}/file_contexts/file_contexts ]; then > cp -f "${POLICYDIR}/file_contexts/file_contexts" "${T}"; > else > make -C "${POLICYDIR}" FC=${T}/file_contexts "${T}/file_contexts"; > fi; > addwrite /selinux/context; > /usr/sbin/setfiles -r "${IMAGE}" "${T}/file_contexts" "${IMAGE}" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to set SELinux security labels."; > else > echo "!!! Unable to set SELinux security labels"; > fi; > fi; > trap SIGINT SIGQUIT >} >dyn_rpm () >{ > dyn_spec; > rpmbuild -bb "${PF}.spec" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to integrate rpm spec file"; > install -D "/usr/src/redhat/RPMS/i386/${PN}-${PV}-${PR}.i386.rpm" "${RPMDIR}/${CATEGORY}/${PN}-${PV}-${PR}.rpm" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to move rpm" >} >dyn_setup () >{ > pkg_setup >} >dyn_spec () >{ > tar czf "/usr/src/redhat/SOURCES/${PF}.tar.gz" "${O}/${PF}.ebuild" "${O}/files" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create base rpm tarball."; > cat >${PF}.spec <<__END1__ >Summary: ${DESCRIPTION} >Name: ${PN} >Version: ${PV} >Release: ${PR} >Copyright: GPL >Group: portage/${CATEGORY} >Source: ${PF}.tar.gz >Buildroot: ${D} >%description >${DESCRIPTION} > >${HOMEPAGE} > >%prep >%setup -c > >%build > >%install > >%clean > >%files >/ >__END1__ > >} >dyn_test () >{ > if [ ${BUILDDIR}/.tested -nt "${WORKDIR}" ]; then > echo ">>> It appears that ${PN} has already been tested; skipping."; > return; > fi; > trap "abort_test" SIGINT SIGQUIT; > if [ -d "${S}" ]; then > cd "${S}"; > fi; > if hasq maketest $RESTRICT || hasq test $RESTRICT; then > ewarn "Skipping make test/check due to ebuild restriction."; > echo ">>> Test phase [explicitly disabled]: ${CATEGORY}/${PF}"; > else > if ! hasq test $FEATURES; then > echo ">>> Test phase [not enabled]: ${CATEGORY}/${PF}"; > else > echo ">>> Test phase [enabled]: ${CATEGORY}/${PF}"; > src_test; > fi; > fi; > cd "${BUILDDIR}"; > touch .tested || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to 'touch .tested' in ${BUILDDIR}"; > trap SIGINT SIGQUIT >} >dyn_unpack () >{ > trap "abort_unpack" SIGINT SIGQUIT; > local newstuff="no"; > if [ -e "${WORKDIR}" ]; then > local x; > local checkme; > for x in ${AA}; > do > echo ">>> Checking ${x}'s mtime..."; > if [ "${DISTDIR}/${x}" -nt "${WORKDIR}" ]; then > echo ">>> ${x} has been updated; recreating WORKDIR..."; > newstuff="yes"; > rm -rf "${WORKDIR}"; > break; > fi; > done; > if [ "${EBUILD}" -nt "${WORKDIR}" ]; then > echo ">>> ${EBUILD} has been updated; recreating WORKDIR..."; > newstuff="yes"; > rm -rf "${WORKDIR}"; > else > if [ ! -f "${BUILDDIR}/.unpacked" ]; then > echo ">>> Not marked as unpacked; recreating WORKDIR..."; > newstuff="yes"; > rm -rf "${WORKDIR}"; > fi; > fi; > fi; > if [ -e "${WORKDIR}" ]; then > if [ "$newstuff" == "no" ]; then > echo ">>> WORKDIR is up-to-date, keeping..."; > return 0; > fi; > fi; > install -m0700 -d "${WORKDIR}" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create dir '${WORKDIR}'"; > [ -d "$WORKDIR" ] && cd "${WORKDIR}"; > echo ">>> Unpacking source..."; > src_unpack; > touch "${BUILDDIR}/.unpacked" || diefunc "$FUNCNAME" "$LINENO" "$?" "IO Failure -- Failed 'touch .unpacked' in BUILDIR"; > echo ">>> Source unpacked."; > cd "$BUILDDIR"; > trap SIGINT SIGQUIT >} >ebeep () >{ > local n; > if [ -z "$EBEEP_IGNORE" ] && [ -t 1 ]; then > for ((n=1 ; n <= ${1:-5} ; n++)) > do > echo -ne "\a"; > sleep 0.1 >&/dev/null; > sleep 0,1 >&/dev/null; > echo -ne "\a"; > sleep 1; > done; > fi >} >ebegin () >{ > local msg="$*" dots spaces=${RC_DOT_PATTERN//?/ }; > [[ ${RC_QUIET_STDOUT} == yes ]] && return 0; > 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 >} >econf () >{ > local LOCAL_EXTRA_ECONF="${EXTRA_ECONF}"; > if [ -z "${ECONF_SOURCE}" ]; then > ECONF_SOURCE="."; > fi; > if [ -x "${ECONF_SOURCE}/configure" ]; then > if [ -e /usr/share/gnuconfig/ ]; then > local x; > for x in $(find ${WORKDIR} -type f -name config.guess -o -name config.sub); > do > echo " * econf: updating ${x/${WORKDIR}\/} with /usr/share/gnuconfig/${x##*/}"; > cp /usr/share/gnuconfig/${x##*/} ${x}; > done; > fi; > if [ ! -z "${CBUILD}" ]; then > LOCAL_EXTRA_ECONF="--build=${CBUILD} ${LOCAL_EXTRA_ECONF}"; > fi; > if [ ! -z "${CTARGET}" ]; then > LOCAL_EXTRA_ECONF="--target=${CTARGET} ${LOCAL_EXTRA_ECONF}"; > fi; > LIBDIR_VAR="LIBDIR_${ABI}"; > if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then > CONF_LIBDIR="${!LIBDIR_VAR}"; > fi; > unset LIBDIR_VAR; > if [ -n "${CONF_LIBDIR}" ] && [ "${*/--libdir}" == "$*" ]; then > if [ "${*/--exec-prefix}" != "$*" ]; then > local args="$(echo $*)"; > local -a pref=($(echo ${args/*--exec-prefix[= ]})); > CONF_PREFIX=${pref}; > [ "${CONF_PREFIX:0:1}" != "/" ] && CONF_PREFIX="/${CONF_PREFIX}"; > else > if [ "${*/--prefix}" != "$*" ]; then > local args="$(echo $*)"; > local -a pref=($(echo ${args/*--prefix[= ]})); > CONF_PREFIX=${pref}; > [ "${CONF_PREFIX:0:1}" != "/" ] && CONF_PREFIX="/${CONF_PREFIX}"; > else > CONF_PREFIX="/usr"; > fi; > fi; > export CONF_PREFIX; > [ "${CONF_LIBDIR:0:1}" != "/" ] && CONF_LIBDIR="/${CONF_LIBDIR}"; > CONF_LIBDIR_RESULT="${CONF_PREFIX}${CONF_LIBDIR}"; > for X in 1 2 3; > do > CONF_LIBDIR_RESULT="${CONF_LIBDIR_RESULT//\/\///}"; > done; > LOCAL_EXTRA_ECONF="--libdir=${CONF_LIBDIR_RESULT} ${LOCAL_EXTRA_ECONF}"; > fi; > echo "${ECONF_SOURCE}/configure" --prefix=/usr --host=${CHOST} --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib ${LOCAL_EXTRA_ECONF} "$@"; > if ! "${ECONF_SOURCE}/configure" --prefix=/usr --host=${CHOST} --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib ${LOCAL_EXTRA_ECONF} "$@"; then > if [ -s config.log ]; then > echo; > echo "!!! Please attach the config.log to your bug report:"; > echo "!!! ${PWD}/config.log"; > fi; > diefunc "$FUNCNAME" "$LINENO" "$?" "econf failed"; > fi; > else > diefunc "$FUNCNAME" "$LINENO" "$?" "no configure script found"; > fi >} >edos2unix () >{ > for f in "$@"; > do > cp "${f}" ${T}/edos2unix; > sed 's/\r$//' ${T}/edos2unix >"${f}"; > done >} >eend () >{ > local retval=${1:-0}; > shift; > _eend ${retval} eerror "$*"; > LAST_E_CMD=eend; > return $retval >} >eerror () >{ > if [[ ${RC_QUIET_STDOUT} == yes ]]; then > echo " $*" >/dev/stderr; > else > [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo; > echo -e " ${BAD}*${NORMAL} ${RC_INDENTATION}$*"; > fi; > esyslog "daemon.err" "rc-scripts" "$*"; > LAST_E_CMD=eerror; > return 0 >} >egetent () >{ > if [[ "${USERLAND}" == "Darwin" ]]; then > case "$2" in > *[!0-9]*) > nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }" > ;; > *) > nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }" > ;; > esac; > else > if [[ "${USERLAND}" == "BSD" ]]; then > local action; > if [ "$1" == "passwd" ]; then > action="user"; > else > action="group"; > fi; > pw show "${action}" "$2" -q; > else > which nscd >&/dev/null && nscd -i "$1"; > getent "$1" "$2"; > fi; > fi >} >eindent () >{ > local i=$1; > (( i > 0 )) || (( i = RC_DEFAULT_INDENT )); > esetdent $(( ${#RC_INDENTATION} + i )) >} >einfo () >{ > einfon "$*\n"; > LAST_E_CMD=einfo; > return 0 >} >einfon () >{ > [[ ${RC_QUIET_STDOUT} == yes ]] && return 0; > [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo; > echo -ne " ${GOOD}*${NORMAL} ${RC_INDENTATION}$*"; > LAST_E_CMD=einfon; > return 0 >} >einstall () >{ > LIBDIR_VAR="LIBDIR_${ABI}"; > if [ -n "${ABI}" -a -n "${!LIBDIR_VAR}" ]; then > CONF_LIBDIR="${!LIBDIR_VAR}"; > fi; > unset LIBDIR_VAR; > if [ -n "${CONF_LIBDIR}" ] && [ "${CONF_PREFIX:-unset}" != "unset" ]; then > EI_DESTLIBDIR="${D}/${CONF_PREFIX}/${CONF_LIBDIR}"; > EI_DESTLIBDIR="$(strip_duplicate_slashes ${EI_DESTLIBDIR})"; > EXTRA_EINSTALL="libdir=${EI_DESTLIBDIR} ${EXTRA_EINSTALL}"; > unset EI_DESTLIBDIR; > fi; > if [ -f ./[mM]akefile -o -f ./GNUmakefile ]; then > if [ ! -z "${PORTAGE_DEBUG}" ]; then > make -n prefix=${D}/usr datadir=${D}/usr/share infodir=${D}/usr/share/info localstatedir=${D}/var/lib mandir=${D}/usr/share/man sysconfdir=${D}/etc ${EXTRA_EINSTALL} "$@" install; > fi; > make prefix=${D}/usr datadir=${D}/usr/share infodir=${D}/usr/share/info localstatedir=${D}/var/lib mandir=${D}/usr/share/man sysconfdir=${D}/etc ${EXTRA_EINSTALL} "$@" install || diefunc "$FUNCNAME" "$LINENO" "$?" "einstall failed"; > else > diefunc "$FUNCNAME" "$LINENO" "$?" "no Makefile found"; > fi >} >emktemp () >{ > local exe="touch"; > [[ $1 == -d ]] && exe="mkdir" && shift; > local topdir=$1; > if [[ -z ${topdir} ]]; then > [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; > fi; > if [[ -z $(type -p mktemp) ]]; then > local tmp=/; > while [[ -e ${tmp} ]]; do > tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; > done; > ${exe} "${tmp}" || ${exe} -p "${tmp}"; > echo "${tmp}"; > else > [[ ${exe} == "touch" ]] && exe="-p" || exe="-d"; > mktemp ${exe} "${topdir}"; > fi >} >enewgroup () >{ > local egroup="$1"; > shift; > if [ -z "${egroup}" ]; then > eerror "No group specified !"; > diefunc "$FUNCNAME" "$LINENO" "$?" "Cannot call enewgroup without a group"; > fi; > if [ "${egroup}" == "`egetent group \"${egroup}\" | cut -d: -f1`" ]; then > return 0; > fi; > einfo "Adding group '${egroup}' to your system ..."; > local opts=; > local egid="$1"; > shift; > if [ ! -z "${egid}" ]; then > if [ "${egid}" -gt 0 ]; then > if [ -z "`egetent group ${egid}`" ]; then > if [[ "${USERLAND}" == "Darwin" ]]; then > opts="${opts} ${egid}"; > else > opts="${opts} -g ${egid}"; > fi; > else > egid="next available; requested gid taken"; > fi; > else > eerror "Groupid given but is not greater than 0 !"; > diefunc "$FUNCNAME" "$LINENO" "$?" "${egid} is not a valid GID"; > fi; > else > egid="next available"; > fi; > einfo " - Groupid: ${egid}"; > local eextra="$@"; > opts="${opts} ${eextra}"; > local oldsandbox="${SANDBOX_ON}"; > export SANDBOX_ON="0"; > if [[ "${USERLAND}" == "Darwin" ]]; then > if [ ! -z "${eextra}" ]; then > einfo "Extra options are not supported on Darwin/OS X yet"; > einfo "Please report the ebuild along with the info below"; > einfo "eextra: ${eextra}"; > diefunc "$FUNCNAME" "$LINENO" "$?" "Required function missing"; > fi; > case ${egid} in > *[!0-9]*) > for egid in `jot 898 101`; > do > [ -z "`egetent group ${egid}`" ] && break; > done > ;; > esac; > dscl . create /groups/${egroup} gid ${egid}; > dscl . create /groups/${egroup} passwd '*'; > else > if [[ "${USERLAND}" == "BSD" ]]; then > case ${egid} in > *[!0-9]*) > for egid in `jot 898 101`; > do > [ -z "`egetent group ${egid}`" ] && break; > done > ;; > esac; > pw groupadd ${egroup} -g ${egid} || diefunc "$FUNCNAME" "$LINENO" "$?" "enewgroup failed"; > else > groupadd ${opts} ${egroup} || diefunc "$FUNCNAME" "$LINENO" "$?" "enewgroup failed"; > fi; > fi; > export SANDBOX_ON="${oldsandbox}" >} >enewuser () >{ > local euser=$1; > shift; > if [[ -z ${euser} ]]; then > eerror "No username specified !"; > diefunc "$FUNCNAME" "$LINENO" "$?" "Cannot call enewuser without a username"; > fi; > if [[ ${euser} == $(egetent passwd "${euser}" | cut -d: -f1) ]]; then > return 0; > fi; > einfo "Adding user '${euser}' to your system ..."; > local opts=; > local euid=$1; > shift; > if [[ ! -z ${euid} ]] && [[ ${euid} != "-1" ]]; then > if [[ ${euid} -gt 0 ]]; then > if [[ ! -z $(egetent passwd ${euid}) ]]; then > euid="next"; > fi; > else > eerror "Userid given but is not greater than 0 !"; > diefunc "$FUNCNAME" "$LINENO" "$?" "${euid} is not a valid UID"; > fi; > else > euid="next"; > fi; > if [[ ${euid} == "next" ]]; then > local pwrange; > if [[ ${USERLAND} == "BSD" ]]; then > pwrange=$(jot 898 101); > else > pwrange=$(seq 101 999); > fi; > for euid in ${pwrange}; > do > [[ -z $(egetent passwd ${euid}) ]] && break; > done; > fi; > opts="${opts} -u ${euid}"; > einfo " - Userid: ${euid}"; > local eshell=$1; > shift; > if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then > if [[ ! -e ${eshell} ]]; then > eerror "A shell was specified but it does not exist !"; > diefunc "$FUNCNAME" "$LINENO" "$?" "${eshell} does not exist"; > fi; > else > case ${USERLAND} in > Darwin) > eshell="/usr/bin/false" > ;; > BSD) > eshell="/usr/sbin/nologin" > ;; > *) > eshell="/bin/false" > ;; > esac; > fi; > einfo " - Shell: ${eshell}"; > opts="${opts} -s ${eshell}"; > local ehome=$1; > shift; > if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then > ehome="/dev/null"; > fi; > einfo " - Home: ${ehome}"; > opts="${opts} -d ${ehome}"; > local egroups=$1; > shift; > if [[ ! -z ${egroups} ]]; then > local oldifs=${IFS}; > local defgroup="" exgroups=""; > export IFS=","; > for g in ${egroups}; > do > export IFS=${oldifs}; > if [[ -z $(egetent group "${g}") ]]; then > eerror "You must add group ${g} to the system first"; > diefunc "$FUNCNAME" "$LINENO" "$?" "${g} is not a valid GID"; > fi; > if [[ -z ${defgroup} ]]; then > defgroup=${g}; > else > exgroups="${exgroups},${g}"; > fi; > export IFS=","; > done; > export IFS=${oldifs}; > opts="${opts} -g ${defgroup}"; > if [[ ! -z ${exgroups} ]]; then > opts="${opts} -G ${exgroups:1}"; > fi; > else > egroups="(none)"; > fi; > einfo " - Groups: ${egroups}"; > local oldsandbox=${SANDBOX_ON}; > export SANDBOX_ON="0"; > case ${USERLAND} in > Darwin) > if [[ -z $@ ]]; then > dscl . create /users/${euser} uid ${euid}; > dscl . create /users/${euser} shell ${eshell}; > dscl . create /users/${euser} home ${ehome}; > dscl . create /users/${euser} realname "added by portage for ${PN}"; > local oldifs=${IFS}; > export IFS=","; > for g in ${egroups}; > do > dscl . merge /groups/${g} users ${euser}; > done; > export IFS=${oldifs}; > else > einfo "Extra options are not supported on Darwin yet"; > einfo "Please report the ebuild along with the info below"; > einfo "eextra: $@"; > diefunc "$FUNCNAME" "$LINENO" "$?" "Required function missing"; > fi > ;; > BSD) > if [[ -z $@ ]]; then > pw useradd ${euser} ${opts} -c "added by portage for ${PN}" die "enewuser failed"; > else > einfo " - Extra: $@"; > pw useradd ${euser} ${opts} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; > fi > ;; > *) > if [[ -z $@ ]]; then > useradd ${opts} ${euser} -c "added by portage for ${PN}" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; > else > einfo " - Extra: $@"; > useradd ${opts} ${euser} "$@" || diefunc "$FUNCNAME" "$LINENO" "$?" "enewuser failed"; > fi > ;; > esac; > if [[ ! -e ${ROOT}/${ehome} ]]; then > einfo " - Creating ${ehome} in ${ROOT}"; > mkdir -p "${ROOT}/${ehome}"; > chown ${euser} "${ROOT}/${ehome}"; > chmod 755 "${ROOT}/${ehome}"; > fi; > export SANDBOX_ON=${oldsandbox} >} >eoutdent () >{ > local i=$1; > (( i > 0 )) || (( i = RC_DEFAULT_INDENT )); > esetdent $(( ${#RC_INDENTATION} - i )) >} >epatch () >{ > local PIPE_CMD=""; > local STDERR_TARGET="${T}/$$.out"; > local PATCH_TARGET="${T}/$$.patch"; > local PATCH_SUFFIX=""; > local SINGLE_PATCH="no"; > local x=""; > unset P4CONFIG P4PORT P4USER; > if [ "$#" -gt 1 ]; then > local m=""; > for m in "$@"; > do > epatch "${m}"; > done; > return 0; > fi; > if [ -n "$1" -a -f "$1" ]; then > SINGLE_PATCH="yes"; > local EPATCH_SOURCE="$1"; > local EPATCH_SUFFIX="${1##*\.}"; > else > if [ -n "$1" -a -d "$1" ]; then > if [ "${EPATCH_FORCE}" = "yes" ] && [ -z "${EPATCH_SUFFIX}" ]; then > local EPATCH_SOURCE="$1/*"; > else > local EPATCH_SOURCE="$1/*.${EPATCH_SUFFIX}"; > fi; > else > if [ ! -d ${EPATCH_SOURCE} ] || [ -n "$1" ]; then > if [ -n "$1" -a "${EPATCH_SOURCE}" = "${WORKDIR}/patch" ]; then > EPATCH_SOURCE="$1"; > fi; > echo; > eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:"; > eerror; > eerror " ${EPATCH_SOURCE}"; > eerror " ( ${EPATCH_SOURCE##*/} )"; > echo; > diefunc "$FUNCNAME" "$LINENO" "$?" "Cannot find \$EPATCH_SOURCE!"; > fi; > local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}"; > fi; > fi; > case ${EPATCH_SUFFIX##*\.} in > bz2) > PIPE_CMD="bzip2 -dc"; > PATCH_SUFFIX="bz2" > ;; > gz | Z | z) > PIPE_CMD="gzip -dc"; > PATCH_SUFFIX="gz" > ;; > ZIP | zip) > PIPE_CMD="unzip -p"; > PATCH_SUFFIX="zip" > ;; > *) > PIPE_CMD="cat"; > PATCH_SUFFIX="patch" > ;; > esac; > if [ "${SINGLE_PATCH}" = "no" ]; then > einfo "${EPATCH_MULTI_MSG}"; > fi; > for x in ${EPATCH_SOURCE}; > do > if [ -f ${x} ] && ( [ "${SINGLE_PATCH}" = "yes" -o "${x/_all_}" != "${x}" -o "${x/_${ARCH}_}" != "${x}" ] || [ "${EPATCH_FORCE}" = "yes" ] ); then > local count=0; > local popts="${EPATCH_OPTS}"; > local patchname=${x##*/}; > if [ -n "${EPATCH_EXCLUDE}" ]; then > if [ "${EPATCH_EXCLUDE/${patchname}}" != "${EPATCH_EXCLUDE}" ]; then > continue; > fi; > fi; > if [ "${SINGLE_PATCH}" = "yes" ]; then > if [ -n "${EPATCH_SINGLE_MSG}" ]; then > einfo "${EPATCH_SINGLE_MSG}"; > else > einfo "Applying ${patchname} ..."; > fi; > else > einfo " ${patchname} ..."; > fi; > echo "***** ${patchname} *****" >${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > while [ "${count}" -lt 5 ]; do > draw_line "***** ${patchname} *****" >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > echo -n "PIPE_COMMAND: " >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > else > PATCH_TARGET="${x}"; > fi; > echo -n "PATCH COMMAND: " >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > draw_line "***** ${patchname} *****" >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > if ! ( ${PIPE_CMD} ${x} >${PATCH_TARGET} ) >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then > echo; > eerror "Could not extract patch!"; > count=5; > break; > fi; > fi; > if ( cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f ) >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then > draw_line "***** ${patchname} *****" >${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo "ACTUALLY APPLYING ${patchname} ..." >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > draw_line "***** ${patchname} *****" >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > cat ${PATCH_TARGET} | patch -p${count} ${popts} >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 2>&1; > if [ "$?" -ne 0 ]; then > cat ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real >>${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo; > eerror "A dry-run of patch command succeeded, but actually"; > eerror "applying the patch failed!"; > count=5; > fi; > rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > break; > fi; > count=$((count + 1)); > done; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > rm -f ${PATCH_TARGET}; > fi; > if [ "${count}" -eq 5 ]; then > echo; > eerror "Failed Patch: ${patchname} !"; > eerror " ( ${PATCH_TARGET} )"; > eerror; > eerror "Include in your bugreport the contents of:"; > eerror; > eerror " ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}"; > echo; > diefunc "$FUNCNAME" "$LINENO" "$?" "Failed Patch: ${patchname}!"; > fi; > rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > eend 0; > fi; > done; > if [ "${SINGLE_PATCH}" = "no" ]; then > einfo "Done with patching"; > fi >} >epause () >{ > if [ -z "$EPAUSE_IGNORE" ] && [ -t 1 ]; then > sleep ${1:-5}; > fi >} >epunt_cxx () >{ > local dir=$1; > [[ -z ${dir} ]] && dir=${S}; > ebegin "Removing useless C++ checks"; > local f; > for f in $(find ${dir} -name configure); > do > patch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" >/dev/null; > done; > eend 0 >} >esetdent () >{ > local i=$1; > (( i < 0 )) && (( i = 0 )); > RC_INDENTATION=$(printf "%${i}s" '') >} >esyslog () >{ > return 0 >} >ewarn () >{ > if [[ ${RC_QUIET_STDOUT} == yes ]]; then > echo " $*"; > else > [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo; > echo -e " ${WARN}*${NORMAL} ${RC_INDENTATION}$*"; > fi; > esyslog "daemon.warning" "rc-scripts" "$*"; > LAST_E_CMD=ewarn; > return 0 >} >ewend () >{ > local retval=${1:-0}; > shift; > _eend ${retval} ewarn "$*"; > LAST_E_CMD=ewend; > return $retval >} >exeinto () >{ > if [ "$1" == "/" ]; then > export EXEDESTTREE=""; > else > export EXEDESTTREE="$1"; > if [ ! -d "${D}${EXEDESTTREE}" ]; then > install -d "${D}${EXEDESTTREE}"; > fi; > fi >} >exeopts () >{ > EXEOPTIONS=""; > for x in $*; > do > if hasq nostrip $FEATURES $RESTRICT && [ "$x" == "-s" ]; then > continue; > else > EXEOPTIONS="$EXEOPTIONS $x"; > fi; > done; > export EXEOPTIONS >} >find_unpackable_file () >{ > local src=$1; > if [[ -z ${src} ]]; then > src=${DISTDIR}/${A}; > else > if [[ -e ${DISTDIR}/${src} ]]; then > src=${DISTDIR}/${src}; > else > if [[ -e ${PWD}/${src} ]]; then > src=${PWD}/${src}; > else > if [[ -e ${src} ]]; then > src=${src}; > fi; > fi; > fi; > fi; > [[ ! -e ${src} ]] && return 1; > echo "${src}" >} >gen_usr_ldscript () >{ > local libdir="$(get_libdir)"; > dodir /usr/${libdir}; > for lib in "${@}"; > do > cat >"${D}/usr/${libdir}/${lib}" <<-END_LDSCRIPT >/* GNU ld script > Since Gentoo has critical dynamic libraries > in /lib, and the static versions in /usr/lib, > we need to have a "fake" dynamic lib in /usr/lib, > otherwise we run into linking problems. > > See bug http://bugs.gentoo.org/4411 for more info. > */ >GROUP ( /${libdir}/${lib} ) >END_LDSCRIPT > > fperms a+x "/usr/${libdir}/${lib}"; > done >} >gen_wrapper () >{ > cat >$1 <<END >#!/bin/sh > >$2 "\$@" >END > > chmod 0755 $1 >} >get_KV () >{ > local KV=$(uname -r); > echo $(KV_to_int "${KV}"); > return $? >} >get_abi_CDEFINE () >{ > get_abi_var CDEFINE "${@}" >} >get_abi_CFLAGS () >{ > get_abi_var CFLAGS "${@}" >} >get_abi_CHOST () >{ > get_abi_var CHOST "${@}" >} >get_abi_FAKE_TARGETS () >{ > get_abi_var FAKE_TARGETS "${@}" >} >get_abi_LDFLAGS () >{ > get_abi_var LDFLAGS "${@}" >} >get_abi_LIBDIR () >{ > get_abi_var LIBDIR "${@}" >} >get_abi_var () >{ > local flag=${1}; > local abi; > if [ $# -gt 1 ]; then > abi=${2}; > else > if [ -n "${ABI}" ]; then > abi=${ABI}; > else > if [ -n "${DEFAULT_ABI}" ]; then > abi=${DEFAULT_ABI}; > else > abi="default"; > fi; > fi; > fi; > local var="${flag}_${abi}"; > echo ${!var} >} >get_all_abis () >{ > local order=""; > if [ -z "${MULTILIB_ABIS}" ]; then > echo "default"; > return 0; > fi; > for x in ${MULTILIB_ABIS}; > do > if [ "${x}" != "${DEFAULT_ABI}" ]; then > order="${order:+${order }}${x}"; > fi; > done; > order="${order:+${order} }${DEFAULT_ABI}"; > echo ${order}; > return 0 >} >get_all_libdirs () >{ > local libdirs="lib"; > local abi; > local dir; > if has_multilib_profile; then > for abi in ${MULTILIB_ABIS}; > do > [ "$(get_abi_LIBDIR ${abi})" != "lib" ] && libdirs="${libdirs} $(get_abi_LIBDIR ${abi})"; > done; > else > if [ -n "${CONF_LIBDIR}" ]; then > for dir in ${CONF_LIBDIR} ${CONF_MULTILIBDIR:-lib32}; > do > [ "${dir}" != "lib" ] && libdirs="${libdirs} ${dir}"; > done; > fi; > fi; > echo "${libdirs}" >} >get_base_ver () >{ > [[ ! -r /etc/gentoo-release ]] && return 0; > local ver=$(</etc/gentoo-release); > echo ${ver##* } >} >get_bootconfig () >{ > local copt=; > local newbootlevel=; > local newsoftlevel=; > if [[ -r /proc/cmdline ]]; then > for copt in $(</proc/cmdline); > do > case "${copt%=*}" in > bootlevel) > newbootlevel=${copt##*=} > ;; > softlevel) > newsoftlevel=${copt##*=} > ;; > esac; > done; > fi; > if [[ -n ${newbootlevel} ]]; then > export BOOTLEVEL=${newbootlevel}; > else > export BOOTLEVEL="boot"; > fi; > if [[ -n ${newsoftlevel} ]]; then > export DEFAULTLEVEL=${newsoftlevel}; > else > export DEFAULTLEVEL="default"; > fi; > return 0 >} >get_bootparam () >{ > local x copt params retval=1; > [ ! -r "/proc/cmdline" ] && return 1; > for copt in $(< /proc/cmdline); > do > if [ "${copt%=*}" = "gentoo" ]; then > params="$(gawk -v PARAMS="${copt##*=}" ' > BEGIN { > split(PARAMS, nodes, ",") > for (x in nodes) > print nodes[x] > }')"; > for x in ${params}; > do > if [ "${x}" = "$1" ]; then > retval=0; > fi; > done; > fi; > done; > return ${retval} >} >get_install_abis () >{ > local order=""; > if [ -z "${MULTILIB_ABIS}" ]; then > echo "default"; > return 0; > fi; > if hasq multilib-pkg-force ${RESTRICT} || { > hasq multilib-pkg ${FEATURES} && hasq multilib-pkg ${RESTRICT} > }; then > for x in ${MULTILIB_ABIS}; > do > if [ "${x}" != "${DEFAULT_ABI}" ]; then > hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}"; > fi; > done; > hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}"; > if [ -n "${ABI_ALLOW}" ]; then > local ordera=""; > for x in ${order}; > do > if hasq ${x} ${ABI_ALLOW}; then > ordera="${ordera} ${x}"; > fi; > done; > order="${ordera}"; > fi; > else > order="${DEFAULT_ABI}"; > fi; > if [ -z "${order}" ]; then > diefunc "$FUNCNAME" "$LINENO" "$?" "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; > fi; > echo ${order}; > return 0 >} >get_libdir () >{ > local CONF_LIBDIR; > if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then > echo ${CONF_LIBDIR_OVERRIDE}; > else > get_abi_LIBDIR; > fi >} >get_libdir_override () >{ > if has_multilib_profile; then > eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; > exit 1; > fi; > CONF_LIBDIR="$1"; > CONF_LIBDIR_OVERRIDE="$1"; > LIBDIR_default="$1" >} >get_libname () >{ > local ver=$1; > if use userland_Darwin; then > if [ -z ${ver} ]; then > echo ".dylib"; > else > echo ".${ver}.dylib"; > fi; > else > if [ -z ${ver} ]; then > echo ".so"; > else > echo ".so.${ver}"; > fi; > fi >} >get_ml_incdir () >{ > local dir=/usr/include; > if [[ ${#} -gt 0 ]]; then > incdir=${1}; > shift; > fi; > if [[ -z "${MULTILIB_ABIS}" ]]; then > echo ${incdir}; > return 0; > fi; > local abi=${ABI-${DEFAULT_ABI}}; > if [[ ${#} -gt 0 ]]; then > abi=${1}; > shift; > fi; > if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then > echo ${dir}/gentoo-multilib/${abi}; > else > echo ${dir}; > fi >} >get_mount_fstab () >{ > awk '$1 ~ "^#" { next } > $2 == "'$*'" { if (found++ == 0) { print "-t "$3,"-o "$4,$1,$2 } } > END { if (found > 1) { print "More than one entry for '$*' found in /etc/fstab!" > "/dev/stderr" } } > ' /etc/fstab >} >get_multilibdir () >{ > if has_multilib_profile; then > eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; > exit 1; > fi; > echo ${CONF_MULTILIBDIR:=lib32} >} >get_options () >{ > if [ -f "${svcdir}/options/${myservice}/$1" ]; then > echo "$(< ${svcdir}/options/${myservice}/$1)"; > fi; > return 0 >} >has () >{ > if hasq "$@"; then > return 0; > fi; > return 1 >} >has_multilib_profile () >{ > [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] >} >has_version () >{ > if [ "${EBUILD_PHASE}" == "depend" ]; then > echo -n "QA Notice: has_version() in global scope: " 1>&2; > if [ ${ECLASS_DEPTH} -gt 0 ]; then > echo "eclass ${ECLASS}" 1>&2; > else > echo "${CATEGORY}/${PF}" 1>&2; > fi; > fi; > if /usr/lib/portage/bin/portageq 'has_version' "${ROOT}" "$1"; then > return 0; > else > return 1; > fi >} >hasq () >{ > local x; > local me=$1; > shift; > for x in "$@"; > do > if [ "${x}" == "${me}" ]; then > return 0; > fi; > done; > return 1 >} >hasv () >{ > if hasq "$@"; then > echo "${1}"; > return 0; > fi; > return 1 >} >import_addon () >{ > local addon=${svclib}/addons/$1; > if [[ -r ${addon} ]]; then > source "${addon}"; > return 0; > fi; > return 1 >} >inherit () >{ > ECLASS_DEPTH=$(($ECLASS_DEPTH + 1)); > if [[ $ECLASS_DEPTH > 1 ]]; then > debug-print "*** Multiple Inheritence (Level: ${ECLASS_DEPTH})"; > fi; > local location; > local PECLASS; > local B_IUSE; > local B_DEPEND; > local B_RDEPEND; > local B_CDEPEND; > local B_PDEPEND; > while [ "$1" ]; do > location="${ECLASSDIR}/${1}.eclass"; > PECLASS="$ECLASS"; > export ECLASS="$1"; > if [ "$EBUILD_PHASE" != "depend" ]; then > if ! hasq $ECLASS $INHERITED; then > echo; > echo "QA Notice: ECLASS '$ECLASS' inherited illegally in $CATEGORY/$PF" 1>&2; > echo; > 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"; > set -f; > unset B_IUSE B_DEPEND B_RDEPEND B_CDEPEND B_PDEPEND; > [ "${IUSE-unset}" != "unset" ] && B_IUSE="${IUSE}"; > [ "${DEPEND-unset}" != "unset" ] && B_DEPEND="${DEPEND}"; > [ "${RDEPEND-unset}" != "unset" ] && B_RDEPEND="${RDEPEND}"; > [ "${CDEPEND-unset}" != "unset" ] && B_CDEPEND="${CDEPEND}"; > [ "${PDEPEND-unset}" != "unset" ] && B_PDEPEND="${PDEPEND}"; > unset IUSE DEPEND RDEPEND CDEPEND PDEPEND; > set +f; > source "$location" || export ERRORMSG="died sourcing $location in inherit()"; > [ -z "${ERRORMSG}" ] || diefunc "$FUNCNAME" "$LINENO" "$?" "${ERRORMSG}"; > set -f; > [ "${IUSE-unset}" != "unset" ] && export E_IUSE="${E_IUSE} ${IUSE}"; > [ "${DEPEND-unset}" != "unset" ] && export E_DEPEND="${E_DEPEND} ${DEPEND}"; > [ "${RDEPEND-unset}" != "unset" ] && export E_RDEPEND="${E_RDEPEND} ${RDEPEND}"; > [ "${CDEPEND-unset}" != "unset" ] && export E_CDEPEND="${E_CDEPEND} ${CDEPEND}"; > [ "${PDEPEND-unset}" != "unset" ] && export E_PDEPEND="${E_PDEPEND} ${PDEPEND}"; > [ "${B_IUSE-unset}" != "unset" ] && IUSE="${B_IUSE}"; > [ "${B_IUSE-unset}" != "unset" ] || unset IUSE; > [ "${B_DEPEND-unset}" != "unset" ] && DEPEND="${B_DEPEND}"; > [ "${B_DEPEND-unset}" != "unset" ] || unset DEPEND; > [ "${B_RDEPEND-unset}" != "unset" ] && RDEPEND="${B_RDEPEND}"; > [ "${B_RDEPEND-unset}" != "unset" ] || unset RDEPEND; > [ "${B_CDEPEND-unset}" != "unset" ] && CDEPEND="${B_CDEPEND}"; > [ "${B_CDEPEND-unset}" != "unset" ] || unset CDEPEND; > [ "${B_PDEPEND-unset}" != "unset" ] && PDEPEND="${B_PDEPEND}"; > [ "${B_PDEPEND-unset}" != "unset" ] || unset PDEPEND; > set +f; > hasq $1 $INHERITED || export INHERITED="$INHERITED $1"; > export ECLASS="$PECLASS"; > shift; > done; > ECLASS_DEPTH=$(($ECLASS_DEPTH - 1)) >} >insinto () >{ > if [ "$1" == "/" ]; then > export INSDESTTREE=""; > else > export INSDESTTREE=$1; > if [ ! -d "${D}${INSDESTTREE}" ]; then > install -d "${D}${INSDESTTREE}"; > fi; > fi >} >insopts () >{ > INSOPTIONS=""; > for x in $*; > do > if hasq nostrip $FEATURES $RESTRICT && [ "$x" == "-s" ]; then > continue; > else > INSOPTIONS="$INSOPTIONS $x"; > fi; > done; > export INSOPTIONS >} >into () >{ > if [ $1 == "/" ]; then > export DESTTREE=""; > else > export DESTTREE=$1; > if [ ! -d "${D}${DESTTREE}" ]; then > install -d "${D}${DESTTREE}"; > fi; > fi >} >is_final_abi () >{ > has_multilib_profile || return 0; > local ALL_ABIS=$(get_install_abis); > local LAST_ABI=${ALL_ABIS/* /}; > [[ ${LAST_ABI} == ${ABI} ]] >} >is_net_fs () >{ > local fstype; > if [[ -e /proc/mounts ]]; then > fstype=$( sed -n -e '/^rootfs/!s:.* '"$1"' \([^ ]*\).*:\1:p' /proc/mounts ); > else > fstype=$( mount | sed -n -e 's:.* on '"$1"' type \([^ ]*\).*:\1:p' ); > fi; > [[ " ${NET_FS_LIST} " == *" ${fstype} "* ]]; > return $? >} >is_older_than () >{ > local x=; > local ref="$1"; > shift; > for x in "$@"; > do > [[ ${x} -nt ${ref} ]] && return 0; > if [[ -d ${x} ]]; then > is_older_than "${ref}" "${x}"/* && return 0; > fi; > done; > return 1 >} >is_uml_sys () >{ > grep -qs 'UML' /proc/cpuinfo; > return $? >} >is_vserver_sys () >{ > grep -qs '^s_context:[[:space:]]*[1-9]' /proc/self/status; > return $? >} >is_xenU_sys () >{ > [[ -d /proc/xen && ! -f /proc/xen/privcmd ]] >} >keepdir () >{ > dodir "$@"; > local x; > if [ "$1" == "-R" ] || [ "$1" == "-r" ]; then > shift; > find "$@" -type d -printf "${D}/%p/.keep\n" | tr "\n" "\0" | $XARGS -0 -n100 touch || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to recursive create .keep files"; > else > for x in "$@"; > do > touch "${D}/${x}/.keep" || diefunc "$FUNCNAME" "$LINENO" "$?" "Failed to create .keep in ${D}/${x}"; > done; > fi >} >libopts () >{ > LIBOPTIONS=""; > for x in $*; > do > if hasq nostrip $FEATURES $RESTRICT && [ "$x" == "-s" ]; then > continue; > else > LIBOPTIONS="$LIBOPTIONS $x"; > fi; > done; > export LIBOPTIONS >} >make_desktop_entry () >{ > [[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1; > local exec=${1}; > local name=${2:-${PN}}; > local icon=${3:-${PN}.png}; > local type=${4}; > local path=${5}; > if [[ -z ${type} ]]; then > local catmaj=${CATEGORY%%-*}; > local catmin=${CATEGORY##*-}; > case ${catmaj} in > app) > case ${catmin} in > admin) > type=System > ;; > cdr) > type=DiscBurning > ;; > dicts) > type=Dictionary > ;; > editors) > type=TextEditor > ;; > emacs) > type=TextEditor > ;; > emulation) > type=Emulator > ;; > laptop) > type=HardwareSettings > ;; > office) > type=Office > ;; > vim) > type=TextEditor > ;; > xemacs) > type=TextEditor > ;; > *) > type= > ;; > esac > ;; > dev) > type="Development" > ;; > games) > case ${catmin} in > action) > type=ActionGame > ;; > arcade) > type=ArcadeGame > ;; > board) > type=BoardGame > ;; > kid) > type=KidsGame > ;; > emulation) > type=Emulator > ;; > puzzle) > type=LogicGame > ;; > rpg) > type=RolePlaying > ;; > roguelike) > type=RolePlaying > ;; > simulation) > type=Simulation > ;; > sports) > type=SportsGame > ;; > strategy) > type=StrategyGame > ;; > *) > type= > ;; > esac; > type="Game;${type}" > ;; > mail) > type="Network;Email" > ;; > media) > case ${catmin} in > gfx) > type=Graphics > ;; > radio) > type=Tuner > ;; > sound) > type=Audio > ;; > tv) > type=TV > ;; > video) > type=Video > ;; > *) > type= > ;; > esac; > type="AudioVideo;${type}" > ;; > net) > case ${catmin} in > dialup) > type=Dialup > ;; > ftp) > type=FileTransfer > ;; > im) > type=InstantMessaging > ;; > irc) > type=IRCClient > ;; > mail) > type=Email > ;; > news) > type=News > ;; > nntp) > type=News > ;; > p2p) > type=FileTransfer > ;; > *) > type= > ;; > esac; > type="Network;${type}" > ;; > sci) > case ${catmin} in > astro*) > type=Astronomoy > ;; > bio*) > type=Biology > ;; > calc*) > type=Calculator > ;; > chem*) > type=Chemistry > ;; > geo*) > type=Geology > ;; > math*) > type=Math > ;; > *) > type= > ;; > esac; > type="Science;${type}" > ;; > www) > case ${catmin} in > client) > type=WebBrowser > ;; > *) > type= > ;; > esac; > type="Network" > ;; > *) > type= > ;; > esac; > fi; > if [ "${SLOT}" == "0" ]; then > local desktop_name="${PN}"; > else > local desktop_name="${PN}-${SLOT}"; > fi; > local desktop=${T}/${exec%% *}-${desktop_name}.desktop; > echo "[Desktop Entry] >Encoding=UTF-8 >Version=0.9.2 >Name=${name} >Type=Application >Comment=${DESCRIPTION} >Exec=${exec} >Path=${path} >Icon=${icon} >Categories=Application;${type};" >"${desktop}"; > insinto /usr/share/applications; > doins "${desktop}"; > return 0 >} >make_session_desktop () >{ > [[ -z $1 ]] && eerror "make_session_desktop: You must specify the title" && return 1; > [[ -z $2 ]] && eerror "make_session_desktop: You must specify the command" && return 1; > local title=$1; > local command=$2; > local desktop=${T}/${wm}.desktop; > echo "[Desktop Entry] >Encoding=UTF-8 >Name=${title} >Comment=This session logs you into ${title} >Exec=${command} >TryExec=${command} >Type=Application" >"${desktop}"; > 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}" >export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}" >exec ${bin} "\$@" >EOF > > chmod go+rx "${tmpwrapper}"; > if [ -n "${5}" ]; then > exeinto ${5}; > newexe "${tmpwrapper}" "${wrapper}"; > else > newbin "${tmpwrapper}" "${wrapper}"; > fi >} >newcdepend () >{ > debug-print-function newcdepend $*; > do_newdepend CDEPEND $1 >} >newdepend () >{ > debug-print-function newdepend $*; > debug-print "newdepend: E_DEPEND=$E_DEPEND E_RDEPEND=$E_RDEPEND"; > while [ -n "$1" ]; do > case $1 in > "/autotools") > do_newdepend DEPEND sys-devel/autoconf sys-devel/automake sys-devel/make > ;; > "/c") > do_newdepend DEPEND sys-devel/gcc virtual/libc; > do_newdepend RDEPEND virtual/libc > ;; > *) > do_newdepend DEPEND $1 > ;; > esac; > shift; > done >} >newicon () >{ > insinto /usr/share/pixmaps; > newins "$1" "$2" >} >newmenu () >{ > insinto /usr/share/applications; > newins "$1" "$2" >} >newpamd () >{ > [[ $# -ne 2 ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "newpamd requires two arguements"; > use pam || return 0; > INSDESTTREE=/etc/pam.d newins "$1" "$2" || diefunc "$FUNCNAME" "$LINENO" "$?" "failed to install $1 as $2" >} >newpdepend () >{ > debug-print-function newpdepend $*; > do_newdepend PDEPEND $1 >} >newrdepend () >{ > debug-print-function newrdepend $*; > do_newdepend RDEPEND $1 >} >number_abis () >{ > get_install_abis | wc -w >} >pkg_config () >{ > eerror "This ebuild does not have a config function." >} >pkg_nofetch () >{ > [ -z "${SRC_URI}" ] && return; > echo "!!! The following are listed in SRC_URI for ${PN}:"; > for MYFILE in `echo ${SRC_URI}`; > do > echo "!!! $MYFILE"; > done >} >pkg_postinst () >{ > return >} >pkg_postrm () >{ > return >} >pkg_preinst () >{ > return >} >pkg_prerm () >{ > return >} >pkg_setup () >{ > return >} >portageq () >{ > if [ "${EBUILD_PHASE}" == "depend" ]; then > echo -n "QA Notice: portageq in global scope: " 1>&2; > if [ ${ECLASS_DEPTH} -gt 0 ]; then > echo "eclass ${ECLASS}" 1>&2; > else > echo "${CATEGORY}/${PF}" 1>&2; > fi; > fi; > /usr/lib/portage/bin/portageq "$@" >} >prep_ml_includes () >{ > if [ $(number_abis) -gt 1 ]; then > local dir; > local dirs; > local base; > if [ ${#} -eq 0 ]; then > dirs="/usr/include"; > else > dirs="${@}"; > fi; > for dir in ${dirs}; > do > base=${T}/gentoo-multilib/${dir}/gentoo-multilib; > mkdir -p ${base}; > [ -d ${base}/${ABI} ] && rm -rf ${base}/${ABI}; > mv ${D}/${dir} ${base}/${ABI}; > done; > if is_final_abi; then > base=${T}/gentoo-multilib; > pushd ${base}; > find . | tar -c -T - -f - | tar -x --no-same-owner -f - -C ${D}; > popd; > for dir in ${dirs}; > do > local args=${dir}; > local abi; > for abi in $(get_install_abis); > do > args="${args} $(get_abi_CDEFINE ${abi}):${dir}/gentoo-multilib/${abi}"; > done; > create_ml_includes ${args}; > done; > fi; > fi >} >preserve_old_lib () >{ > LIB=$1; > if [ -n "${LIB}" -a -f "${ROOT}${LIB}" ]; then > SONAME=`basename ${LIB}`; > DIRNAME=`dirname ${LIB}`; > dodir ${DIRNAME}; > cp ${ROOT}${LIB} ${D}${DIRNAME}; > touch ${D}${LIB}; > fi >} >preserve_old_lib_notify () >{ > LIB=$1; > if [ -n "${LIB}" -a -f "${ROOT}${LIB}" ]; then > SONAME=`basename ${LIB}`; > ewarn "An old version of an installed library was detected on your system."; > ewarn "In order to avoid breaking packages that link against it, this older version"; > ewarn "is not being removed. In order to make full use of this newer version,"; > ewarn "you will need to execute the following command:"; > ewarn " revdep-rebuild --soname ${SONAME}"; > ewarn; > ewarn "After doing that, you can safely remove ${LIB}"; > ewarn "Note: 'emerge gentoolkit' to get revdep-rebuild"; > fi >} >profiling () >{ > return 0 >} >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}" >} >reverse_list () >{ > for ((i = $# ; i > 0 ; --i )) > do > echo -n "${!i} "; > done >} >save_options () >{ > local myopts="$1"; > shift; > if [ ! -d "${svcdir}/options/${myservice}" ]; then > mkdir -p -m 0755 "${svcdir}/options/${myservice}"; > fi; > echo "$*" >"${svcdir}/options/${myservice}/${myopts}"; > return 0 >} >set_arch_to_kernel () >{ > i=10; > while ((i--)); do > ewarn "PLEASE UPDATE TO YOUR PACKAGE TO USE linux-info.eclass"; > done; > export EUTILS_ECLASS_PORTAGE_ARCH="${ARCH}"; > case ${ARCH} in > x86) > export ARCH="i386" > ;; > amd64) > export ARCH="x86_64" > ;; > hppa) > export ARCH="parisc" > ;; > mips) > export ARCH="mips" > ;; > sparc) > export ARCH="$(tc-arch-kernel)" > ;; > *) > export ARCH="${ARCH}" > ;; > esac >} >set_arch_to_portage () >{ > i=10; > while ((i--)); do > ewarn "PLEASE UPDATE TO YOUR PACKAGE TO USE linux-info.eclass"; > done; > export ARCH="${EUTILS_ECLASS_PORTAGE_ARCH}" >} >setup_defaultlevels () >{ > get_bootconfig; > if get_bootparam "noconfigprofile"; then > export RC_USE_CONFIG_PROFILE="no"; > else > if get_bootparam "configprofile"; then > export RC_USE_CONFIG_PROFILE="yes"; > fi; > fi; > if [ "${RC_USE_CONFIG_PROFILE}" = "yes" -a -n "${DEFAULTLEVEL}" ] && [ -d "/etc/runlevels/${BOOTLEVEL}.${DEFAULTLEVEL}" -o -L "/etc/runlevels/${BOOTLEVEL}.${DEFAULTLEVEL}" ]; then > export BOOTLEVEL="${BOOTLEVEL}.${DEFAULTLEVEL}"; > fi; > if [ -z "${SOFTLEVEL}" ]; then > if [ -f "${svcdir}/softlevel" ]; then > export SOFTLEVEL="$(< ${svcdir}/softlevel)"; > else > export SOFTLEVEL="${BOOTLEVEL}"; > fi; > fi; > return 0 >} >splash () >{ > return 0 >} >src_compile () >{ > local mycfgtk="cli"; > use gtk && mycfgtk="gtk"; > local myplat=""; > if use sdl; then > myplat="SDL"; > else > if use opengl; then > myplat="GLX"; > else > myplat="gtk"; > fi; > fi; > econf --with-cfgtk=${mycfgtk} --with-platform=${myplat} $(use_enable devil) $(use_enable cg) $(use_enable openexr) $(use_enable threads threading) $(use_enable double-precision double) $(use_enable sdl sdltest) || diefunc "$FUNCNAME" "$LINENO" "$?"; > emake || diefunc "$FUNCNAME" "$LINENO" "$?" "emake failed" >} >src_install () >{ > make DESTDIR="${D}" install || diefunc "$FUNCNAME" "$LINENO" "$?" "make install failed"; > insinto /usr/share/OGRE/Media; > doins Samples/Media/*; > if use doc; then > dohtml -r Docs/* Docs/Tutorials/*; > insinto /usr/share/doc/${PF}/Samples; > doins -r Samples/*; > fi; > dodoc AUTHORS BUGS LINUX.DEV README Docs/README.linux; > dohtml Docs/*.html >} >src_test () >{ > addpredict /; > if make check -n >&/dev/null; then > echo ">>> Test phase [check]: ${CATEGORY}/${PF}"; > if ! make check; then > hasq test $FEATURES && diefunc "$FUNCNAME" "$LINENO" "$?" "Make check failed. See above for details."; > hasq test $FEATURES || eerror "Make check failed. See above for details."; > fi; > else > if make test -n >&/dev/null; then > echo ">>> Test phase [test]: ${CATEGORY}/${PF}"; > if ! make test; then > hasq test $FEATURES && diefunc "$FUNCNAME" "$LINENO" "$?" "Make test failed. See above for details."; > hasq test $FEATURES || eerror "Make test failed. See above for details."; > fi; > else > echo ">>> Test phase [none]: ${CATEGORY}/${PF}"; > fi; > fi; > SANDBOX_PREDICT="${SANDBOX_PREDICT%:/}" >} >src_unpack () >{ > unpack ${A}; > cd "${S}"; > [[ $(grep ^VERSION= ltmain.sh) != "VERSION=1.4.3" ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "TIME TO UPGRADE ! :D"; > sed -i 's:libtoolize:libtoolize --copy:' bootstrap; > ./bootstrap || diefunc "$FUNCNAME" "$LINENO" "$?" "bootstrap failed"; > sed -i -e 's:-fno-rtti::g' configure || diefunc "$FUNCNAME" "$LINENO" "$?" "sed CFLAGS" >} >start_addon () >{ > local addon=$1; > ( import_addon ${addon}-start.sh ); > return 0 >} >start_volumes () >{ > local x=; > for x in ${RC_VOLUME_ORDER}; > do > start_addon "${x}"; > done; > return 0 >} >stop_addon () >{ > local addon=$1; > ( import_addon ${addon}-stop.sh ); > return 0 >} >stop_volumes () >{ > local x=; > for x in $(reverse_list ${RC_VOLUME_ORDER}); > do > stop_addon "${x}"; > done; > return 0 >} >strip-linguas () >{ > local ls newls; > if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then > local op=$1; > shift; > ls=" $(find "$1" -name '*.po' -printf '%f ') "; > shift; > local d f; > for d in "$@"; > do > if [[ ${op} == "-u" ]]; then > newls=${ls}; > else > newls=""; > fi; > for f in $(find "$d" -name '*.po' -printf '%f '); > do > if [[ ${op} == "-i" ]]; then > [[ ${ls/ ${f} /} != ${ls} ]] && newls="${newls} ${f}"; > else > [[ ${ls/ ${f} /} == ${ls} ]] && newls="${newls} ${f}"; > fi; > done; > ls=${newls}; > done; > ls=${ls//.po}; > else > ls=$@; > fi; > ls=" ${ls} "; > newls=""; > for f in ${LINGUAS}; > do > if [[ ${ls/ ${f} /} != ${ls} ]]; then > newls="${newls} ${f}"; > else > ewarn "Sorry, but ${PN} does not support the ${f} LINGUA"; > fi; > done; > if [[ -z ${newls} ]]; then > export LINGUAS=""; > else > export LINGUAS=${newls:1}; > fi >} >strip_duplicate_slashes () >{ > if [ -n "${1}" ]; then > local removed="${1/\/\///}"; > [ "${removed}" != "${removed/\/\///}" ] && removed=$(strip_duplicate_slashes "${removed}"); > echo ${removed}; > fi >} >unpack () >{ > local x; > local y; > local myfail; > local tarvars; > if [ "$USERLAND" == "BSD" ]; then > tarvars=""; > else > tarvars="--no-same-owner"; > fi; > [ -z "$*" ] && diefunc "$FUNCNAME" "$LINENO" "$?" "Nothing passed to the 'unpack' command"; > for x in "$@"; > do > myfail="failure unpacking ${x}"; > echo ">>> Unpacking ${x} to $(pwd)"; > y="${x%.*}"; > y="${y##*.}"; > case "${x##*.}" in > tar) > tar xf "${DISTDIR}/${x}" ${tarvars} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" > ;; > tgz) > tar xzf "${DISTDIR}/${x}" ${tarvars} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" > ;; > tbz2) > bzip2 -dc "${DISTDIR}/${x}" | tar xf - ${tarvars} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" > ;; > ZIP | zip) > unzip -qo "${DISTDIR}/${x}" || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail" > ;; > gz | Z | z) > if [ "${y}" == "tar" ]; then > tar xzf "${DISTDIR}/${x}" ${tarvars} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; > else > gzip -dc "${DISTDIR}/${x}" >${x%.*} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; > fi > ;; > bz2) > if [ "${y}" == "tar" ]; then > bzip2 -dc "${DISTDIR}/${x}" | tar xf - ${tarvars} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; > else > bzip2 -dc "${DISTDIR}/${x}" >${x%.*} || diefunc "$FUNCNAME" "$LINENO" "$?" "$myfail"; > fi > ;; > *) > echo "unpack ${x}: file format not recognized. Ignoring." > ;; > esac; > done >} >unpack_makeself () >{ > local src=$(find_unpackable_file "$1"); > local skip=$2; > local exe=$3; > [[ -z ${src} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Could not locate source for '$1'"; > local shrtsrc=$(basename "${src}"); > echo ">>> Unpacking ${shrtsrc} to ${PWD}"; > if [ -z "${skip}" ]; then > local ver="`grep -a '#.*Makeself' ${src} | awk '{print $NF}'`"; > local skip=0; > exe=tail; > case ${ver} in > 1.5.*) > skip=$(grep -a ^skip= "${src}" | cut -d= -f2) > ;; > 2.0 | 2.0.1) > skip=$(grep -a ^' 'tail "${src}" | awk '{print $2}' | cut -b2-) > ;; > 2.1.1) > skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-); > let skip="skip + 1" > ;; > 2.1.2) > skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1); > let skip="skip + 1" > ;; > 2.1.3) > skip=`grep -a ^offset= "${src}" | awk '{print $3}'`; > let skip="skip + 1" > ;; > 2.1.4) > skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1); > skip=$(head -n ${skip} "${src}" | wc -c); > exe="dd" > ;; > *) > eerror "I'm sorry, but I was unable to support the Makeself file."; > eerror "The version I detected was '${ver}'."; > eerror "Please file a bug about the file ${shrtsrc} at"; > eerror "http://bugs.gentoo.org/ so that support can be added."; > diefunc "$FUNCNAME" "$LINENO" "$?" "makeself version '${ver}' not supported" > ;; > esac; > debug-print "Detected Makeself version ${ver} ... using ${skip} as offset"; > fi; > case ${exe} in > tail) > exe="tail -n +${skip} '${src}'" > ;; > dd) > exe="dd ibs=${skip} skip=1 obs=1024 conv=sync if='${src}'" > ;; > *) > diefunc "$FUNCNAME" "$LINENO" "$?" "makeself cant handle exe '${exe}'" > ;; > esac; > local tmpfile="$(emktemp)"; > eval ${exe} 2>/dev/null | head -c 512 >"${tmpfile}"; > local filetype="$(file -b "${tmpfile}")"; > case ${filetype} in > *tar\ archive) > eval ${exe} | tar --no-same-owner -xf - > ;; > bzip2*) > eval ${exe} | bzip2 -dc | tar --no-same-owner -xf - > ;; > gzip*) > eval ${exe} | tar --no-same-owner -xzf - > ;; > compress*) > eval ${exe} | gunzip | tar --no-same-owner -xf - > ;; > *) > eerror "Unknown filetype \"${filetype}\" ?"; > false > ;; > esac; > _pipestatus="${PIPESTATUS[*]}"; > [[ "${_pipestatus// /}" -eq 0 ]] || diefunc "$FUNCNAME" "$LINENO" "$_pipestatus" "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})" >} >unpack_pdv () >{ > local src=$(find_unpackable_file $1); > local sizeoff_t=$2; > [[ -z ${src} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "Could not locate source for '$1'"; > [[ -z ${sizeoff_t} ]] && diefunc "$FUNCNAME" "$LINENO" "$?" "No idea what off_t size was used for this pdv :("; > local shrtsrc="`basename ${src}`"; > echo ">>> Unpacking ${shrtsrc} to ${PWD}"; > local metaskip=`tail -c ${sizeoff_t} ${src} | hexdump -e \"%i\"`; > local tailskip=`tail -c $((${sizeoff_t}*2)) ${src} | head -c ${sizeoff_t} | hexdump -e \"%i\"`; > local metafile="$(emktemp)"; > tail -c +$((${metaskip}+1)) ${src} >${metafile}; > local datafile="`tail -c +$((${metaskip}+1)) ${src} | strings | head -n 1`"; > datafile="`basename ${datafile}`"; > local tmpfile="$(emktemp)"; > tail -c +$((${tailskip}+1)) ${src} 2>/dev/null | head -c 512 >${tmpfile}; > local iscompressed="`file -b ${tmpfile}`"; > if [ "${iscompressed:0:8}" == "compress" ]; then > iscompressed=1; > mv ${tmpfile}{,.Z}; > gunzip ${tmpfile}; > else > iscompressed=0; > fi; > local istar="`file -b ${tmpfile}`"; > if [ "${istar:0:9}" == "POSIX tar" ]; then > istar=1; > else > istar=0; > fi; > if [ ${iscompressed} -eq 1 ]; then > if [ ${istar} -eq 1 ]; then > tail -c +$((${tailskip}+1)) ${src} 2>/dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -; > else > tail -c +$((${tailskip}+1)) ${src} 2>/dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc >${datafile}; > fi; > else > if [ ${istar} -eq 1 ]; then > tail -c +$((${tailskip}+1)) ${src} 2>/dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -; > else > tail -c +$((${tailskip}+1)) ${src} 2>/dev/null | head -c $((${metaskip}-${tailskip})) >${datafile}; > fi; > fi; > true >} >use () >{ > if useq ${1}; then > return 0; > fi; > return 1 >} >use_enable () >{ > if [ -z "$1" ]; then > echo "!!! use_enable() called without a parameter." 1>&2; > echo "!!! use_enable <USEFLAG> [<flagname> [value]]" 1>&2; > return 1; > fi; > local UE_SUFFIX=""; > if [ ! -z "${3}" ]; then > UE_SUFFIX="=${3}"; > fi; > local UWORD="$2"; > if [ -z "${UWORD}" ]; then > UWORD="$1"; > fi; > if useq $1; then > echo "--enable-${UWORD}${UE_SUFFIX}"; > else > echo "--disable-${UWORD}"; > fi; > return 0 >} >use_with () >{ > if [ -z "$1" ]; then > echo "!!! use_with() called without a parameter." 1>&2; > echo "!!! use_with <USEFLAG> [<flagname> [value]]" 1>&2; > return 1; > fi; > local UW_SUFFIX=""; > if [ ! -z "${3}" ]; then > UW_SUFFIX="=${3}"; > fi; > local UWORD="$2"; > if [ -z "${UWORD}" ]; then > UWORD="$1"; > fi; > if useq $1; then > echo "--with-${UWORD}${UW_SUFFIX}"; > else > echo "--without-${UWORD}"; > fi; > return 0 >} >useq () >{ > local u="${1}"; > local neg=0; > if [ "${u:0:1}" == "!" ]; then > u="${u:1}"; > neg=1; > fi; > local x; > if ! hasq "${u}" ${IUSE} ${E_IUSE} && ! hasq "${u}" ${PORTAGE_ARCHLIST} selinux; then > echo "QA Notice: USE Flag '${u}' not in IUSE for ${CATEGORY}/${PF}" 1>&2; > fi; > for x in ${USE}; > do > if [ "${x}" == "${u}" ]; then > if [ ${neg} -eq 1 ]; then > return 1; > else > return 0; > fi; > fi; > done; > if [ ${neg} -eq 1 ]; then > return 0; > else > return 1; > fi >} >usev () >{ > if useq ${1}; then > echo "${1}"; > return 0; > fi; > return 1 >} >vebegin () >{ > [[ "${RC_VERBOSE}" != yes ]] || ebegin "$@" >} >veend () >{ > [[ "${RC_VERBOSE}" == yes ]] && { > ewend "$@"; > return $? > }; > return ${1:-0} >} >veerror () >{ > [[ "${RC_VERBOSE}" != yes ]] || eerror "$@" >} >veinfo () >{ > [[ "${RC_VERBOSE}" != yes ]] || einfo "$@" >} >veinfon () >{ > [[ "${RC_VERBOSE}" != yes ]] || einfon "$@" >} >vewarn () >{ > [[ "${RC_VERBOSE}" != yes ]] || ewarn "$@" >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 105394
:
68038
| 68039 |
68040
|
68042
|
68043
|
68044
|
68052