Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 368232 Details for
Bug 498670
Error emerging dev-libs/cyrus-sasl-2.1.26-r3
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
env
environment (text/plain), 184.30 KB, created by
Vieri
on 2014-01-20 11:17:23 UTC
(
hide
)
Description:
env
Filename:
MIME Type:
Creator:
Vieri
Created:
2014-01-20 11:17:23 UTC
Size:
184.30 KB
patch
obsolete
>declare -a ALL_AUTOTOOLS_MACROS='([0]="AC_PROG_LIBTOOL" [1]="AM_PROG_LIBTOOL" [2]="LT_INIT" [3]="AC_CONFIG_HEADERS" [4]="AC_CONFIG_HEADER" [5]="AM_CONFIG_HEADERS" [6]="AM_CONFIG_HEADER" [7]="AC_CONFIG_SUBDIRS" [8]="AC_CONFIG_AUX_DIR" [9]="AC_CONFIG_MACRO_DIR" [10]="AM_INIT_AUTOMAKE" [11]="AM_GLIB_GNU_GETTEXT" [12]="AM_GNU_GETTEXT_VERSION" [13]="AC_PROG_INTLTOOL" [14]="IT_PROG_INTLTOOL" [15]="GTK_DOC_CHECK" [16]="GNOME_DOC_INIT")' >declare -x ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" >declare -x APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" >declare -x ARCH="x86" >declare -- AT_M4DIR="" >declare -- AT_SYS_M4DIR="" >declare -- AUTOTOOLS_AUTO_DEPEND="yes" >declare -- AUTOTOOLS_DEPEND="!<sys-devel/gettext-0.18.1.1-r3 > =sys-devel/automake-1.12* > >=sys-devel/autoconf-2.68 > sys-devel/libtool" >declare -x BOOTSTRAP_USE="cxx unicode python_targets_python3_2 python_targets_python2_7 -python_targets_python3_2 python_targets_python3_3 hardened pax_kernel pic -jit -orc" >declare -x CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" >declare -x CAMERAS="ptp2" >declare -x CBUILD="i686-pc-linux-gnu" >declare -x CFLAGS="-O2 -march=i686 -pipe -fno-strict-aliasing" >declare -x CFLAGS_default >declare -x CHOST="i686-pc-linux-gnu" >declare -x CHOST_default="i686-pc-linux-gnu" >declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" >declare -x CPPFLAGS=" -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED" >declare -x CTARGET_default="i686-pc-linux-gnu" >declare -x CXXFLAGS="-O2 -march=i686 -pipe -fno-strict-aliasing" >declare -x DEBUGBUILD="1" >declare -x DEFAULT_ABI="default" >declare -x DEFINED_PHASES=" compile configure install postinst preinst prepare setup" >declare DEPEND="net-mail/mailbase > authdaemond? ( || ( net-mail/courier-imap mail-mta/courier ) ) > berkdb? ( >=sys-libs/db-3.2 ) > gdbm? ( >=sys-libs/gdbm-1.8.0 ) > kerberos? ( virtual/krb5 ) > openldap? ( net-nds/openldap ) > mysql? ( virtual/mysql ) > pam? ( virtual/pam ) > postgres? ( dev-db/postgresql-base ) > sqlite? ( dev-db/sqlite:3 ) > ssl? ( dev-libs/openssl ) > java? ( >=virtual/jdk-1.4 ) !<sys-devel/gettext-0.18.1.1-r3 > =sys-devel/automake-1.12* > >=sys-devel/autoconf-2.68 > sys-devel/libtool java? ( >=dev-java/java-config-2.1.9-r1 ) virtual/pkgconfig" >declare DESCRIPTION="The Cyrus SASL (Simple Authentication and Security Layer)." >declare -x DESTTREE="/usr" >declare -x DIROPTIONS="-m0755" >declare -x EAPI="5" >declare -- EBUILD_DEATH_HOOKS=" java-pkg_die " >declare -- ECLASSDIR_LOCAL="/usr/portage/eclass" >declare -- ECONF_SOURCE="." >declare -x ELIBC="glibc" >declare -x ELT_APPLIED_PATCHES=" portage/1.2.0 sed/1.5.6 as-needed/2.4.2 uclibc-ltconf/1.3.0" >declare -- EPATCH_COMMON_OPTS="-g0 -E --no-backup-if-mismatch" >declare -- EPATCH_EXCLUDE="" >declare -- EPATCH_FORCE="no" >declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..." >declare -- EPATCH_OPTS="" >declare -- EPATCH_SINGLE_MSG="" >declare -- EPATCH_SOURCE="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/work/patch" >declare -- EPATCH_SUFFIX="patch.bz2" >declare -x EXEOPTIONS="-m0755" >declare -x FCFLAGS="-march=i686 -O2 -pipe -fno-strict-aliasing" >declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" >declare -x FFLAGS="-march=i686 -O2 -pipe -fno-strict-aliasing" >declare -x GCC_SPECS="" >declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" >declare -x GRUB_PLATFORMS="" >declare HDEPEND="" >declare HOMEPAGE="http://cyrusimap.web.cmu.edu/" >declare -x INHERITED=" multilib toolchain-funcs eutils flag-o-matic libtool multiprocessing autotools pam versionator java-utils-2 java-pkg-opt-2 db-use systemd" >declare -x INPUT_DEVICES="keyboard mouse evdev" >declare -x INSDESTTREE="" >declare -x INSOPTIONS="-m0644" >declare IUSE="authdaemond berkdb gdbm kerberos ldapdb openldap mysql pam postgres sample sqlite >srp ssl static-libs urandom elibc_FreeBSD java" >declare -x IUSE_EFFECTIVE="alpha amd64 amd64-fbsd amd64-linux arm arm-linux authdaemond berkdb elibc_AIX elibc_Cygwin elibc_Darwin elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_glibc elibc_mintlib elibc_musl elibc_uclibc gdbm hppa hppa-hpux ia64 ia64-hpux ia64-linux java kerberos kernel_AIX kernel_Cygwin kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_Interix kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux ldapdb m68k m68k-mint mips mysql openldap pam postgres ppc ppc-aix ppc-macos ppc-openbsd ppc64 ppc64-linux prefix s390 sample sh sparc sparc-fbsd sparc-solaris sparc64-freebsd sparc64-solaris sqlite srp ssl static-libs urandom userland_BSD userland_GNU x64-freebsd x64-macos x64-openbsd x64-solaris x86 x86-cygwin x86-fbsd x86-freebsd x86-interix x86-linux x86-macos x86-netbsd x86-openbsd x86-solaris x86-winnt" >declare -x IUSE_IMPLICIT="prefix" >declare -- JAVA_PKG_ALLOW_VM_CHANGE="yes" >declare -- JAVA_PKG_BUILD_DEPEND_FILE="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/temp/java-pkg-build-depend" >declare -- JAVA_PKG_COMPILERS_CONF="/etc/java-config-2/build/compilers.conf" >declare -- JAVA_PKG_COMPILER_DIR="/usr/share/java-config-2/compiler" >declare -- JAVA_PKG_DEPEND_FILE="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/temp/java-pkg-depend" >declare -- JAVA_PKG_EXTRA_ENV="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/temp/java-pkg-extra-env" >declare -- JAVA_PKG_EXTRA_ENV_VARS="" >declare -- JAVA_PKG_E_DEPEND=">=dev-java/java-config-2.1.9-r1 " >declare -- JAVA_PKG_OPTIONAL_DEPEND_FILE="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/temp/java-pkg-optional-depend" >declare -- JAVA_PKG_OPT_USE="java" >declare -- JAVA_PKG_QA_VIOLATIONS="0" >declare -x KERNEL="linux" >declare -x KERNEL_ABI="default" >declare -x KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd" >declare -x LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" >declare -x LC_MESSAGES="C" >declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" >declare -x LDFLAGS_default >declare -x LIBDIR_default="lib" >declare -x LIBOPTIONS="-m0644" >declare -x LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" >declare -x LICENSE="BSD-with-attribution" >declare -x LINGUAS="es_ES es" >declare -x MAIL="/var/mail/root" >declare -x MAKEOPTS="-j5" >declare -x MISDN_CARDS="hfcmulti" >declare -x MULTILIB_ABIS="default" >declare -x MULTIOSDIRS="../lib" >declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" >declare -x OFFICE_IMPLEMENTATION="libreoffice" >declare -x PATH="/usr/lib/portage/bin/ebuild-helpers/xattr:/usr/lib/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.7.3" >declare PDEPEND="" >declare -x PHP_TARGETS="php5-5" >declare -a PORTAGE_DOCOMPRESS='([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")' >declare -a PORTAGE_DOCOMPRESS_SKIP='([0]="/usr/share/doc/cyrus-sasl-2.1.26-r3/html")' >declare -x PORTAGE_NICENESS="10" >declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND" >declare -x PROPERTIES="" >declare -x PROVIDE="" >declare -x PYTHONDONTWRITEBYTECODE="1" >declare -x PYTHON_SINGLE_TARGET="python2_7" >declare -x PYTHON_TARGETS="python2_7 python3_2" >declare RDEPEND="net-mail/mailbase > authdaemond? ( || ( net-mail/courier-imap mail-mta/courier ) ) > berkdb? ( >=sys-libs/db-3.2 ) > gdbm? ( >=sys-libs/gdbm-1.8.0 ) > kerberos? ( virtual/krb5 ) > openldap? ( net-nds/openldap ) > mysql? ( virtual/mysql ) > pam? ( virtual/pam ) > postgres? ( dev-db/postgresql-base ) > sqlite? ( dev-db/sqlite:3 ) > ssl? ( dev-libs/openssl ) > java? ( >=virtual/jdk-1.4 ) java? ( >=dev-java/java-config-2.1.9-r1 )" >declare REPOSITORY >declare REQUIRED_USE="" >declare -x RESTRICT="" >declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" >declare -x RUBYOPT="-rauto_gem" >declare -x RUBY_TARGETS="ruby19 ruby18" >declare -x S="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/work/cyrus-sasl-2.1.26" >declare -x SANDBOX_DEBUG="0" >declare -x SANDBOX_DENY="" >declare -x SANDBOX_PID="11462" >declare -x SANDBOX_PREDICT="/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/homedir:/dev/crypto" >declare -x SANDBOX_READ="/:/var/tmp" >declare -x SANDBOX_VERBOSE="1" >declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp:/var/tmp/:/var/tmp/portage/dev-libs/cyrus-sasl-2.1.26-r3/homedir/.bash_history" >declare -- SASLAUTHD_CONF_VER="2.1.26" >declare -x SHELL="/bin/bash" >declare -x SLOT="2" >declare SRC_URI="ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz" >declare -x SSH_CLIENT="10.215.144.48 58786 22" >declare -x SSH_CONNECTION="10.215.144.48 58786 10.215.144.168 22" >declare -x SSH_TTY="/dev/pts/0" >declare -x USE="elibc_glibc gdbm kerberos kernel_linux pam ssl urandom userland_GNU x86" >declare -x USERLAND="GNU" >declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND" >declare -x USE_EXPAND_UNPREFIXED="ARCH" >declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux hppa hppa-hpux ia64 ia64-hpux ia64-linux m68k m68k-mint mips ppc ppc64 ppc64-linux ppc-aix ppc-macos ppc-openbsd s390 sh sparc sparc64-freebsd sparc64-solaris sparc-fbsd sparc-solaris x64-freebsd x64-macos x64-openbsd x64-solaris x86 x86-cygwin x86-fbsd x86-freebsd x86-interix x86-linux x86-macos x86-netbsd x86-openbsd x86-solaris x86-winnt" >declare -x USE_EXPAND_VALUES_ELIBC="AIX Cygwin Darwin FreeBSD glibc HPUX Interix mintlib musl NetBSD OpenBSD SunOS uclibc Winnt" >declare -x USE_EXPAND_VALUES_KERNEL="AIX Cygwin Darwin FreeBSD freemint HPUX Interix linux NetBSD OpenBSD SunOS Winnt" >declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU" >declare -x VIDEO_CARDS="apm ark chips cirrus cyrix dummy fbdev glint i128 i740 intel mach64 mga nsc nv r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa via vmware voodoo" >declare -x WANT_AUTOCONF="2.5" >declare -x WANT_AUTOMAKE="1.12" >declare -x WANT_JAVA_CONFIG="2" >declare -x WANT_LIBTOOL="latest" >declare -x XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" >declare -x _E_DOCDESTTREE_="" >declare -x _E_EXEDESTTREE_="" >declare -a _LATEST_AUTOMAKE='([0]="1.13:1.13" [1]="1.14:1.14")' >declare -- __ELT_NOTED_TMP="true" >declare -- ___ECLASS_ONCE_AUTOTOOLS="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_EUTILS="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_FLAG_O_MATIC="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_LIBTOOL="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_MULTILIB="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_MULTIPROCESSING="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_PAM="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_TOOLCHAIN_FUNCS="recur -_+^+_- spank" >declare -- ___ECLASS_ONCE_VERSIONATOR="recur -_+^+_- spank" >declare -- _libtool_atom="sys-devel/libtool" >declare -- mj_max_jobs="5" >declare -- mj_num_jobs="0" >declare -- mj_read_fd="11" >declare -- mj_write_fd="10" >declare -- phase_func >ELT_libtool_version () >{ > ( unset VERSION; > eval $(grep -e '^[[:space:]]*VERSION=' "$1"); > echo "${VERSION:-0}" ) >} >ELT_try_and_apply_patch () >{ > local ret=0; > local file=$1; > local patch=$2; > local src=$3; > local disp="${src} patch"; > local log="${T}/elibtool.log"; > if [[ -z ${__ELT_NOTED_TMP} ]]; then > __ELT_NOTED_TMP=true; > printf 'temp patch: %s\n' "${patch}" > "${log}"; > fi; > printf '\nTrying %s\n' "${disp}" >> "${log}"; > if [[ ! -e ${file} ]]; then > echo "File not found: ${file}" >> "${log}"; > return 1; > fi; > local perms="$(find ${file} -maxdepth 0 -printf '%m')"; > if patch -p0 --dry-run "${file}" "${patch}" >> "${log}" 2>&1; then > einfo " Applying ${disp} ..."; > patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" >> "${log}" 2>&1; > ret=$?; > export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${src}"; > else > ret=1; > fi; > chmod "${perms}" "${file}"; > return "${ret}" >} >ELT_walk_patches () >{ > local patch tmp; > local ret=1; > local file=$1; > local patch_set=$2; > local patch_dir="$(elt_patch_dir)/${patch_set}"; > local rem_int_dep=$3; > [[ -z ${patch_set} ]] && return 1; > [[ ! -d ${patch_dir} ]] && return 1; > local sed_args=(-e "s:@GENTOO_LIBDIR@:$(get_libdir):g"); > if [[ -n ${rem_int_dep} ]]; then > sed_args+=(-e "s|@REM_INT_DEP@|${rem_int_dep}|g"); > fi; > pushd "$(elt_patch_dir)" > /dev/null || die; > for patch in $(find "${patch_set}" -maxdepth 1 -type f | LC_ALL=C sort -r); > do > tmp="${T}/libtool-elt.patch"; > sed "${sed_args[@]}" "${patch}" > "${tmp}" || die; > if ELT_try_and_apply_patch "${file}" "${tmp}" "${patch}"; then > ret=0; > break; > fi; > done; > popd > /dev/null; > return ${ret} >} >VER_major () >{ > [[ -z $1 ]] && return 1; > local VER=$@; > echo "${VER%%[^[:digit:]]*}" >} >VER_micro () >{ > [[ -z $1 ]] && return 1; > local VER=$@; > VER=${VER#*.*.}; > echo "${VER%%[^[:digit:]]*}" >} >VER_minor () >{ > [[ -z $1 ]] && return 1; > local VER=$@; > VER=${VER#*.}; > echo "${VER%%[^[:digit:]]*}" >} >VER_to_int () >{ > [[ -z $1 ]] && return 1; > local VER_MAJOR=$(VER_major "$1"); > local VER_MINOR=$(VER_minor "$1"); > local VER_MICRO=$(VER_micro "$1"); > local VER_int=$(( VER_MAJOR * 65536 + VER_MINOR * 256 + VER_MICRO )); > if [[ ${VER_int} -ge 65536 ]]; then > echo "${VER_int}"; > return 0; > fi; > echo 1; > return 1 >} >_at_uses_autoheader () >{ > _at_uses_pkg A{C,M}_CONFIG_HEADER{S,} >} >_at_uses_automake () >{ > _at_uses_pkg AM_INIT_AUTOMAKE >} >_at_uses_gettext () >{ > _at_uses_pkg AM_GNU_GETTEXT_VERSION >} >_at_uses_glibgettext () >{ > _at_uses_pkg AM_GLIB_GNU_GETTEXT >} >_at_uses_gnomedoc () >{ > _at_uses_pkg GNOME_DOC_INIT >} >_at_uses_gtkdoc () >{ > _at_uses_pkg GTK_DOC_CHECK >} >_at_uses_intltool () >{ > _at_uses_pkg {AC,IT}_PROG_INTLTOOL >} >_at_uses_libtool () >{ > _at_uses_pkg A{C,M}_PROG_LIBTOOL LT_INIT >} >_at_uses_pkg () >{ > if [[ -n $(autotools_check_macro "$@") ]]; then > return 0; > else > local macro args=(); > for macro in "$@"; > do > args+=(-e "^[[:space:]]*${macro}\>"); > done; > egrep -q "${args[@]}" configure.??; > fi >} >_autotools_m4dir_include () >{ > local x include_opts flag; > [[ ${WANT_AUTOCONF} == "2.1" ]] && flag="l" || flag="I"; > for x in "$@"; > do > case ${x} in > -${flag}) > > ;; > *) > [[ ! -d ${x} ]] && ewarn "autotools.eclass: '${x}' does not exist"; > include_opts+=" -${flag} ${x}" > ;; > esac; > done; > echo ${include_opts} >} >_elibtoolize () >{ > local LIBTOOLIZE=${LIBTOOLIZE:-$(type -P glibtoolize > /dev/null && echo glibtoolize || echo libtoolize)}; > [[ -f GNUmakefile.am || -f Makefile.am ]] && set -- "$@" --automake; > if [[ $1 == "--install" ]]; then > ${LIBTOOLIZE} -n --install &>/dev/null || shift; > fi; > autotools_run_tool ${LIBTOOLIZE} "$@" ${opts} >} >_epatch_draw_line () >{ > [[ -z $1 ]] && set "$(printf "%65s" '')"; > echo "${1//?/=}" >} >_eutils_eprefix_init () >{ > has "${EAPI:-0}" 0 1 2 && : ${ED:=${D}} ${EPREFIX:=} ${EROOT:=${ROOT}} >} >_filter-hardened () >{ > local f; > for f in "$@"; > do > case "${f}" in > -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie) > gcc-specs-pie || continue; > is-flagq -nopie || append-flags -nopie > ;; > -fstack-protector) > gcc-specs-ssp || continue; > is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector) > ;; > -fstack-protector-all) > gcc-specs-ssp-to-all || continue; > is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all) > ;; > -fno-strict-overflow) > gcc-specs-nostrict || continue; > is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow) > ;; > esac; > done >} >_filter-var () >{ > local f x var=$1 new=(); > shift; > for f in ${!var}; > do > for x in "$@"; > do > [[ ${f} == ${x} ]] && continue 2; > done; > new+=("${f}"); > done; > eval export ${var}=\""${new[*]}"\" >} >_gcc-install-dir () >{ > echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null | awk '$1=="install:" {print $2}')" >} >_gcc-specs-directive_raw () >{ > local cc=$(tc-getCC); > local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}'); > ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN { pspec=""; spec=""; outside=1 } >$1=="*"directive":" { pspec=spec; spec=""; outside=0; next } > outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next } > spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next } > { spec=spec $0 } >END { print spec }'; > return 0 >} >_gcc-specs-exists () >{ > [[ -f $(_gcc-install-dir)/$1 ]] >} >_gcc_fullversion () >{ > local ver="$1"; > shift; > set -- `$(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"`; > eval echo "$ver" >} >_iconins () >{ > ( local funcname=$1; > shift; > local size dir; > local context=apps; > local theme=hicolor; > while [[ $# -gt 0 ]]; do > case $1 in > -s | --size) > if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then > size=${2%%x*}; > else > size=${2}; > fi; > case ${size} in > 16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256) > size=${size}x${size} > ;; > scalable) > > ;; > *) > eerror "${size} is an unsupported icon size!"; > exit 1 > ;; > esac; > shift 2 > ;; > -t | --theme) > theme=${2}; > shift 2 > ;; > -c | --context) > context=${2}; > shift 2 > ;; > *) > if [[ -z ${size} ]]; then > insinto /usr/share/pixmaps; > else > insinto /usr/share/icons/${theme}/${size}/${context}; > fi; > if [[ ${funcname} == doicon ]]; then > if [[ -f $1 ]]; then > doins "${1}"; > else > if [[ -d $1 ]]; then > shopt -s nullglob; > doins "${1}"/*.{png,svg}; > shopt -u nullglob; > else > eerror "${1} is not a valid file/directory!"; > exit 1; > fi; > fi; > else > break; > fi; > shift 1 > ;; > esac; > done; > if [[ ${funcname} == newicon ]]; then > newins "$@"; > fi ) || die >} >_is_flagq () >{ > local x var; > eval var=\""\${$1[*]}"\"; > for x in ${var}; > do > [[ ${x} == $2 ]] && return 0; > done; > return 1 >} >_multijob_fork () >{ > [[ $# -eq 1 ]] || die "incorrect number of arguments"; > local ret=0; > [[ $1 == "post" ]] && : $(( ++mj_num_jobs )); > if [[ ${mj_num_jobs} -ge ${mj_max_jobs} ]]; then > multijob_finish_one; > ret=$?; > fi; > [[ $1 == "pre" ]] && : $(( ++mj_num_jobs )); > return ${ret} >} >_systemd_get_unitdir () >{ > if $(tc-getPKG_CONFIG) --exists systemd; then > echo "$($(tc-getPKG_CONFIG) --variable=systemdsystemunitdir systemd)"; > else > echo /usr/lib/systemd/system; > fi >} >_systemd_get_userunitdir () >{ > if $(tc-getPKG_CONFIG) --exists systemd; then > echo "$($(tc-getPKG_CONFIG) --variable=systemduserunitdir systemd)"; > else > echo /usr/lib/systemd/user; > fi >} >_systemd_get_utildir () >{ > if $(tc-getPKG_CONFIG) --exists systemd; then > echo "$($(tc-getPKG_CONFIG) --variable=systemdutildir systemd)"; > else > echo /usr/lib/systemd; > fi >} >_tc-getPROG () >{ > local tuple=$1; > local v var vars=$2; > local prog=$3; > var=${vars%% *}; > for v in ${vars}; > do > if [[ -n ${!v} ]]; then > export ${var}="${!v}"; > echo "${!v}"; > return 0; > fi; > done; > local search=; > [[ -n $4 ]] && search=$(type -p "$4-${prog}"); > [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}"); > [[ -n ${search} ]] && prog=${search##*/}; > export ${var}=${prog}; > echo "${!var}" >} >all-flag-vars () >{ > echo {C,CPP,CXX,CCAS,F,FC,LD}FLAGS >} >append-cflags () >{ > [[ $# -eq 0 ]] && return 0; > export CFLAGS+=" $*"; > return 0 >} >append-cppflags () >{ > [[ $# -eq 0 ]] && return 0; > export CPPFLAGS+=" $*"; > return 0 >} >append-cxxflags () >{ > [[ $# -eq 0 ]] && return 0; > export CXXFLAGS+=" $*"; > return 0 >} >append-fflags () >{ > [[ $# -eq 0 ]] && return 0; > export FFLAGS+=" $*"; > export FCFLAGS+=" $*"; > return 0 >} >append-flags () >{ > [[ $# -eq 0 ]] && return 0; > case " $* " in > *' '-[DIU]*) > eqawarn 'please use append-cppflags for preprocessor flags' > ;; > *' '-L* | *' '-Wl,*) > eqawarn 'please use append-ldflags for linker flags' > ;; > esac; > append-cflags "$@"; > append-cxxflags "$@"; > append-fflags "$@"; > return 0 >} >append-ldflags () >{ > [[ $# -eq 0 ]] && return 0; > local flag; > for flag in "$@"; > do > [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS"; > done; > export LDFLAGS="${LDFLAGS} $*"; > return 0 >} >append-lfs-flags () >{ > [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments"; > append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >append-libs () >{ > [[ $# -eq 0 ]] && return 0; > local flag; > for flag in "$@"; > do > case $flag in > -[lL]*) > export LIBS="${LIBS} ${flag}" > ;; > -*) > eqawarn "Appending non-library to LIBS (${flag}); Other linker flags should be passed via LDFLAGS"; > export LIBS="${LIBS} ${flag}" > ;; > *) > export LIBS="${LIBS} -l${flag}" > ;; > esac; > done; > return 0 >} >autotools_check_macro () >{ > [[ -f configure.ac || -f configure.in ]] || return 0; > local trace_file=".__autoconf_trace_data"; > if [[ ! -e ${trace_file} ]] || [[ ! aclocal.m4 -ot ${trace_file} ]]; then > WANT_AUTOCONF="2.5" autoconf $(autotools_m4dir_include) ${ALL_AUTOTOOLS_MACROS[@]/#/--trace=} > ${trace_file} 2> /dev/null; > fi; > local macro args=(); > for macro in "$@"; > do > has ${macro} ${ALL_AUTOTOOLS_MACROS[@]} || die "internal error: add ${macro} to ALL_AUTOTOOLS_MACROS"; > args+=(-e ":${macro}:"); > done; > grep "${args[@]}" ${trace_file} >} >autotools_check_macro_val () >{ > local macro scan_out; > for macro in "$@"; > do > autotools_check_macro "${macro}" | gawk -v macro="${macro}" '($0 !~ /^[[:space:]]*(#|dnl)/) { > if (match($0, macro ":(.*)$", res)) > print res[1] > }' | uniq; > done; > return 0 >} >autotools_env_setup () >{ > if [[ ${WANT_AUTOMAKE} == "latest" ]]; then > local pv; > for pv in ${_LATEST_AUTOMAKE[@]/#*:}; > do > ROOT=/ has_version "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="${pv}"; > done; > [[ ${WANT_AUTOMAKE} == "latest" ]] && die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE}"; > fi; > [[ ${WANT_AUTOCONF} == "latest" ]] && export WANT_AUTOCONF=2.5 >} >autotools_m4dir_include () >{ > _autotools_m4dir_include ${AT_M4DIR} >} >autotools_m4sysdir_include () >{ > _autotools_m4dir_include $(eval echo ${AT_SYS_M4DIR}) >} >autotools_run_tool () >{ > local autofail=true m4flags=false missing_ok=false; > while [[ -n $1 ]]; do > case $1 in > --at-no-fail) > autofail=false > ;; > --at-m4flags) > m4flags=true > ;; > --at-missing) > missing_ok=true > ;; > *) > break > ;; > esac; > shift; > done; > if [[ ${EBUILD_PHASE} != "unpack" && ${EBUILD_PHASE} != "prepare" ]]; then > ewarn "QA Warning: running $1 in ${EBUILD_PHASE} phase"; > fi; > if ${missing_ok} && ! type -P ${1} > /dev/null; then > einfo "Skipping '$*' due $1 not installed"; > return 0; > fi; > autotools_env_setup; > local STDERR_TARGET="${T}/$1.out"; > if [[ -e ${STDERR_TARGET} ]]; then > local i=1; > while :; do > STDERR_TARGET="${T}/$1-${i}.out"; > [[ -e ${STDERR_TARGET} ]] || break; > : $(( i++ )); > done; > fi; > if ${m4flags}; then > set -- "${1}" $(autotools_m4dir_include) "${@:2}" $(autotools_m4sysdir_include); > fi; > printf "***** $1 *****\n***** PWD: ${PWD}\n***** $*\n\n" > "${STDERR_TARGET}"; > ebegin "Running $@"; > "$@" >> "${STDERR_TARGET}" 2>&1; > if ! eend $? && ${autofail}; then > echo; > eerror "Failed Running $1 !"; > eerror; > eerror "Include in your bugreport the contents of:"; > eerror; > eerror " ${STDERR_TARGET}"; > echo; > die "Failed Running $1 !"; > fi >} >bashpid () >{ > sh -c 'echo ${PPID}' >} >built_with_use () >{ > _eutils_eprefix_init; > local hidden="no"; > if [[ $1 == "--hidden" ]]; then > hidden="yes"; > shift; > fi; > local missing_action="die"; > if [[ $1 == "--missing" ]]; then > missing_action=$2; > shift; > shift; > case ${missing_action} in > true | false | die) > > ;; > *) > die "unknown action '${missing_action}'" > ;; > esac; > fi; > local opt=$1; > [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; > local PKG=$(best_version $1); > [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package"; > shift; > local USEFILE=${EROOT}/var/db/pkg/${PKG}/USE; > local IUSEFILE=${EROOT}/var/db/pkg/${PKG}/IUSE; > if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "Unable to determine what USE flags $PKG was built with" > ;; > esac; > fi; > if [[ ${hidden} == "no" ]]; then > local IUSE_BUILT=($(<"${IUSEFILE}")); > local expand; > for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]'); > do > if [[ $1 == ${expand}_* ]]; then > expand=""; > break; > fi; > done; > if [[ -n ${expand} ]]; then > if ! has $1 ${IUSE_BUILT[@]#[-+]}; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "$PKG does not actually support the $1 USE flag!" > ;; > esac; > fi; > fi; > fi; > local USE_BUILT=$(<${USEFILE}); > while [[ $# -gt 0 ]]; do > if [[ ${opt} = "-o" ]]; then > has $1 ${USE_BUILT} && return 0; > else > has $1 ${USE_BUILT} || return 1; > fi; > shift; > done; > [[ ${opt} = "-a" ]] >} >check_license () >{ > die "you no longer need this as portage supports ACCEPT_LICENSE itself" >} >cleanpamd () >{ > while [[ -n $1 ]]; do > if ! has_version sys-libs/pam; then > sed -i -e '/pam_shells\|pam_console/s:^:#:' "${D}/etc/pam.d/$1"; > fi; > shift; > done >} >config_rpath_update () >{ > local dst src=$(type -P gettext | sed 's:bin/gettext:share/gettext/config.rpath:'); > [[ $# -eq 0 ]] && set -- $(find -name config.rpath); > [[ $# -eq 0 ]] && return 0; > einfo "Updating all config.rpath files"; > for dst in "$@"; > do > einfo " ${dst}"; > cp "${src}" "${dst}" || die; > done >} >darwintoolize () >{ > die "Use elibtoolize" >} >db_findver () >{ > if [ $# -ne 1 ]; then > eerror "Function db_findver needs one argument" 1>&2; > eerror "args given:" 1>&2; > for f in $@; > do > eerror " - \"$@\"" 1>&2; > done; > return 1; > fi; > PKG="$(best_version $1)"; > VER="$(get_version_component_range 1-2 "${PKG/*db-/}")"; > if [ -d /usr/include/db$(db_ver_to_slot "$VER") ]; then > echo -n "$VER"; > return 0; > else > return 1; > fi >} >db_includedir () >{ > if [ $# -eq 0 ]; then > VER="$(db_findver sys-libs/db)" || return 1; > VER="$(db_ver_to_slot "$VER")"; > echo "include version ${VER}" 1>&2; > if [ -d "/usr/include/db${VER}" ]; then > echo -n "/usr/include/db${VER}"; > return 0; > else > eerror "sys-libs/db package requested, but headers not found" 1>&2; > return 1; > fi; > else > for x in $@; > do > if VER=$(db_findver "=sys-libs/db-${x}*") && [ -d "/usr/include/db$(db_ver_to_slot $VER)" ]; then > echo -n "/usr/include/db$(db_ver_to_slot $VER)"; > return 0; > fi; > done; > eerror "No suitable db version found"; > return 1; > fi >} >db_libname () >{ > if [ $# -eq 0 ]; then > VER="$(db_findver sys-libs/db)" || return 1; > if [ -e "/usr/$(get_libdir)/libdb-${VER}.so" ]; then > echo -n "db-${VER}"; > return 0; > else > eerror "sys-libs/db package requested, but library not found" 1>&2; > return 1; > fi; > else > for x in $@; > do > if VER=$(db_findver "=sys-libs/db-${x}*"); then > if [ -e "/usr/$(get_libdir)/libdb-${VER}.so" ]; then > echo -n "db-${VER}"; > return 0; > fi; > fi; > done; > eerror "No suitable db version found" 1>&2; > return 1; > fi >} >db_ver_to_slot () >{ > if [ $# -ne 1 ]; then > eerror "Function db_ver_to_slot needs one argument" 1>&2; > eerror "args given:" 1>&2; > for f in $@; > do > eerror " - \"$@\"" 1>&2; > done; > return 1; > fi; > echo -n "$1" >} >delete_all_version_separators () >{ > replace_all_version_separators "" "${1}" >} >delete_version_separator () >{ > replace_version_separator "${1}" "" "${2}" >} >depend-java-query () >{ > USE="${USE}" /usr/bin/depend-java-query "${@}" >} >doicon () >{ > _iconins ${FUNCNAME} "$@" >} >domenu () >{ > ( local i j ret=0; > insinto /usr/share/applications; > for i in "$@"; > do > if [[ -f ${i} ]]; then > doins "${i}"; > ((ret+=$?)); > else > if [[ -d ${i} ]]; then > for j in "${i}"/*.desktop; > do > doins "${j}"; > ((ret+=$?)); > done; > else > ((++ret)); > fi; > fi; > done; > exit ${ret} ) >} >dopamd () >{ > [[ -z $1 ]] && die "dopamd requires at least one argument"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > ( insinto /etc/pam.d; > insopts -m 0644; > doins "$@" ) || die "failed to install $@"; > cleanpamd "$@" >} >dopammod () >{ > [[ -z $1 ]] && die "dopammod requires at least one argument"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > exeinto $(getpam_mod_dir); > doexe "$@" || die "failed to install $@" >} >dopamsecurity () >{ > [[ $# -lt 2 ]] && die "dopamsecurity requires at least two arguments"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > ( insinto /etc/security/$1; > insopts -m 0644; > doins "${@:2}" ) || die "failed to install ${@:2}" >} >eaclocal () >{ > [[ ! -f aclocal.m4 || -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && autotools_run_tool --at-m4flags aclocal "$@" $(eaclocal_amflags) >} >eaclocal_amflags () >{ > local aclocal_opts amflags_file; > for amflags_file in GNUmakefile.am Makefile.am GNUmakefile.in Makefile.in; > do > [[ -e ${amflags_file} ]] || continue; > autotools_env_setup; > aclocal_opts=$(sed -n "/^ACLOCAL_AMFLAGS[[:space:]]*=/{ # match the first line > s:[^=]*=::p; # then gobble up all escaped lines > : nextline /\\\\$/{ n; p; b nextline; } }" ${amflags_file}); > eval aclocal_opts=\""${aclocal_opts}"\"; > break; > done; > echo ${aclocal_opts} >} >eant () >{ > debug-print-function ${FUNCNAME} $*; > if [[ ${EBUILD_PHASE} = compile ]]; then > java-ant-2_src_configure; > java-utils-2_src_prepare; > fi; > if ! has java-ant-2 ${INHERITED}; then > local msg="You should inherit java-ant-2 when using eant"; > java-pkg_announce-qa-violation "${msg}"; > fi; > local antflags="-Dnoget=true -Dmaven.mode.offline=true -Dbuild.sysclasspath=ignore"; > java-pkg_init-compiler_; > local compiler="${GENTOO_COMPILER}"; > local compiler_env="${JAVA_PKG_COMPILER_DIR}/${compiler}"; > local build_compiler="$(source ${compiler_env} 1>/dev/null 2>&1; echo ${ANT_BUILD_COMPILER})"; > if [[ "${compiler}" != "javac" && -z "${build_compiler}" ]]; then > die "ANT_BUILD_COMPILER undefined in ${compiler_env}"; > fi; > if [[ ${compiler} != "javac" ]]; then > antflags="${antflags} -Dbuild.compiler=${build_compiler}"; > local build_compiler_deps="$(source ${JAVA_PKG_COMPILER_DIR}/${compiler} 1>/dev/null 2>&1; echo ${ANT_BUILD_COMPILER_DEPS})"; > if [[ -n ${build_compiler_deps} ]]; then > antflags="${antflags} -lib $(java-config -p ${build_compiler_deps})"; > fi; > fi; > for arg in "${@}"; > do > if [[ ${arg} = -lib ]]; then > if is-java-strict; then > eerror "You should not use the -lib argument to eant because it will fail"; > eerror "with JAVA_PKG_STRICT. Please use for example java-pkg_jar-from"; > eerror "or ant properties to make dependencies available."; > eerror "For ant tasks use WANT_ANT_TASKS or ANT_TASKS from."; > eerror "split ant (>=dev-java/ant-core-1.7)."; > die "eant -lib is deprecated/forbidden"; > else > echo "eant -lib is deprecated. Turn JAVA_PKG_STRICT on for"; > echo "more info."; > fi; > fi; > done; > local want_ant_tasks; > for i in ${WANT_ANT_TASKS}; > do > if [[ ${i} = */*:* ]]; then > i=${i#*/}; > i=${i%:0}; > want_ant_tasks+="${i/:/-} "; > else > want_ant_tasks+="${i} "; > fi; > done; > ANT_TASKS="${ANT_TASKS:-${want_ant_tasks% }}"; > ANT_TASKS="${JAVA_PKG_FORCE_ANT_TASKS:-${ANT_TASKS}}"; > ANT_TASKS="${ANT_TASKS:-none}"; > if [[ "${ANT_TASKS}" == "all" ]]; then > einfo "Using all available ANT_TASKS"; > else > if [[ "${ANT_TASKS}" == "none" ]]; then > einfo "Disabling all optional ANT_TASKS"; > else > einfo "Using following ANT_TASKS: ${ANT_TASKS}"; > fi; > fi; > export ANT_TASKS; > [[ -n ${JAVA_PKG_DEBUG} ]] && antflags="${antflags} --execdebug -debug"; > [[ -n ${PORTAGE_QUIET} ]] && antflags="${antflags} -q"; > local gcp="${EANT_GENTOO_CLASSPATH}"; > local getjarsarg=""; > if [[ ${EBUILD_PHASE} = "test" ]]; then > antflags="${antflags} -DJunit.present=true"; > [[ ${ANT_TASKS} = *ant-junit* ]] && gcp="${gcp} junit"; > getjarsarg="--with-dependencies"; > else > antflags="${antflags} -Dmaven.test.skip=true"; > fi; > local cp; > for atom in ${gcp}; > do > cp="${cp}:$(java-pkg_getjars ${getjarsarg} ${atom})"; > done; > [[ -n "${EANT_NEEDS_TOOLS}" ]] && cp="${cp}:$(java-config --tools)"; > if [[ -n ${cp} ]]; then > cp=${cp#:}; > [[ -n ${EANT_GENTOO_CLASSPATH_EXTRA} ]] && cp="${cp}:${EANT_GENTOO_CLASSPATH_EXTRA}"; > antflags="${antflags} -Dgentoo.classpath=\"${cp}\""; > fi; > [[ -n ${JAVA_PKG_DEBUG} ]] && echo ant ${antflags} "${@}"; > debug-print "Calling ant (GENTOO_VM: ${GENTOO_VM}): ${antflags} ${@}"; > ant ${antflags} "${@}" || die "eant failed" >} >eautoconf () >{ > if [[ ! -f configure.ac && ! -f configure.in ]]; then > echo; > eerror "No configure.{ac,in} present in '${PWD}'!"; > echo; > die "No configure.{ac,in} present!"; > fi; > autotools_run_tool --at-m4flags autoconf "$@" >} >eautoheader () >{ > _at_uses_autoheader || return 0; > autotools_run_tool --at-no-fail --at-m4flags autoheader "$@" >} >eautomake () >{ > local extra_opts; > local makefile_name; > for makefile_name in {GNUmakefile,{M,m}akefile}.am ""; > do > [[ -f ${makefile_name} ]] && break; > done; > if [[ -z ${makefile_name} ]]; then > _at_uses_automake || return 0; > else > if [[ -z ${FROM_EAUTORECONF} && -f ${makefile_name%.am}.in ]]; then > local used_automake; > local installed_automake; > installed_automake=$(WANT_AUTOMAKE= automake --version | head -n 1 | sed -e 's:.*(GNU automake) ::'); > used_automake=$(head -n 1 < ${makefile_name%.am}.in | sed -e 's:.*by automake \(.*\) from .*:\1:'); > if [[ ${installed_automake} != ${used_automake} ]]; then > einfo "Automake used for the package (${used_automake}) differs from"; > einfo "the installed version (${installed_automake})."; > eautoreconf; > return 0; > fi; > fi; > fi; > [[ -f INSTALL && -f AUTHORS && -f ChangeLog && -f NEWS && -f README ]] || extra_opts="${extra_opts} --foreign"; > autotools_run_tool automake --add-missing --copy ${extra_opts} "$@" >} >eautopoint () >{ > autotools_run_tool autopoint "$@" >} >eautoreconf () >{ > local x g multitop; > if [[ -z ${AT_TOPLEVEL_EAUTORECONF} ]]; then > AT_TOPLEVEL_EAUTORECONF="yes"; > multitop="yes"; > multijob_init; > fi; > if [[ -z ${AT_NO_RECURSIVE} ]]; then > for x in $(autotools_check_macro_val AC_CONFIG_SUBDIRS); > do > if [[ -d ${x} ]]; then > pushd "${x}" > /dev/null; > if [[ -z ${PAST_TOPLEVEL_EAUTORECONF} ]]; then > PAST_TOPLEVEL_EAUTORECONF="yes" AT_NOELIBTOOLIZE="yes" multijob_child_init eautoreconf || die; > else > AT_NOELIBTOOLIZE="yes" eautoreconf || die; > fi; > popd > /dev/null; > fi; > done; > fi; > einfo "Running eautoreconf in '${PWD}' ..."; > local m4dirs=$(autotools_check_macro_val AC_CONFIG_{AUX,MACRO}_DIR); > [[ -n ${m4dirs} ]] && mkdir -p ${m4dirs}; > local i tools=(glibgettext false "autotools_run_tool glib-gettextize --copy --force" gettext false "autotools_run_tool --at-missing autopoint --force" intltool false "autotools_run_tool intltoolize --automake --copy --force" gtkdoc false "autotools_run_tool --at-missing gtkdocize --copy" gnomedoc false "autotools_run_tool --at-missing gnome-doc-prepare --copy --force" libtool false "_elibtoolize --install --copy --force"); > for ((i = 0; i < ${#tools[@]}; i += 3 )) > do > if _at_uses_${tools[i]}; then > tools[i+1]=true; > ${tools[i+2]}; > fi; > done; > local rerun_aclocal=false; > eaclocal; > for ((i = 0; i < ${#tools[@]}; i += 3 )) > do > if ! ${tools[i+1]} && _at_uses_${tools[i]}; then > ${tools[i+2]}; > rerun_aclocal=true; > fi; > done; > ${rerun_aclocal} && eaclocal; > eautoconf; > eautoheader; > [[ ${AT_NOEAUTOMAKE} != "yes" ]] && FROM_EAUTORECONF="yes" eautomake ${AM_OPTS}; > if [[ ${AT_NOELIBTOOLIZE} != "yes" ]]; then > elibtoolize --force "${PWD}"; > fi; > if [[ -n ${multitop} ]]; then > unset AT_TOPLEVEL_EAUTORECONF; > multijob_finish || die; > fi; > return 0 >} >ebeep () >{ > ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org" >} >econf_build () >{ > tc-env_build econf --build=${CBUILD:-${CHOST}} "$@" >} >ecvs_clean () >{ > [[ -z $* ]] && set -- .; > find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf; > find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf >} >edos2unix () >{ > [[ $# -eq 0 ]] && return 0; > sed -i 's/\r$//' -- "$@" || die >} >einstalldocs () >{ > debug-print-function ${FUNCNAME} "${@}"; > local dodoc_opts=-r; > has ${EAPI} 0 1 2 3 && dodoc_opts=; > if ! declare -p DOCS &>/dev/null; then > local d; > for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG; > do > if [[ -s ${d} ]]; then > dodoc "${d}" || die; > fi; > done; > else > if [[ $(declare -p DOCS) == "declare -a"* ]]; then > if [[ -n ${DOCS[@]} ]]; then > dodoc ${dodoc_opts} "${DOCS[@]}" || die; > fi; > else > if [[ -n ${DOCS} ]]; then > dodoc ${dodoc_opts} ${DOCS} || die; > fi; > fi; > fi; > if [[ $(declare -p HTML_DOCS 2>/dev/null) == "declare -a"* ]]; then > if [[ -n ${HTML_DOCS[@]} ]]; then > dohtml -r "${HTML_DOCS[@]}" || die; > fi; > else > if [[ -n ${HTML_DOCS} ]]; then > dohtml -r ${HTML_DOCS} || die; > fi; > fi; > return 0 >} >ejavac () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_init-compiler_; > local compiler_executable; > compiler_executable=$(java-pkg_get-javac); > if [[ ${?} != 0 ]]; then > eerror "There was a problem determining compiler: ${compiler_executable}"; > die "get-javac failed"; > fi; > local javac_args; > javac_args="$(java-pkg_javac-args)"; > if [[ ${?} != 0 ]]; then > eerror "There was a problem determining JAVACFLAGS: ${javac_args}"; > die "java-pkg_javac-args failed"; > fi; > [[ -n ${JAVA_PKG_DEBUG} ]] && echo ${compiler_executable} ${javac_args} "${@}"; > ${compiler_executable} ${javac_args} "${@}" || die "ejavac failed" >} >ejunit () >{ > debug-print-function ${FUNCNAME} $*; > ejunit_ "junit" "${@}" >} >ejunit4 () >{ > debug-print-function ${FUNCNAME} $*; > ejunit_ "junit-4" "${@}" >} >ejunit_ () >{ > debug-print-function ${FUNCNAME} $*; > local pkgs; > if [[ -f ${JAVA_PKG_DEPEND_FILE} ]]; then > for atom in $(cat ${JAVA_PKG_DEPEND_FILE} | tr : ' '); > do > pkgs=${pkgs},$(echo ${atom} | sed -re "s/^.*@//"); > done; > fi; > local junit=${1}; > shift 1; > local cp=$(java-pkg_getjars --with-dependencies ${junit}${pkgs}); > if [[ ${1} = -cp || ${1} = -classpath ]]; then > cp="${2}:${cp}"; > shift 2; > else > cp=".:${cp}"; > fi; > local runner=junit.textui.TestRunner; > if [[ "${junit}" == "junit-4" ]]; then > runner=org.junit.runner.JUnitCore; > fi; > debug-print "Calling: java -cp \"${cp}\" -Djava.awt.headless=true ${runner} ${@}"; > java -cp "${cp}" -Djava.awt.headless=true ${runner} "${@}" || die "Running junit failed" >} >elibtoolize () >{ > local x; > local dirs=(); > local do_portage="no"; > local do_reversedeps="no"; > local do_only_patches="no"; > local do_uclibc="yes"; > local deptoremove=; > local do_shallow="no"; > local force="false"; > local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm"; > for x in "$@"; > do > case ${x} in > --portage) > do_portage="yes" > ;; > --reverse-deps) > do_reversedeps="yes"; > elt_patches+=" fix-relink" > ;; > --patch-only) > do_only_patches="yes" > ;; > --remove-internal-dep=*) > deptoremove=${x#--remove-internal-dep=}; > [[ -n ${deptoremove} ]] && elt_patches+=" rem-int-dep" > ;; > --shallow) > do_shallow="yes" > ;; > --no-uclibc) > do_uclibc="no" > ;; > --force) > force="true" > ;; > -*) > eerror "Invalid elibtoolize option: ${x}"; > die "elibtoolize called with ${x} ??" > ;; > *) > dirs+=("${x}") > ;; > esac; > done; > [[ ${do_uclibc} == "yes" ]] && elt_patches+=" uclibc-conf uclibc-ltconf"; > case ${CHOST} in > *-aix*) > elt_patches+=" hardcode aixrtl aix-noundef" > ;; > *-darwin*) > elt_patches+=" darwin-ltconf darwin-ltmain darwin-conf" > ;; > *-solaris*) > elt_patches+=" sol2-conf sol2-ltmain" > ;; > *-freebsd*) > elt_patches+=" fbsd-conf fbsd-ltconf" > ;; > *-hpux*) > elt_patches+=" hpux-conf deplibs hc-flag-ld hardcode hardcode-relink relink-prog no-lc" > ;; > *-irix*) > elt_patches+=" irix-ltmain" > ;; > *-mint*) > elt_patches+=" mint-conf" > ;; > esac; > if $(tc-getLD) --version 2>&1 | grep -qs 'GNU gold'; then > elt_patches+=" gold-conf"; > fi; > if [[ ${do_shallow} == "yes" ]]; then > [[ ${#dirs[@]} -ne 0 ]] && die "Using --shallow with explicit dirs doesn't make sense"; > [[ -f ${S}/ltmain.sh || -f ${S}/configure ]] && dirs+=("${S}"); > else > [[ ${#dirs[@]} -eq 0 ]] && dirs+=("${S}"); > dirs=($(find "${dirs[@]}" '(' -name ltmain.sh -o -name configure ')' -printf '%h\n' | sort -u)); > fi; > local d p ret; > for d in "${dirs[@]}"; > do > export ELT_APPLIED_PATCHES=; > if [[ -f ${d}/.elibtoolized ]]; then > ${force} || continue; > fi; > local outfunc="einfo"; > [[ -f ${d}/.elibtoolized ]] && outfunc="ewarn"; > ${outfunc} "Running elibtoolize in: ${d#${WORKDIR}/}/"; > if [[ ${outfunc} == "ewarn" ]]; then > ewarn " We've already been run in this tree; you should"; > ewarn " avoid this if possible (perhaps by filing a bug)"; > fi; > [[ -f ${d}/ltmain.sh ]] && for p in ${elt_patches}; > do > ret=0; > case ${p} in > portage) > if ! grep -qs 'We do not want portage' "${d}/ltmain.sh"; then > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$?; > fi > ;; > rem-int-dep) > ELT_walk_patches "${d}/ltmain.sh" "${p}" "${deptoremove}"; > ret=$? > ;; > fix-relink) > if grep -qs 'inst_prefix_dir' "${d}/ltmain.sh"; then > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$?; > fi > ;; > max_cmd_len) > if grep -qs 'max_cmd_len' "${d}/ltmain.sh"; then > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$?; > fi > ;; > as-needed) > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$? > ;; > uclibc-ltconf) > if [[ -s ${d}/ltconfig ]]; then > ELT_walk_patches "${d}/ltconfig" "${p}"; > ret=$?; > fi > ;; > fbsd-ltconf) > if [[ -s ${d}/ltconfig ]]; then > ELT_walk_patches "${d}/ltconfig" "${p}"; > ret=$?; > fi > ;; > darwin-ltconf) > if [[ -s ${d}/ltconfig ]]; then > ELT_walk_patches "${d}/ltconfig" "${p}"; > ret=$?; > fi > ;; > darwin-ltmain) > if [[ -e ${d}/ltmain.sh ]] && ! grep -qs 'verstring="-compatibility_version' "${d}/ltmain.sh"; then > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$?; > fi > ;; > install-sh) > ELT_walk_patches "${d}/install-sh" "${p}"; > ret=$? > ;; > cross) > if tc-is-cross-compiler; then > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$?; > fi > ;; > *) > ELT_walk_patches "${d}/ltmain.sh" "${p}"; > ret=$? > ;; > esac; > if [[ ${ret} -ne 0 ]]; then > case ${p} in > relink) > local version=$(ELT_libtool_version "${d}/ltmain.sh"); > if ! grep -qs 'inst_prefix_dir' "${d}/ltmain.sh" && [[ $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]]; then > ewarn " Could not apply relink.patch!"; > fi > ;; > portage) > if [[ ${do_portage} == "yes" ]]; then > if ! grep -qs 'We do not want portage' "${d}/ltmain.sh"; then > echo; > eerror "Portage patch requested, but failed to apply!"; > eerror "Please file a bug report to add a proper patch."; > die "Portage patch requested, but failed to apply!"; > fi; > else > if grep -qs 'We do not want portage' "${d}/ltmain.sh"; then > :; > else > local version=$(ELT_libtool_version "${d}"/ltmain.sh); > echo; > eerror "Portage patch failed to apply (ltmain.sh version ${version})!"; > eerror "Please file a bug report to add a proper patch."; > die "Portage patch failed to apply!"; > fi; > ELT_APPLIED_PATCHES="portage"; > fi > ;; > darwin-*) > [[ ${CHOST} == *"-darwin"* ]] && ewarn " Darwin patch set '${p}' failed to apply!" > ;; > esac; > fi; > done; > [[ -f ${d}/ltmain.sh ]] && if [[ -z ${ELT_APPLIED_PATCHES} ]]; then > if [[ ${do_portage} == "no" && ${do_reversedeps} == "no" && ${do_only_patches} == "no" && ${deptoremove} == "" ]]; then > ewarn "Cannot apply any patches, please file a bug about this"; > die; > fi; > fi; > [[ -f ${d}/configure ]] && for p in ${elt_patches}; > do > ret=0; > case ${p} in > uclibc-conf) > if grep -qs 'Transform linux' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > fi > ;; > fbsd-conf) > if grep -qs 'version_type=freebsd-' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > fi > ;; > darwin-conf) > if grep -qs '&& echo \.so ||' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > fi > ;; > aixrtl | hpux-conf) > ret=1; > local subret=0; > while [[ $subret -eq 0 ]]; do > subret=1; > if [[ -e ${d}/configure ]]; then > ELT_walk_patches "${d}/configure" "${p}"; > subret=$?; > fi; > if [[ $subret -eq 0 ]]; then > ret=0; > fi; > done > ;; > mint-conf | gold-conf | sol2-conf) > ELT_walk_patches "${d}/configure" "${p}"; > ret=$? > ;; > target-nm) > ELT_walk_patches "${d}/configure" "${p}"; > ret=$? > ;; > *) > > ;; > esac; > if [[ ${ret} -ne 0 ]]; then > case ${p} in > uclibc-*) > [[ ${CHOST} == *-uclibc ]] && ewarn " uClibc patch set '${p}' failed to apply!" > ;; > fbsd-*) > if [[ ${CHOST} == *-freebsd* ]]; then > if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' "${d}/configure" 2>/dev/null) ]]; then > eerror " FreeBSD patch set '${p}' failed to apply!"; > die "FreeBSD patch set '${p}' failed to apply!"; > fi; > fi > ;; > darwin-*) > [[ ${CHOST} == *"-darwin"* ]] && ewarn " Darwin patch set '${p}' failed to apply!" > ;; > esac; > fi; > done; > rm -f "${d}/libtool"; > > "${d}/.elibtoolized"; > done >} >elt_patch_dir () >{ > local d="${ECLASSDIR}/ELT-patches"; > if [[ ! -d ${d} ]]; then > d="${ECLASSDIR_LOCAL}/ELT-patches"; > fi; > echo "${d}" >} >emktemp () >{ > local exe="touch"; > [[ $1 == -d ]] && exe="mkdir" && shift; > local topdir=$1; > if [[ -z ${topdir} ]]; then > [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; > fi; > if ! type -P mktemp > /dev/null; then > local tmp=/; > while [[ -e ${tmp} ]]; do > tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; > done; > ${exe} "${tmp}" || ${exe} -p "${tmp}"; > echo "${tmp}"; > else > if [[ ${exe} == "touch" ]]; then > TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; > else > TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; > fi; > fi >} >epatch () >{ > function _epatch_draw_line () > { > [[ -z $1 ]] && set "$(printf "%65s" '')"; > echo "${1//?/=}" > }; > unset P4CONFIG P4PORT P4USER; > local EPATCH_OPTS=(${EPATCH_OPTS[*]}); > while [[ $# -gt 0 ]]; do > case $1 in > -*) > EPATCH_OPTS+=("$1") > ;; > *) > break > ;; > esac; > shift; > done; > if [[ $# -gt 1 ]]; then > local m; > for m in "$@"; > do > epatch "${m}"; > done; > return 0; > fi; > local SINGLE_PATCH="no"; > [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}"; > if [[ -f $1 ]]; then > SINGLE_PATCH="yes"; > set -- "$1"; > local EPATCH_SUFFIX=$1; > else > if [[ -d $1 ]]; then > evar_push_set LC_COLLATE C; > set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"}; > evar_pop; > else > if [[ -f ${EPATCH_SOURCE}/$1 ]]; then > epatch "${EPATCH_SOURCE}/$1"; > return $?; > else > [[ $# -ne 0 ]] && EPATCH_SOURCE=$1; > echo; > eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:"; > eerror; > eerror " ${EPATCH_SOURCE}"; > eerror " ( ${EPATCH_SOURCE##*/} )"; > echo; > die "Cannot find \$EPATCH_SOURCE!"; > fi; > fi; > fi; > EPATCH_OPTS="${EPATCH_COMMON_OPTS} ${EPATCH_OPTS[*]}"; > local PIPE_CMD; > case ${EPATCH_SUFFIX##*\.} in > xz) > PIPE_CMD="xz -dc" > ;; > lzma) > PIPE_CMD="lzma -dc" > ;; > bz2) > PIPE_CMD="bzip2 -dc" > ;; > gz | Z | z) > PIPE_CMD="gzip -dc" > ;; > ZIP | zip) > PIPE_CMD="unzip -p" > ;; > *) > > ;; > esac; > [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}"; > local x; > for x in "$@"; > do > [[ ! -f ${x} ]] && continue; > local patchname=${x##*/}; > local a=${patchname#*_}; > a=${a%%_*}; > if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then > continue; > fi; > if [[ -n ${EPATCH_EXCLUDE} ]]; then > eshopts_push -o noglob; > local ex; > for ex in ${EPATCH_EXCLUDE}; > do > if [[ ${patchname} == ${ex} ]]; then > einfo " Skipping ${patchname} due to EPATCH_EXCLUDE ..."; > eshopts_pop; > continue 2; > fi; > done; > for ex in ${EPATCH_USER_EXCLUDE}; > do > if [[ ${patchname} == ${ex} ]]; then > einfo " Skipping ${patchname} due to EPATCH_USER_EXCLUDE ..."; > eshopts_pop; > continue 2; > fi; > done; > eshopts_pop; > fi; > if [[ ${SINGLE_PATCH} == "yes" ]]; then > if [[ -n ${EPATCH_SINGLE_MSG} ]]; then > einfo "${EPATCH_SINGLE_MSG}"; > else > einfo "Applying ${patchname} ..."; > fi; > else > einfo " ${patchname} ..."; > fi; > local STDERR_TARGET="${T}/${patchname}.out"; > if [[ -e ${STDERR_TARGET} ]]; then > STDERR_TARGET="${T}/${patchname}-$$.out"; > fi; > printf "***** %s *****\nPWD: %s\n\n" "${patchname}" "${PWD}" > "${STDERR_TARGET}"; > local count=0; > local PATCH_TARGET; > if [[ -n ${PIPE_CMD} ]]; then > PATCH_TARGET="${T}/$$.patch"; > echo "PIPE_COMMAND: ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}"; > if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then > echo; > eerror "Could not extract patch!"; > count=5; > break; > fi; > else > PATCH_TARGET=${x}; > fi; > local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }'); > if [[ -n ${abs_paths} ]]; then > count=1; > printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}"; > fi; > local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}"); > if [[ -n ${rel_paths} ]]; then > echo; > eerror "Rejected Patch: ${patchname} !"; > eerror " ( ${PATCH_TARGET} )"; > eerror; > eerror "Your patch uses relative paths '../':"; > eerror "${rel_paths}"; > echo; > die "you need to fix the relative paths in patch"; > fi; > local patch_cmd; > local patch="patch"; > eval $(alias patch 2>/dev/null | sed 's:^alias ::'); > while [[ ${count} -lt 5 ]]; do > patch_cmd="${patch} -p${count} ${EPATCH_OPTS}"; > ( _epatch_draw_line "***** ${patchname} *****"; > echo; > echo "PATCH COMMAND: ${patch_cmd} < '${PATCH_TARGET}'"; > echo; > _epatch_draw_line "***** ${patchname} *****"; > ${patch_cmd} --dry-run -f < "${PATCH_TARGET}" 2>&1; > ret=$?; > echo; > echo "patch program exited with status ${ret}"; > exit ${ret} ) >> "${STDERR_TARGET}"; > if [ $? -eq 0 ]; then > ( _epatch_draw_line "***** ${patchname} *****"; > echo; > echo "ACTUALLY APPLYING ${patchname} ..."; > echo; > _epatch_draw_line "***** ${patchname} *****"; > ${patch_cmd} < "${PATCH_TARGET}" 2>&1; > ret=$?; > echo; > echo "patch program exited with status ${ret}"; > exit ${ret} ) >> "${STDERR_TARGET}"; > if [ $? -ne 0 ]; then > echo; > eerror "A dry-run of patch command succeeded, but actually"; > eerror "applying the patch failed!"; > count=5; > fi; > break; > fi; > : $(( count++ )); > done; > if [[ -n ${PIPE_CMD} ]]; then > rm -f "${PATCH_TARGET}"; > fi; > if [[ ${count} -ge 5 ]]; then > echo; > eerror "Failed Patch: ${patchname} !"; > eerror " ( ${PATCH_TARGET} )"; > eerror; > eerror "Include in your bugreport the contents of:"; > eerror; > eerror " ${STDERR_TARGET}"; > echo; > die "Failed Patch: ${patchname}!"; > fi; > rm -f "${STDERR_TARGET}"; > cat >> "${T}/epatch.log" <<-EOF >PATCH: ${x} >CMD: ${patch_cmd} >PWD: ${PWD} > >EOF > > eend 0; > done; > [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching"; > : >} >epatch_user () >{ > [[ $# -ne 0 ]] && die "epatch_user takes no options"; > local applied="${T}/epatch_user.log"; > [[ -e ${applied} ]] && return 2; > local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; > for check in ${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT}}; > do > EPATCH_SOURCE=${base}/${CTARGET}/${check}; > [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check}; > [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check}; > if [[ -d ${EPATCH_SOURCE} ]]; then > EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch; > echo "${EPATCH_SOURCE}" > "${applied}"; > return 0; > fi; > done; > echo "none" > "${applied}"; > return 1 >} >epause () >{ > ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org" >} >epunt_cxx () >{ > local dir=$1; > [[ -z ${dir} ]] && dir=${S}; > ebegin "Removing useless C++ checks"; > local f p any_found; > while IFS= read -r -d '' f; do > for p in "${PORTDIR}"/eclass/ELT-patches/nocxx/*.patch; > do > if patch --no-backup-if-mismatch -p1 "${f}" "${p}" > /dev/null; then > any_found=1; > break; > fi; > done; > done < <(find "${dir}" -name configure -print0); > if [[ -z ${any_found} ]]; then > eqawarn "epunt_cxx called unnecessarily (no C++ checks to punt)."; > fi; > eend 0 >} >eshopts_pop () >{ > local s; > estack_pop eshopts s || die "${FUNCNAME}: unbalanced push"; > if [[ ${s} == "shopt -"* ]]; then > eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}"; > else > set +$- || die "${FUNCNAME}: sanity: invalid shell settings: $-"; > set -${s} || die "${FUNCNAME}: sanity: unable to restore saved shell settings: ${s}"; > fi >} >eshopts_push () >{ > if [[ $1 == -[su] ]]; then > estack_push eshopts "$(shopt -p)"; > [[ $# -eq 0 ]] && return 0; > shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*"; > else > estack_push eshopts $-; > [[ $# -eq 0 ]] && return 0; > set "$@" || die "${FUNCNAME}: bad options to set: $*"; > fi >} >estack_pop () >{ > [[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments"; > local __estack_name="__ESTACK_$1__"; > shift; > local __estack_retvar=$1; > shift; > eval local __estack_i=\${#${__estack_name}\[@\]}; > [[ $(( --__estack_i )) -eq -1 ]] && return 1; > if [[ -n ${__estack_retvar} ]]; then > eval ${__estack_retvar}=\"\${${__estack_name}\[${__estack_i}\]}\"; > fi; > eval unset ${__estack_name}\[${__estack_i}\] >} >estack_push () >{ > [[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments"; > local stack_name="__ESTACK_$1__"; > shift; > eval ${stack_name}+=\( \"\$@\" \) >} >esvn_clean () >{ > [[ -z $* ]] && set -- .; > find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf >} >eumask_pop () >{ > [[ $# -eq 0 ]] || die "${FUNCNAME}: we take no options"; > local s; > estack_pop eumask s || die "${FUNCNAME}: unbalanced push"; > umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}" >} >eumask_push () >{ > estack_push eumask "$(umask)"; > umask "$@" || die "${FUNCNAME}: bad options to umask: $*" >} >evar_pop () >{ > local cnt=${1:-bad}; > case $# in > 0) > cnt=1 > ;; > 1) > isdigit "${cnt}" || die "${FUNCNAME}: first arg must be a number: $*" > ;; > *) > die "${FUNCNAME}: only accepts one arg: $*" > ;; > esac; > local var val; > while (( cnt-- )); do > estack_pop evar val || die "${FUNCNAME}: unbalanced push"; > estack_pop evar var || die "${FUNCNAME}: unbalanced push"; > [[ ${val} == "${___ECLASS_ONCE_EUTILS}" ]] && unset ${var} || printf -v "${var}" '%s' "${val}"; > done >} >evar_push () >{ > local var val; > for var in "$@"; > do > [[ ${!var+set} == "set" ]] && val=${!var} || val="${___ECLASS_ONCE_EUTILS}"; > estack_push evar "${var}" "${val}"; > done >} >evar_push_set () >{ > local var=$1; > evar_push ${var}; > case $# in > 1) > unset ${var} > ;; > 2) > printf -v "${var}" '%s' "$2" > ;; > *) > die "${FUNCNAME}: incorrect # of args: $*" > ;; > esac >} >filter-flags () >{ > _filter-hardened "$@"; > local v; > for v in $(all-flag-vars); > do > _filter-var ${v} "$@"; > done; > return 0 >} >filter-ldflags () >{ > _filter-var LDFLAGS "$@"; > return 0 >} >filter-lfs-flags () >{ > [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments"; > filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >filter-mfpmath () >{ > local orig_mfpmath new_math prune_math; > orig_mfpmath=$(get-flag -mfpmath); > new_math=$(get-flag mfpmath); > new_math=${new_math/both/387,sse}; > new_math=" ${new_math//[,+]/ } "; > prune_math=""; > for prune_math in "$@"; > do > new_math=${new_math/ ${prune_math} / }; > done; > new_math=$(echo ${new_math}); > new_math=${new_math// /,}; > if [[ -z ${new_math} ]]; then > filter-flags ${orig_mfpmath}; > else > replace-flags ${orig_mfpmath} -mfpmath=${new_math}; > fi; > return 0 >} >gcc-fullversion () >{ > _gcc_fullversion '$1.$2.$3' "$@" >} >gcc-major-version () >{ > _gcc_fullversion '$1' "$@" >} >gcc-micro-version () >{ > _gcc_fullversion '$3' "$@" >} >gcc-minor-version () >{ > _gcc_fullversion '$2' "$@" >} >gcc-specs-directive () >{ > local directive subdname subdirective; > directive="$(_gcc-specs-directive_raw $1)"; > while [[ ${directive} == *%\(*\)* ]]; do > subdname=${directive/*%\(}; > subdname=${subdname/\)*}; > subdirective="$(_gcc-specs-directive_raw ${subdname})"; > directive="${directive//\%(${subdname})/${subdirective}}"; > done; > echo "${directive}"; > return 0 >} >gcc-specs-nostrict () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]]) >} >gcc-specs-now () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ "${directive/\{!nonow:}" != "${directive}" ]]) >} >gcc-specs-pie () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!nopie:}" != "${directive}" ]]) >} >gcc-specs-relro () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ "${directive/\{!norelro:}" != "${directive}" ]]) >} >gcc-specs-ssp () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]]) >} >gcc-specs-ssp-to-all () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]]) >} >gcc-version () >{ > _gcc_fullversion '$1.$2' "$@" >} >gen_usr_ldscript () >{ > local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname); > [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/; > tc-is-static-only && return; > case ${CTARGET:-${CHOST}} in > *-darwin*) > > ;; > *linux* | *-freebsd* | *-openbsd* | *-netbsd*) > use prefix && return 0 > ;; > *) > return 0 > ;; > esac; > dodir /usr/${libdir}; > if [[ $1 == "-a" ]]; then > auto=true; > shift; > dodir /${libdir}; > fi; > local flags=(${CFLAGS} ${LDFLAGS} -Wl,--verbose); > if $(tc-getLD) --version | grep -q 'GNU gold'; then > local d="${T}/bfd-linker"; > mkdir -p "${d}"; > ln -sf $(which ${CHOST}-ld.bfd) "${d}"/ld; > flags+=(-B"${d}"); > fi; > output_format=$($(tc-getCC) "${flags[@]}" 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); > [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; > for lib in "$@"; > do > local tlib; > if ${auto}; then > lib="lib${lib}${suffix}"; > else > [[ -r ${ED}/${libdir}/${lib} ]] || continue; > fi; > case ${CTARGET:-${CHOST}} in > *-darwin*) > if ${auto}; then > tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > else > tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib}); > fi; > [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"; > tlib=${tlib##*/}; > if ${auto}; then > mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then > mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > fi; > if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then > chmod u+w "${ED}${libdir}/${tlib}"; > local nowrite=yes; > fi; > install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed"; > [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"; > pushd "${ED}/usr/${libdir}" > /dev/null; > ln -snf "../../${libdir}/${tlib}" "${lib}"; > popd > /dev/null > ;; > *) > if ${auto}; then > tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"; > mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib}* ]]; then > mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > else > tlib=${lib}; > fi; > cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT >/* GNU ld script > Since Gentoo has critical dynamic libraries in /lib, and the static versions > in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we > run into linking problems. This "fake" dynamic lib is a linker script that > redirects the linker to the real lib. And yes, this works in the cross- > compiling scenario as the sysroot-ed linker will prepend the real path. > > See bug http://bugs.gentoo.org/4411 for more info. > */ >${output_format} >GROUP ( ${EPREFIX}/${libdir}/${tlib} ) >END_LDSCRIPT > > ;; > esac > fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"; > done >} >get-flag () >{ > local f var findflag="$1"; > for var in $(all-flag-vars); > do > for f in ${!var}; > do > if [ "${f/${findflag}}" != "${f}" ]; then > printf "%s\n" "${f/-${findflag}=}"; > return 0; > fi; > done; > done; > return 1 >} >get_abi_CFLAGS () >{ > get_abi_var CFLAGS "$@" >} >get_abi_CHOST () >{ > get_abi_var CHOST "$@" >} >get_abi_CTARGET () >{ > get_abi_var CTARGET "$@" >} >get_abi_FAKE_TARGETS () >{ > get_abi_var FAKE_TARGETS "$@" >} >get_abi_LDFLAGS () >{ > get_abi_var LDFLAGS "$@" >} >get_abi_LIBDIR () >{ > get_abi_var LIBDIR "$@" >} >get_abi_var () >{ > local flag=$1; > local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}}; > local var="${flag}_${abi}"; > echo ${!var} >} >get_after_major_version () >{ > echo $(get_version_component_range 2- "${1:-${PV}}") >} >get_all_abis () >{ > local x order="" mvar dvar; > mvar="MULTILIB_ABIS"; > dvar="DEFAULT_ABI"; > if [[ -n $1 ]]; then > mvar="$1_${mvar}"; > dvar="$1_${dvar}"; > fi; > if [[ -z ${!mvar} ]]; then > echo "default"; > return 0; > fi; > for x in ${!mvar}; > do > if [[ ${x} != ${!dvar} ]]; then > order="${order:+${order} }${x}"; > fi; > done; > order="${order:+${order} }${!dvar}"; > echo ${order}; > return 0 >} >get_all_libdirs () >{ > local libdirs abi; > for abi in ${MULTILIB_ABIS}; > do > libdirs+=" $(get_abi_LIBDIR ${abi})"; > done; > [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib"; > echo "${libdirs}" >} >get_all_version_components () >{ > eshopts_push -s extglob; > local ver_str=${1:-${PV}} result; > result=(); > if [[ ${VERSIONATOR_CACHE_VER_STR} == ${ver_str} ]]; then > echo ${VERSIONATOR_CACHE_RESULT}; > eshopts_pop; > return; > fi; > export VERSIONATOR_CACHE_VER_STR=${ver_str}; > while [[ -n $ver_str ]]; do > case "${ver_str::1}" in > [[:digit:]]) > result+=("${ver_str%%[^[:digit:]]*}"); > ver_str=${ver_str##+([[:digit:]])} > ;; > [-_.]) > result+=("${ver_str::1}"); > ver_str=${ver_str:1} > ;; > [[:alpha:]]) > local not_match=${ver_str##+([[:alpha:]])*([[:digit:]])}; > result+=("${ver_str::${#ver_str} - ${#not_match}}"); > ver_str=${not_match} > ;; > *) > result+=("${ver_str::1}"); > ver_str=${ver_str:1} > ;; > esac; > done; > export VERSIONATOR_CACHE_RESULT=${result[*]}; > echo ${result[@]}; > eshopts_pop >} >get_install_abis () >{ > local x order=""; > if [[ -z ${MULTILIB_ABIS} ]]; then > echo "default"; > return 0; > fi; > if [[ ${EMULTILIB_PKG} == "true" ]]; then > for x in ${MULTILIB_ABIS}; > do > if [[ ${x} != "${DEFAULT_ABI}" ]]; then > has ${x} ${ABI_DENY} || order="${order} ${x}"; > fi; > done; > has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}"; > if [[ -n ${ABI_ALLOW} ]]; then > local ordera=""; > for x in ${order}; > do > if has ${x} ${ABI_ALLOW}; then > ordera="${ordera} ${x}"; > fi; > done; > order=${ordera}; > fi; > else > order=${DEFAULT_ABI}; > fi; > if [[ -z ${order} ]]; then > die "The ABI list is empty. Are you using a proper multilib profile? Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package."; > fi; > echo ${order}; > return 0 >} >get_last_version_component_index () >{ > echo $(($(get_version_component_count "${1:-${PV}}" ) - 1)) >} >get_libdir () >{ > local CONF_LIBDIR; > if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then > echo ${CONF_LIBDIR_OVERRIDE}; > else > get_abi_LIBDIR; > fi >} >get_libname () >{ > local libname; > local ver=$1; > case ${CHOST} in > *-cygwin | mingw* | *-mingw*) > libname="dll" > ;; > *-darwin*) > libname="dylib" > ;; > *-mint*) > libname="irrelevant" > ;; > hppa*-hpux*) > libname="sl" > ;; > *) > libname="so" > ;; > esac; > if [[ -z $* ]]; then > echo ".${libname}"; > else > for ver in "$@"; > do > case ${CHOST} in > *-darwin*) > echo ".${ver}.${libname}" > ;; > *-mint*) > echo ".${libname}" > ;; > *) > echo ".${libname}.${ver}" > ;; > esac; > done; > fi >} >get_major_version () >{ > local c=($(get_all_version_components "${1:-${PV}}")); > echo ${c[0]} >} >get_modname () >{ > local modname; > local ver=$1; > case ${CHOST} in > *-darwin*) > modname="bundle" > ;; > *) > modname="so" > ;; > esac; > echo ".${modname}" >} >get_version_component_count () >{ > local a=($(get_version_components "${1:-${PV}}")); > echo ${#a[@]} >} >get_version_component_range () >{ > eshopts_push -s extglob; > local c v="${2:-${PV}}" range="${1}" range_start range_end; > local -i i=-1 j=0; > c=($(get_all_version_components "${v}")); > range_start=${range%-*}; > range_start=${range_start:-1}; > range_end=${range#*-}; > range_end=${range_end:-${#c[@]}}; > while ((j < range_start)); do > i+=1; > ((i > ${#c[@]})) && eshopts_pop && return; > [[ -n "${c[i]//[-._]}" ]] && j+=1; > done; > while ((j <= range_end)); do > echo -n ${c[i]}; > ((i > ${#c[@]})) && eshopts_pop && return; > [[ -n "${c[i]//[-._]}" ]] && j+=1; > i+=1; > done; > eshopts_pop >} >get_version_components () >{ > local c=$(get_all_version_components "${1:-${PV}}"); > echo ${c//[-._]/ } >} >getpam_mod_dir () >{ > if has_version sys-libs/pam || has_version sys-libs/openpam; then > PAM_MOD_DIR=/$(get_libdir)/security; > else > PAM_MOD_DIR=/$(get_libdir)/security; > fi; > echo ${PAM_MOD_DIR} >} >has_m32 () >{ > die "${FUNCNAME}: don't use this anymore" >} >has_m64 () >{ > eqawarn "${FUNCNAME}: don't use this anymore"; > local temp="$(emktemp)"; > echo "int main() { return(0); }" > "${temp}".c; > MY_CC=$(tc-getCC); > ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1; > local ret=$?; > rm -f "${temp}".c; > [[ ${ret} != 1 ]] && return 0; > return 1 >} >has_multilib_profile () >{ > [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] >} >in_iuse () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()"; > local flag=${1}; > local liuse=(${IUSE}); > has "${flag}" "${liuse[@]#[+-]}" >} >increment-qa-violations () >{ > let "JAVA_PKG_QA_VIOLATIONS+=1"; > export JAVA_PKG_QA_VIOLATIONS >} >is-flag () >{ > is-flagq "$@" && echo true >} >is-flagq () >{ > [[ -n $2 ]] && die "Usage: is-flag <flag>"; > local var; > for var in $(all-flag-vars); > do > _is_flagq ${var} "$1" && return 0; > done; > return 1 >} >is-java-strict () >{ > [[ -n ${JAVA_PKG_STRICT} ]]; > return $? >} >is-ldflag () >{ > is-ldflagq "$@" && echo true >} >is-ldflagq () >{ > [[ -n $2 ]] && die "Usage: is-ldflag <flag>"; > _is_flagq LDFLAGS $1 >} >is_final_abi () >{ > has_multilib_profile || return 0; > set -- $(get_install_abis); > local LAST_ABI=$#; > [[ ${!LAST_ABI} == ${ABI} ]] >} >isdigit () >{ > local d; > for d in "$@"; > do > [[ ${d:-bad} == *[!0-9]* ]] && return 1; > done; > return 0 >} >java-pkg-opt-2_pkg_preinst () >{ > use ${JAVA_PKG_OPT_USE} && java-utils-2_pkg_preinst >} >java-pkg-opt-2_pkg_setup () >{ > use ${JAVA_PKG_OPT_USE} && java-pkg_init >} >java-pkg-opt-2_src_prepare () >{ > use ${JAVA_PKG_OPT_USE} && java-utils-2_src_prepare >} >java-pkg_addcp () >{ > java-pkg_append_ JAVA_PKG_CLASSPATH "${@}"; > java-pkg_do_write_ >} >java-pkg_announce-qa-violation () >{ > local nodie; > if [[ ${1} == "--nodie" ]]; then > nodie="true"; > shift; > fi; > echo "Java QA Notice: $@" 1>&2; > increment-qa-violations; > [[ -z "${nodie}" ]] && is-java-strict && die "${@}" >} >java-pkg_ant-tasks-depend () >{ > debug-print-function ${FUNCNAME} ${WANT_ANT_TASKS}; > if [[ -n "${WANT_ANT_TASKS}" ]]; then > local DEP=""; > for i in ${WANT_ANT_TASKS}; > do > if [[ ${i} = ant-* ]]; then > DEP="${DEP}dev-java/${i} "; > else > if [[ ${i} = */*:* ]]; then > DEP="${DEP}${i} "; > else > echo "Invalid atom in WANT_ANT_TASKS: ${i}"; > return 1; > fi; > fi; > done; > echo ${DEP}; > return 0; > else > return 0; > fi >} >java-pkg_append_ () >{ > debug-print-function ${FUNCNAME} $*; > local var="${1}" value="${2}"; > if [[ -z "${!var}" ]]; then > export ${var}="${value}"; > else > local oldIFS=${IFS} cur haveit; > IFS=':'; > for cur in ${!var}; > do > if [[ ${cur} == ${value} ]]; then > haveit="yes"; > break; > fi; > done; > [[ -z ${haveit} ]] && export ${var}="${!var}:${value}"; > IFS=${oldIFS}; > fi >} >java-pkg_build-vm-from-handle () >{ > debug-print-function ${FUNCNAME} "$*"; > local vm; > vm=$(java-pkg_get-current-vm 2>/dev/null); > if [[ $? -eq 0 ]]; then > if has ${vm} ${JAVA_PKG_WANT_BUILD_VM}; then > echo ${vm}; > return 0; > fi; > fi; > for vm in ${JAVA_PKG_WANT_BUILD_VM}; > do > if java-config-2 --select-vm=${vm} 2> /dev/null; then > echo ${vm}; > return 0; > fi; > done; > eerror "${FUNCNAME}: No vm found for handles: ${JAVA_PKG_WANT_BUILD_VM}"; > return 1 >} >java-pkg_check-jikes () >{ > if has jikes ${IUSE}; then > java-pkg_announce-qa-violation "deprecated USE flag 'jikes' in IUSE"; > fi >} >java-pkg_check-phase () >{ > local phase=${1}; > local funcname=${FUNCNAME[1]}; > if [[ ${EBUILD_PHASE} != ${phase} ]]; then > local msg="${funcname} used outside of src_${phase}"; > java-pkg_announce-qa-violation "${msg}"; > fi >} >java-pkg_check-versioned-jar () >{ > local jar=${1}; > if [[ ${jar} =~ ${PV} ]]; then > java-pkg_announce-qa-violation "installing versioned jar '${jar}'"; > fi >} >java-pkg_current-vm-matches () >{ > has $(java-pkg_get-current-vm) ${@}; > return $? >} >java-pkg_die () >{ > echo "!!! When you file a bug report, please include the following information:" 1>&2; > echo "GENTOO_VM=${GENTOO_VM} CLASSPATH=\"${CLASSPATH}\" JAVA_HOME=\"${JAVA_HOME}\"" 1>&2; > echo "JAVACFLAGS=\"${JAVACFLAGS}\" COMPILER=\"${GENTOO_COMPILER}\"" 1>&2; > echo "and of course, the output of emerge --info =${P}" 1>&2 >} >java-pkg_do_write_ () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_init_paths_; > dodir "${JAVA_PKG_SHAREPATH}"; > if [[ -n "${JAVA_PKG_CLASSPATH}" || -n "${JAVA_PKG_LIBRARY}" || -f "${JAVA_PKG_DEPEND_FILE}" || -f "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" ]]; then > ( echo "DESCRIPTION=\"${DESCRIPTION}\""; > echo "GENERATION=\"2\""; > echo "SLOT=\"${SLOT}\""; > echo "CATEGORY=\"${CATEGORY}\""; > echo "PVR=\"${PVR}\""; > [[ -n "${JAVA_PKG_CLASSPATH}" ]] && echo "CLASSPATH=\"${JAVA_PKG_CLASSPATH}\""; > [[ -n "${JAVA_PKG_LIBRARY}" ]] && echo "LIBRARY_PATH=\"${JAVA_PKG_LIBRARY}\""; > [[ -n "${JAVA_PROVIDE}" ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\""; > [[ -f "${JAVA_PKG_DEPEND_FILE}" ]] && echo "DEPEND=\"$(sort -u "${JAVA_PKG_DEPEND_FILE}" | tr '\n' ':')\""; > [[ -f "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" ]] && echo "OPTIONAL_DEPEND=\"$(sort -u "${JAVA_PKG_OPTIONAL_DEPEND_FILE}" | tr '\n' ':')\""; > echo "VM=\"$(echo ${RDEPEND} ${DEPEND} | sed -e 's/ /\n/g' | sed -n -e '/virtual\/\(jre\|jdk\)/ { p;q }')\""; > [[ -f "${JAVA_PKG_BUILD_DEPEND_FILE}" ]] && echo "BUILD_DEPEND=\"$(sort -u "${JAVA_PKG_BUILD_DEPEND_FILE}" | tr '\n' ':')\"" ) > "${JAVA_PKG_ENV}"; > local target="$(java-pkg_get-target)"; > local source="$(java-pkg_get-source)"; > [[ -n ${target} ]] && echo "TARGET=\"${target}\"" >> "${JAVA_PKG_ENV}"; > [[ -n ${source} ]] && echo "SOURCE=\"${source}\"" >> "${JAVA_PKG_ENV}"; > [[ -n ${JAVADOC_PATH} ]] && echo "JAVADOC_PATH=\"${JAVADOC_PATH}\"" >> ${JAVA_PKG_ENV}; > [[ -n ${JAVA_SOURCES} ]] && echo "JAVA_SOURCES=\"${JAVA_SOURCES}\"" >> ${JAVA_PKG_ENV}; > echo "MERGE_VM=\"${GENTOO_VM}\"" >> "${JAVA_PKG_ENV}"; > [[ -n ${GENTOO_COMPILER} ]] && echo "MERGE_COMPILER=\"${GENTOO_COMPILER}\"" >> "${JAVA_PKG_ENV}"; > if [[ -n "${JAVA_PKG_EXTRA_ENV_VARS}" ]]; then > cat "${JAVA_PKG_EXTRA_ENV}" >> "${JAVA_PKG_ENV}" || die; > echo "ENV_VARS=\"$(echo ${JAVA_PKG_EXTRA_ENV_VARS})\"" >> "${JAVA_PKG_ENV}" || die; > fi; > sed -e "s/=\":/=\"/" -e "s/:\"$/\"/" -i "${JAVA_PKG_ENV}" || die "Did you forget to call java_init ?"; > else > debug-print "JAVA_PKG_CLASSPATH, JAVA_PKG_LIBRARY, JAVA_PKG_DEPEND_FILE"; > debug-print "or JAVA_PKG_OPTIONAL_DEPEND_FILE not defined so can't"; > debug-print "write package.env."; > fi >} >java-pkg_doexamples () >{ > debug-print-function ${FUNCNAME} $*; > [[ ${#} -lt 1 ]] && die "At least one argument needed"; > java-pkg_check-phase install; > local dest=/usr/share/doc/${PF}/examples; > if [[ ${1} == --subdir ]]; then > local dest=${dest}/${2}; > dodir ${dest}; > shift 2; > fi; > if [[ ${#} = 1 && -d ${1} ]]; then > ( insinto "${dest}"; > doins -r ${1}/* ) || die "Installing examples failed"; > else > ( insinto "${dest}"; > doins -r "$@" ) || die "Installing examples failed"; > fi; > dosym "${dest}" "${JAVA_PKG_SHAREPATH}/examples" || die >} >java-pkg_dohtml () >{ > debug-print-function ${FUNCNAME} $*; > [[ ${#} -lt 1 ]] && die "At least one argument required for ${FUNCNAME}"; > dohtml -f package-list "$@"; > java-pkg_recordjavadoc >} >java-pkg_dojar () >{ > debug-print-function ${FUNCNAME} $*; > [[ ${#} -lt 1 ]] && die "At least one argument needed"; > java-pkg_check-phase install; > java-pkg_init_paths_; > dodir ${JAVA_PKG_JARDEST}; > local jar; > for jar in "${@}"; > do > local jar_basename=$(basename "${jar}"); > java-pkg_check-versioned-jar ${jar_basename}; > if [[ -e "${jar}" ]]; then > local dest="${D}${JAVA_PKG_JARDEST}/${jar_basename}"; > if [[ -e "${dest}" ]]; then > ewarn "Overwriting ${dest}"; > fi; > if [[ ! -L "${jar}" ]]; then > is-java-strict && java-pkg_verify-classes "${jar}"; > INSDESTTREE="${JAVA_PKG_JARDEST}" doins "${jar}" || die "failed to install ${jar}"; > java-pkg_append_ JAVA_PKG_CLASSPATH "${JAVA_PKG_JARDEST}/${jar_basename}"; > debug-print "installed ${jar} to ${D}${JAVA_PKG_JARDEST}"; > else > ln -s "$(readlink "${jar}")" "${D}${JAVA_PKG_JARDEST}/${jar_basename}"; > debug-print "${jar} is a symlink, linking accordingly"; > fi; > else > die "${jar} does not exist"; > fi; > done; > java-pkg_do_write_ >} >java-pkg_dojavadoc () >{ > debug-print-function ${FUNCNAME} $*; > local symlink; > if [[ ${1} = --symlink ]]; then > symlink=${2}; > shift 2; > fi; > local dir="$1"; > local dest=/usr/share/doc/${PF}/html; > java-pkg_check-phase install; > [[ -z "${dir}" ]] && die "Must specify a directory!"; > [[ ! -d "${dir}" ]] && die "${dir} does not exist, or isn't a directory!"; > if [[ ! -e "${dir}/index.html" ]]; then > local msg="No index.html in javadoc directory"; > ewarn "${msg}"; > is-java-strict && die "${msg}"; > fi; > if [[ -e ${D}/${dest}/api ]]; then > eerror "${dest} already exists. Will not overwrite."; > die "${dest}"; > fi; > local dir_to_install="${dir}"; > if [[ "$(basename "${dir}")" != "api" ]]; then > dir_to_install="${T}/api"; > cp -r "${dir}" "${dir_to_install}" || die "cp failed"; > fi; > java-pkg_dohtml -r "${dir_to_install}"; > dosym ${dest}/api "${JAVA_PKG_SHAREPATH}/api" || die; > if [[ -n ${symlink} ]]; then > debug-print "symlinking ${dest}/{api,${symlink}}"; > dosym ${dest}/{api,${symlink}} || die; > fi >} >java-pkg_dolauncher () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > java-pkg_init_paths_; > if [[ ${#} = 0 ]]; then > local name="${PN}"; > else > local name="${1}"; > shift; > fi; > local target="${T}/${name}"; > local var_tmp="${T}/launcher_variables_tmp"; > local target_dir pre; > while [[ -n "${1}" && -n "${2}" ]]; do > local var="${1}" value="${2}"; > if [[ "${var:0:2}" == "--" ]]; then > local var=${var:2}; > echo "gjl_${var}=\"${value}\"" >> "${var_tmp}"; > local gjl_${var}="${value}"; > else > if [[ "${var}" == "-into" ]]; then > target_dir="${value}"; > else > if [[ "${var}" == "-pre" ]]; then > pre="${value}"; > fi; > fi; > fi; > shift 2; > done; > if [[ -z "${gjl_jar}" && -z "${gjl_main}" ]]; then > local cp="${JAVA_PKG_CLASSPATH}"; > if [[ "${cp/:}" = "${cp}" && "${cp%.jar}" != "${cp}" ]]; then > echo "gjl_jar=\"${JAVA_PKG_CLASSPATH}\"" >> "${var_tmp}"; > else > local msg="Not enough information to create a launcher given."; > msg="${msg} Please give --jar or --main argument to ${FUNCNAME}."; > die "${msg}"; > fi; > fi; > echo "#!/bin/bash" > "${target}"; > if [[ -n "${pre}" ]]; then > if [[ -f "${pre}" ]]; then > cat "${pre}" >> "${target}"; > else > die "-pre specified file '${pre}' does not exist"; > fi; > fi; > echo "gjl_package=${JAVA_PKG_NAME}" >> "${target}"; > cat "${var_tmp}" >> "${target}"; > rm -f "${var_tmp}"; > echo "source /usr/share/java-config-2/launcher/launcher.bash" >> "${target}"; > if [[ -n "${target_dir}" ]]; then > DESTTREE="${target_dir}" dobin "${target}"; > local ret=$?; > return ${ret}; > else > dobin "${target}"; > fi >} >java-pkg_doso () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} -lt 1 ]] && die "${FUNCNAME} requires at least one argument"; > java-pkg_init_paths_; > local lib; > for lib in "$@"; > do > if [[ -e "${lib}" ]]; then > if [[ ! -L "${lib}" ]]; then > INSDESTTREE="${JAVA_PKG_LIBDEST}" INSOPTIONS="${LIBOPTIONS}" doins "${lib}" || die "failed to install ${lib}"; > java-pkg_append_ JAVA_PKG_LIBRARY "${JAVA_PKG_LIBDEST}"; > debug-print "Installing ${lib} to ${JAVA_PKG_LIBDEST}"; > else > dosym "$(readlink "${lib}")" "${JAVA_PKG_LIBDEST}/${lib##*/}"; > debug-print "${lib} is a symlink, linking accordantly"; > fi; > else > die "${lib} does not exist"; > fi; > done; > java-pkg_do_write_ >} >java-pkg_dosrc () >{ > debug-print-function ${FUNCNAME} $*; > [ ${#} -lt 1 ] && die "At least one argument needed"; > java-pkg_check-phase install; > [[ ${#} -lt 1 ]] && die "At least one argument needed"; > if ! [[ ${DEPEND} = *app-arch/zip* ]]; then > local msg="${FUNCNAME} called without app-arch/zip in DEPEND"; > java-pkg_announce-qa-violation ${msg}; > fi; > java-pkg_init_paths_; > local zip_name="${PN}-src.zip"; > local zip_path="${T}/${zip_name}"; > local dir; > for dir in "${@}"; > do > local dir_parent=$(dirname "${dir}"); > local dir_name=$(basename "${dir}"); > pushd ${dir_parent} > /dev/null || die "problem entering ${dir_parent}"; > zip -q -r ${zip_path} ${dir_name} -i '*.java'; > local result=$?; > if [[ ${result} != 12 && ${result} != 0 ]]; then > die "failed to zip ${dir_name}"; > fi; > popd > /dev/null; > done; > INSDESTTREE=${JAVA_PKG_SOURCESPATH} doins ${zip_path} || die "Failed to install source"; > JAVA_SOURCES="${JAVA_PKG_SOURCESPATH}/${zip_name}"; > java-pkg_do_write_ >} >java-pkg_dowar () >{ > debug-print-function ${FUNCNAME} $*; > [[ ${#} -lt 1 ]] && die "At least one argument needed"; > java-pkg_check-phase install; > java-pkg_init_paths_; > local war; > for war in $*; > do > local warpath; > if [[ -L "${war}" ]]; then > cp "${war}" "${T}"; > warpath="${T}$(basename "${war}")"; > else > if [[ -d "${war}" ]]; then > echo "dowar: warning, skipping directory ${war}"; > continue; > else > warpath="${war}"; > fi; > fi; > INSOPTIONS="-m 0644" INSDESTTREE=${JAVA_PKG_WARDEST} doins ${warpath}; > done >} >java-pkg_ensure-dep () >{ > debug-print-function ${FUNCNAME} $*; > local limit_to="${1}"; > local target_pkg="${2}"; > local dev_error=""; > local stripped_pkg=$(echo "${target_pkg}" | sed 's/-\([0-9*]*\(\[[0-9]*\]\)*\)*\(\.\([0-9*]*\(\[[0-9]*\]\)*\)*\)*$//'); > debug-print "Matching against: ${stripped_pkg}"; > if [[ ${limit_to} != runtime && ! ( "${DEPEND}" =~ "$stripped_pkg" ) ]]; then > dev_error="The ebuild is attempting to use ${target_pkg} that is not"; > dev_error="${dev_error} declared in DEPEND."; > if is-java-strict; then > eerror "${dev_error}"; > die "${dev_error}"; > else > if [[ ${BASH_SUBSHELL} = 0 ]]; then > eerror "${dev_error}"; > elog "Because you have this package installed the package will"; > elog "build without problems, but please report this to"; > elog "http://bugs.gentoo.org"; > fi; > fi; > fi; > if [[ ${limit_to} != build ]]; then > if [[ ! ( ${RDEPEND} =~ "${stripped_pkg}" ) ]]; then > if [[ ! ( ${PDEPEND} =~ "${stripped_pkg}" ) ]]; then > dev_error="The ebuild is attempting to use ${target_pkg},"; > dev_error="${dev_error} without specifying --build-only, that is not declared in RDEPEND"; > dev_error="${dev_error} or PDEPEND."; > if is-java-strict; then > eerror "${dev_error}"; > die "${dev_error}"; > else > if [[ ${BASH_SUBSHELL} = 0 ]]; then > eerror "${dev_error}"; > elog "The package will build without problems, but may fail to run"; > elog "if you don't have ${target_pkg} installed, so please report"; > elog "this to http://bugs.gentoo.org"; > fi; > fi; > fi; > fi; > fi >} >java-pkg_ensure-gcj () >{ > die "${FUNCNAME} was removed. Use use-deps available as of EAPI 2 instead. #261562" >} >java-pkg_ensure-no-bundled-jars () >{ > debug-print-function ${FUNCNAME} $*; > local bundled_jars=$(java-pkg_find-normal-jars); > if [[ -n ${bundled_jars} ]]; then > echo "Bundled jars found:"; > local jar; > for jar in ${bundled_jars}; > do > echo $(pwd)${jar/./}; > done; > die "Bundled jars found!"; > fi >} >java-pkg_ensure-test () >{ > die "${FUNCNAME} was removed. Package mangers handle this already. #278965" >} >java-pkg_ensure-vm-version-eq () >{ > debug-print-function ${FUNCNAME} $*; > if ! java-pkg_is-vm-version-eq $@; then > debug-print "VM is not suffient"; > eerror "This package requires a Java VM version = $@"; > einfo "Please use java-config -S to set the correct one"; > die "Active Java VM too old"; > fi >} >java-pkg_ensure-vm-version-ge () >{ > debug-print-function ${FUNCNAME} $*; > if ! java-pkg_is-vm-version-ge "$@"; then > debug-print "vm is not suffient"; > eerror "This package requires a Java VM version >= $@"; > einfo "Please use java-config -S to set the correct one"; > die "Active Java VM too old"; > fi >} >java-pkg_ensure-vm-version-sufficient () >{ > debug-print-function ${FUNCNAME} $*; > if ! java-pkg_is-vm-version-sufficient; then > debug-print "VM is not suffient"; > eerror "Current Java VM cannot build this package"; > einfo "Please use java-config -S to set the correct one"; > die "Active Java VM cannot build this package"; > fi >} >java-pkg_expand_dir_ () >{ > pushd "$(dirname "${1}")" > /dev/null 2>&1; > pwd; > popd > /dev/null 2>&1 >} >java-pkg_filter-compiler () >{ > JAVA_PKG_FILTER_COMPILER="${JAVA_PKG_FILTER_COMPILER} $@" >} >java-pkg_find-normal-jars () >{ > local dir=$1; > [[ -n "${dir}" ]] || dir="${WORKDIR}"; > local found; > for jar in $(find "${dir}" -name "*.jar" -type f); > do > echo "${jar}"; > found="true"; > done; > [[ -n "${found}" ]]; > return $? >} >java-pkg_force-compiler () >{ > JAVA_PKG_FORCE_COMPILER="$@" >} >java-pkg_func-exists () >{ > declare -F ${1} > /dev/null >} >java-pkg_get-bootclasspath () >{ > local version="${1}"; > local bcp; > case "${version}" in > auto) > bcp="$(java-config -g BOOTCLASSPATH)" > ;; > 1.5) > bcp="$(java-pkg_getjars --build-only gnu-classpath-0.98)" > ;; > *) > eerror "unknown parameter of java-pkg_get-bootclasspath"; > die "unknown parameter of java-pkg_get-bootclasspath" > ;; > esac; > echo "${bcp}" >} >java-pkg_get-current-vm () >{ > java-config -f >} >java-pkg_get-javac () >{ > debug-print-function ${FUNCNAME} $*; > local compiler="${GENTOO_COMPILER}"; > local compiler_executable; > if [[ "${compiler}" = "javac" ]]; then > compiler_executable="javac"; > else > local compiler_env="/usr/share/java-config-2/compiler/${compiler}"; > if [[ -f ${compiler_env} ]]; then > local old_javac=${JAVAC}; > unset JAVAC; > compiler_executable="$(source ${compiler_env} 1>/dev/null 2>&1; echo ${JAVAC})"; > export JAVAC=${old_javac}; > if [[ -z ${compiler_executable} ]]; then > echo "JAVAC is empty or undefined in ${compiler_env}"; > return 1; > fi; > if [[ ! -x ${compiler_executable} ]]; then > echo "${compiler_executable} doesn't exist, or isn't executable"; > return 1; > fi; > else > echo "Could not find environment file for ${compiler}"; > return 1; > fi; > fi; > echo ${compiler_executable} >} >java-pkg_get-jni-cflags () >{ > local flags="-I${JAVA_HOME}/include"; > local platform="linux"; > use elibc_FreeBSD && platform="freebsd"; > flags="${flags} -I${JAVA_HOME}/include/${platform}"; > echo ${flags} >} >java-pkg_get-source () >{ > echo ${JAVA_PKG_WANT_SOURCE:-$(depend-java-query --get-lowest "${DEPEND} ${RDEPEND}")} >} >java-pkg_get-target () >{ > echo ${JAVA_PKG_WANT_TARGET:-$(depend-java-query --get-lowest "${DEPEND} ${RDEPEND}")} >} >java-pkg_get-vm-vendor () >{ > debug-print-function ${FUNCNAME} $*; > local vm="$(java-pkg_get-current-vm)"; > vm="${vm/-*/}"; > echo "${vm}" >} >java-pkg_get-vm-version () >{ > debug-print-function ${FUNCNAME} $*; > java-config -g PROVIDES_VERSION >} >java-pkg_getjar () >{ > debug-print-function ${FUNCNAME} $*; > local build_only=""; > local virtual=""; > local record_jar=""; > [[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"; > while [[ "${1}" == --* ]]; do > if [[ "${1}" = "--build-only" ]]; then > build_only="build"; > else > if [[ "${1}" == "--virtual" ]]; then > virtual="true"; > else > die "java-pkg_getjar called with unknown parameter: ${1}"; > fi; > fi; > shift; > done; > [[ ${#} -ne 2 ]] && die "${FUNCNAME} takes only two arguments besides --*"; > local pkg="${1}" target_jar="${2}" jar; > if [[ "${EAPI}" == "1" ]]; then > pkg="${pkg//:/-}"; > fi; > [[ -z ${pkg} ]] && die "Must specify package to get a jar from"; > [[ -z ${target_jar} ]] && die "Must specify jar to get"; > local error_msg="Could not find classpath for ${pkg}. Are you sure its installed?"; > local classpath; > classpath=$(java-config --classpath=${pkg}); > [[ $? != 0 ]] && die ${error_msg}; > java-pkg_ensure-dep "${build_only}" "${pkg}"; > if [[ -n "${virtual}" ]]; then > if [[ -z "${build_only}" ]]; then > java-pkg_record-jar_ "${pkg}"; > else > java-pkg_record-jar_ --build-only "${pkg}"; > fi; > record_jar="true"; > fi; > for jar in ${classpath//:/ }; > do > if [[ ! -f "${jar}" ]]; then > die "Installation problem with jar ${jar} in ${pkg} - is it installed?"; > fi; > if [[ "$(basename ${jar})" == "${target_jar}" ]]; then > if [[ -z "${record_jar}" ]]; then > if [[ -z "${build_only}" ]]; then > java-pkg_record-jar_ "${pkg}" "${jar}"; > else > java-pkg_record-jar_ --build-only "${pkg}" "${jar}"; > fi; > fi; > echo "${jar}"; > return 0; > fi; > done; > die "Could not find ${target_jar} in ${pkg}"; > return 1 >} >java-pkg_getjars () >{ > debug-print-function ${FUNCNAME} $*; > local build_only=""; > local deep=""; > [[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"; > while [[ "${1}" == --* ]]; do > if [[ "${1}" = "--build-only" ]]; then > build_only="build"; > else > if [[ "${1}" = "--with-dependencies" ]]; then > deep="--with-dependencies"; > else > die "java-pkg_jar-from called with unknown parameter: ${1}"; > fi; > fi; > shift; > done; > [[ ${#} -ne 1 ]] && die "${FUNCNAME} takes only one argument besides --*"; > local pkgs="${1}"; > if [[ "${EAPI}" == "1" ]]; then > pkgs="${pkgs//:/-}"; > fi; > jars="$(java-config ${deep} --classpath=${pkgs})"; > [[ $? != 0 ]] && die "java-config --classpath=${pkgs} failed"; > debug-print "${pkgs}:${jars}"; > for pkg in ${pkgs//,/ }; > do > java-pkg_ensure-dep "${build_only}" "${pkg}"; > done; > for pkg in ${pkgs//,/ }; > do > if [[ -z "${build_only}" ]]; then > java-pkg_record-jar_ "${pkg}"; > else > java-pkg_record-jar_ --build-only "${pkg}"; > fi; > done; > echo "${jars}" >} >java-pkg_init () >{ > debug-print-function ${FUNCNAME} $*; > [[ "${MERGE_TYPE}" == "binary" ]] && return; > has ${EAPI:-0} 0 1 2 3 && [[ "${EMERGE_FROM}" == "binary" ]] && return; > unset JAVAC; > unset JAVA_HOME; > java-config --help > /dev/null || { > eerror ""; > eerror "Can't run java-config --help"; > eerror "Have you upgraded python recently but haven't"; > eerror "run python-updater yet?"; > die "Can't run java-config --help" > }; > local silence="${SILENCE_JAVA_OPTIONS_WARNING}"; > local accept="${I_WANT_GLOBAL_JAVA_OPTIONS}"; > if [[ -n ${_JAVA_OPTIONS} && -z ${accept} && -z ${silence} ]]; then > ewarn "_JAVA_OPTIONS changes what java -version outputs at least for"; > ewarn "sun-jdk vms and and as such break configure scripts that"; > ewarn "use it (for example app-office/openoffice) so we filter it out."; > ewarn "Use SILENCE_JAVA_OPTIONS_WARNING=true in the environment (use"; > ewarn "make.conf for example) to silence this warning or"; > ewarn "I_WANT_GLOBAL_JAVA_OPTIONS to not filter it."; > fi; > if [[ -z ${accept} ]]; then > unset _JAVA_OPTIONS; > I_WANT_GLOBAL_JAVA_OPTIONS="true"; > fi; > if java-pkg_func-exists ant_src_unpack; then > java-pkg_announce-qa-violation "Using old ant_src_unpack. Should be src_unpack"; > fi; > java-pkg_init_paths_; > java-pkg_switch-vm; > PATH=${JAVA_HOME}/bin:${PATH}; > java-pkg_check-jikes; > export CLASSPATH=; > export ANT_TASKS=; > export ANT_OPTS=; > export ANT_RESPECT_JAVA_HOME= >} >java-pkg_init-compiler_ () >{ > debug-print-function ${FUNCNAME} $*; > if [[ -n ${GENTOO_COMPILER} ]]; then > debug-print "GENTOO_COMPILER already set"; > return; > fi; > local compilers; > if [[ -z ${JAVA_PKG_FORCE_COMPILER} ]]; then > compilers="$(source ${JAVA_PKG_COMPILERS_CONF} 1>/dev/null 2>&1; echo ${COMPILERS})"; > else > compilers=${JAVA_PKG_FORCE_COMPILER}; > fi; > debug-print "Read \"${compilers}\" from ${JAVA_PKG_COMPILERS_CONF}"; > local compiler; > for compiler in ${compilers}; > do > debug-print "Checking ${compiler}..."; > if [[ ${compiler} = "javac" ]]; then > debug-print "Found javac... breaking"; > export GENTOO_COMPILER="javac"; > break; > fi; > if has ${compiler} ${JAVA_PKG_FILTER_COMPILER}; then > if [[ -z ${JAVA_PKG_FORCE_COMPILER} ]]; then > einfo "Filtering ${compiler}"; > continue; > fi; > fi; > local compiler_env="${JAVA_PKG_COMPILER_DIR}/${compiler}"; > if [[ -f ${compiler_env} ]]; then > local desired_target="$(java-pkg_get-target)"; > local desired_source="$(java-pkg_get-source)"; > local supported_target=$(source ${compiler_env} 1>/dev/null 2>&1; echo ${SUPPORTED_TARGET}); > if ! has ${desired_target} ${supported_target}; then > ewarn "${compiler} does not support -target ${desired_target}, skipping"; > continue; > fi; > if version_is_at_least "${desired_soure}" "1.3"; then > local supported_source=$(source ${compiler_env} 1>/dev/null 2>&1; echo ${SUPPORTED_SOURCE}); > if ! has ${desired_source} ${supported_source}; then > ewarn "${compiler} does not support -source ${desired_source}, skipping"; > continue; > fi; > fi; > export GENTOO_COMPILER="${compiler}"; > break; > else > ewarn "Could not find configuration for ${compiler}, skipping"; > ewarn "Perhaps it is not installed?"; > continue; > fi; > done; > if [[ -z ${GENTOO_COMPILER} ]]; then > if [[ -n ${compilers} ]]; then > einfo "No suitable compiler found: defaulting to JDK default for compilation"; > else > :; > fi; > if java-config -g GENTOO_COMPILER 2> /dev/null; then > export GENTOO_COMPILER=$(java-config -g GENTOO_COMPILER); > else > export GENTOO_COMPILER=javac; > fi; > else > einfo "Using ${GENTOO_COMPILER} for compilation"; > fi >} >java-pkg_init_paths_ () >{ > debug-print-function ${FUNCNAME} $*; > local pkg_name; > if [[ "${SLOT%/*}" == "0" ]]; then > JAVA_PKG_NAME="${PN}"; > else > JAVA_PKG_NAME="${PN}-${SLOT%/*}"; > fi; > JAVA_PKG_SHAREPATH="${DESTTREE}/share/${JAVA_PKG_NAME}"; > JAVA_PKG_SOURCESPATH="${JAVA_PKG_SHAREPATH}/sources/"; > JAVA_PKG_ENV="${D}${JAVA_PKG_SHAREPATH}/package.env"; > JAVA_PKG_VIRTUALS_PATH="${DESTTREE}/share/java-config-2/virtuals"; > JAVA_PKG_VIRTUAL_PROVIDER="${D}/${JAVA_PKG_VIRTUALS_PATH}/${JAVA_PKG_NAME}"; > [[ -z "${JAVA_PKG_JARDEST}" ]] && JAVA_PKG_JARDEST="${JAVA_PKG_SHAREPATH}/lib"; > [[ -z "${JAVA_PKG_LIBDEST}" ]] && JAVA_PKG_LIBDEST="${DESTTREE}/$(get_libdir)/${JAVA_PKG_NAME}"; > [[ -z "${JAVA_PKG_WARDEST}" ]] && JAVA_PKG_WARDEST="${JAVA_PKG_SHAREPATH}/webapps"; > debug-print "JAVA_PKG_SHAREPATH: ${JAVA_PKG_SHAREPATH}"; > debug-print "JAVA_PKG_ENV: ${JAVA_PKG_ENV}"; > debug-print "JAVA_PKG_JARDEST: ${JAVA_PKG_JARDEST}"; > debug-print "JAVA_PKG_LIBDEST: ${JAVA_PKG_LIBDEST}"; > debug-print "JAVA_PKG_WARDEST: ${JAVA_PKG_WARDEST}" >} >java-pkg_is-vm-version-eq () >{ > debug-print-function ${FUNCNAME} $*; > local needed_version="$@"; > [[ -z "${needed_version}" ]] && die "need an argument"; > local vm_version="$(java-pkg_get-vm-version)"; > vm_version="$(get_version_component_range 1-2 "${vm_version}")"; > needed_version="$(get_version_component_range 1-2 "${needed_version}")"; > if [[ -z "${vm_version}" ]]; then > debug-print "Could not get JDK version from DEPEND"; > return 1; > else > if [[ "${vm_version}" == "${needed_version}" ]]; then > debug-print "Detected a JDK(${vm_version}) = ${needed_version}"; > return 0; > else > debug-print "Detected a JDK(${vm_version}) != ${needed_version}"; > return 1; > fi; > fi >} >java-pkg_is-vm-version-ge () >{ > debug-print-function ${FUNCNAME} $*; > local needed_version=$@; > local vm_version=$(java-pkg_get-vm-version); > if [[ -z "${vm_version}" ]]; then > debug-print "Could not get JDK version from DEPEND"; > return 1; > else > if version_is_at_least "${needed_version}" "${vm_version}"; then > debug-print "Detected a JDK(${vm_version}) >= ${needed_version}"; > return 0; > else > debug-print "Detected a JDK(${vm_version}) < ${needed_version}"; > return 1; > fi; > fi >} >java-pkg_is-vm-version-sufficient () >{ > debug-print-function ${FUNCNAME} $*; > depend-java-query --is-sufficient "${DEPEND}" > /dev/null; > return $? >} >java-pkg_jar-from () >{ > debug-print-function ${FUNCNAME} $*; > local build_only=""; > local destdir="."; > local deep=""; > local virtual=""; > local record_jar=""; > [[ "${EBUILD_PHASE}" == "test" ]] && build_only="build"; > while [[ "${1}" == --* ]]; do > if [[ "${1}" = "--build-only" ]]; then > build_only="build"; > else > if [[ "${1}" = "--with-dependencies" ]]; then > deep="--with-dependencies"; > else > if [[ "${1}" = "--virtual" ]]; then > virtual="true"; > else > if [[ "${1}" = "--into" ]]; then > destdir="${2}"; > shift; > else > die "java-pkg_jar-from called with unknown parameter: ${1}"; > fi; > fi; > fi; > fi; > shift; > done; > local target_pkg="${1}" target_jar="${2}" destjar="${3}"; > [[ -z ${target_pkg} ]] && die "Must specify a package"; > if [[ "${EAPI}" == "1" ]]; then > target_pkg="${target_pkg//:/-}"; > fi; > [[ -z "${destjar}" ]] && destjar="${target_jar}"; > local error_msg="There was a problem getting the classpath for ${target_pkg}."; > local classpath; > classpath="$(java-config ${deep} --classpath=${target_pkg})"; > [[ $? != 0 ]] && die ${error_msg}; > if [[ ${target_pkg} = *,* ]]; then > for pkg in ${target_pkg//,/ }; > do > java-pkg_ensure-dep "${build_only}" "${pkg}"; > [[ -z "${build_only}" ]] && java-pkg_record-jar_ "${pkg}"; > done; > record_jar="true"; > else > java-pkg_ensure-dep "${build_only}" "${target_pkg}"; > fi; > if [[ -z "${build_only}" && -n "${virtual}" ]]; then > java-pkg_record-jar_ "${target_pkg}"; > record_jar="true"; > fi; > pushd ${destdir} > /dev/null || die "failed to change directory to ${destdir}"; > local jar; > for jar in ${classpath//:/ }; > do > local jar_name=$(basename "${jar}"); > if [[ ! -f "${jar}" ]]; then > debug-print "${jar} from ${target_pkg} does not exist"; > die "Installation problems with jars in ${target_pkg} - is it installed?"; > fi; > if [[ -z "${target_jar}" ]]; then > [[ -f "${target_jar}" ]] && rm "${target_jar}"; > ln -snf "${jar}" || die "Failed to make symlink from ${jar} to ${jar_name}"; > if [[ -z "${record_jar}" ]]; then > if [[ -z "${build_only}" ]]; then > java-pkg_record-jar_ "${target_pkg}" "${jar}"; > else > java-pkg_record-jar_ --build-only "${target_pkg}" "${jar}"; > fi; > fi; > else > if [[ "${jar_name}" == "${target_jar}" ]]; then > [[ -f "${destjar}" ]] && rm "${destjar}"; > ln -snf "${jar}" "${destjar}" || die "Failed to make symlink from ${jar} to ${destjar}"; > if [[ -z "${record_jar}" ]]; then > if [[ -z "${build_only}" ]]; then > java-pkg_record-jar_ "${target_pkg}" "${jar}"; > else > java-pkg_record-jar_ --build-only "${target_jar}" "${jar}"; > fi; > fi; > popd > /dev/null; > return 0; > fi; > fi; > done; > popd > /dev/null; > if [[ -z "${target_jar}" ]]; then > return 0; > else > die "Failed to find ${target_jar:-jar} in ${target_pkg}"; > fi >} >java-pkg_jar-list () >{ > if [[ -n "${JAVA_PKG_DEBUG}" ]]; then > einfo "Linked Jars"; > find "${S}" -type l -name '*.jar' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"; > einfo "Jars"; > find "${S}" -type f -name '*.jar' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"; > einfo "Classes"; > find "${S}" -type f -name '*.class' -print0 | xargs -0 -r -n 500 ls -ald | sed -e "s,${WORKDIR},\${WORKDIR},"; > fi >} >java-pkg_jarfrom () >{ > java-pkg_jar-from "$@" >} >java-pkg_jarinto () >{ > debug-print-function ${FUNCNAME} $*; > JAVA_PKG_JARDEST="${1}" >} >java-pkg_javac-args () >{ > debug-print-function ${FUNCNAME} $*; > local want_source="$(java-pkg_get-source)"; > local want_target="$(java-pkg_get-target)"; > local source_str="-source ${want_source}"; > local target_str="-target ${want_target}"; > debug-print "want source: ${want_source}"; > debug-print "want target: ${want_target}"; > if [[ -z "${want_source}" || -z "${want_target}" ]]; then > debug-print "could not find valid -source/-target values for javac"; > echo "Could not find valid -source/-target values for javac"; > return 1; > else > if java-pkg_is-vm-version-ge "1.4"; then > echo "${source_str} ${target_str}"; > else > echo "${target_str}"; > fi; > fi >} >java-pkg_needs-vm () >{ > debug-print-function ${FUNCNAME} $*; > if [[ -n "$(echo ${JAVA_PKG_NV_DEPEND:-${DEPEND}} | sed -e '\:virtual/jdk:!d')" ]]; then > return 0; > fi; > [[ -n "${JAVA_PKG_WANT_BUILD_VM}" ]] && return 0; > return 1 >} >java-pkg_newjar () >{ > debug-print-function ${FUNCNAME} $*; > local original_jar="${1}"; > local new_jar="${2:-${PN}.jar}"; > local new_jar_dest="${T}/${new_jar}"; > [[ -z ${original_jar} ]] && die "Must specify a jar to install"; > [[ ! -f ${original_jar} ]] && die "${original_jar} does not exist or is not a file!"; > rm -f "${new_jar_dest}" || die "Failed to remove ${new_jar_dest}"; > cp "${original_jar}" "${new_jar_dest}" || die "Failed to copy ${original_jar} to ${new_jar_dest}"; > java-pkg_dojar "${new_jar_dest}" >} >java-pkg_record-jar_ () >{ > debug-print-function ${FUNCNAME} $*; > local depend_file="${JAVA_PKG_DEPEND_FILE}"; > case "${1}" in > "--optional") > depend_file="${JAVA_PKG_OPTIONAL_DEPEND_FILE}"; > shift > ;; > "--build-only") > depend_file="${JAVA_PKG_BUILD_DEPEND_FILE}"; > shift > ;; > esac; > local pkg=${1} jar=${2} append; > if [[ -z "${jar}" ]]; then > append="${pkg}"; > else > append="$(basename ${jar})@${pkg}"; > fi; > echo "${append}" >> "${depend_file}" >} >java-pkg_recordjavadoc () >{ > debug-print-function ${FUNCNAME} $*; > JAVADOC_PATH="$(find ${D}/usr/share/doc/ -name allclasses-frame.html -printf '%h:')"; > JAVADOC_PATH="${JAVADOC_PATH//${D}}"; > if [[ -n "${JAVADOC_PATH}" ]]; then > debug-print "javadocs found in ${JAVADOC_PATH%:}"; > java-pkg_do_write_; > else > debug-print "No javadocs found"; > fi >} >java-pkg_register-ant-task () >{ > local TASKS_DIR="tasks"; > while [[ -n "${1}" && -n "${2}" ]]; do > local var="${1#--}"; > local val="${2}"; > if [[ "${var}" == "version" ]]; then > TASKS_DIR="tasks-${val}"; > else > die "Unknown parameter passed to java-pkg_register-ant-tasks: ${1} ${2}"; > fi; > shift 2; > done; > local TASK_NAME="${1:-${JAVA_PKG_NAME}}"; > dodir /usr/share/ant/${TASKS_DIR}; > touch "${D}/usr/share/ant/${TASKS_DIR}/${TASK_NAME}" >} >java-pkg_register-dependency () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} -gt 2 ]] && die "${FUNCNAME} takes at most two arguments"; > local pkgs="${1}"; > local jar="${2}"; > [[ -z "${pkgs}" ]] && die "${FUNCNAME} called with no package(s) specified"; > if [[ "${EAPI}" == "1" ]]; then > pkgs="${pkgs//:/-}"; > fi; > if [[ -z "${jar}" ]]; then > for pkg in ${pkgs//,/ }; > do > java-pkg_ensure-dep runtime "${pkg}"; > java-pkg_record-jar_ "${pkg}"; > done; > else > [[ ${pkgs} == *,* ]] && die "${FUNCNAME} called with both package list and jar name"; > java-pkg_ensure-dep runtime "${pkgs}"; > java-pkg_record-jar_ "${pkgs}" "${jar}"; > fi; > java-pkg_do_write_ >} >java-pkg_register-environment-variable () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} != 2 ]] && die "${FUNCNAME} takes two arguments"; > echo "${1}=\"${2}\"" >> ${JAVA_PKG_EXTRA_ENV}; > JAVA_PKG_EXTRA_ENV_VARS="${JAVA_PKG_EXTRA_ENV_VARS} ${1}"; > java-pkg_do_write_ >} >java-pkg_register-optional-dependency () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} -gt 2 ]] && die "${FUNCNAME} takes at most two arguments"; > local pkgs="${1}"; > local jar="${2}"; > [[ -z "${pkgs}" ]] && die "${FUNCNAME} called with no package(s) specified"; > if [[ "${EAPI}" == "1" ]]; then > pkgs="${pkgs//:/-}"; > fi; > if [[ -z "${jar}" ]]; then > for pkg in ${pkgs//,/ }; > do > java-pkg_record-jar_ --optional "${pkg}"; > done; > else > [[ ${pkgs} == *,* ]] && die "${FUNCNAME} called with both package list and jar name"; > java-pkg_record-jar_ --optional "${pkgs}" "${jar}"; > fi; > java-pkg_do_write_ >} >java-pkg_regjar () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} -lt 1 ]] && die "at least one argument needed"; > java-pkg_init_paths_; > local jar jar_dir jar_file; > for jar in "${@}"; > do > if [[ -e "${jar}" || -e "${D}${jar}" ]]; then > [[ -d "${jar}" || -d "${D}${jar}" ]] && die "Called ${FUNCNAME} on a directory $*"; > is-java-strict && java-pkg_verify-classes "${jar}"; > java-pkg_append_ JAVA_PKG_CLASSPATH "${jar#${D}}"; > else > if [[ ${jar} = *\** ]]; then > eerror "The argument ${jar} to ${FUNCNAME}"; > eerror "has * in it. If you want it to glob in"; > eerror '${D} add ${D} to the argument.'; > fi; > debug-print "${jar} or ${D}${jar} not found"; > die "${jar} does not exist"; > fi; > done; > java-pkg_do_write_ >} >java-pkg_regso () >{ > debug-print-function ${FUNCNAME} $*; > java-pkg_check-phase install; > [[ ${#} -lt 1 ]] && die "${FUNCNAME} requires at least one argument"; > java-pkg_init_paths_; > local lib target_dir; > for lib in "$@"; > do > if [[ -e "${lib}" ]]; then > target_dir="$(java-pkg_expand_dir_ ${lib})"; > java-pkg_append_ JAVA_PKG_LIBRARY "/${target_dir#${D}}"; > else > if [[ -e "${D}${lib}" ]]; then > target_dir="$(java-pkg_expand_dir_ ${D}${lib})"; > java-pkg_append_ JAVA_PKG_LIBRARY "${target_dir}"; > else > die "${lib} does not exist"; > fi; > fi; > done; > java-pkg_do_write_ >} >java-pkg_set-current-vm () >{ > export GENTOO_VM=${1} >} >java-pkg_setup-vm () >{ > debug-print-function ${FUNCNAME} $*; > local vendor="$(java-pkg_get-vm-vendor)"; > if [[ "${vendor}" == "sun" ]] && java-pkg_is-vm-version-ge "1.5"; then > addpredict "/dev/random"; > else > if [[ "${vendor}" == "ibm" ]]; then > addpredict "/proc/self/maps"; > addpredict "/proc/cpuinfo"; > addpredict "/proc/self/coredump_filter"; > else > if [[ "${vendor}" == "oracle" ]]; then > addpredict "/dev/random"; > addpredict "/proc/self/coredump_filter"; > else > if [[ "${vendor}" == icedtea* ]] && java-pkg_is-vm-version-ge "1.7"; then > addpredict "/dev/random"; > addpredict "/proc/self/coredump_filter"; > else > if [[ "${vendor}" == "jrockit" ]]; then > addpredict "/proc/cpuinfo"; > fi; > fi; > fi; > fi; > fi >} >java-pkg_sointo () >{ > debug-print-function ${FUNCNAME} $*; > JAVA_PKG_LIBDEST="${1}" >} >java-pkg_switch-vm () >{ > debug-print-function ${FUNCNAME} $*; > if java-pkg_needs-vm; then > if [[ -n "${JAVA_PKG_FORCE_VM}" ]]; then > debug-print "JAVA_PKG_FORCE_VM used: ${JAVA_PKG_FORCE_VM}"; > export GENTOO_VM="${JAVA_PKG_FORCE_VM}"; > else > if [[ "${JAVA_PKG_ALLOW_VM_CHANGE}" == "yes" ]]; then > if [[ -n "${JAVA_PKG_WANT_BUILD_VM}" ]]; then > debug-print "JAVA_PKG_WANT_BUILD_VM used: ${JAVA_PKG_WANT_BUILD_VM}"; > GENTOO_VM=$(java-pkg_build-vm-from-handle); > if [[ $? != 0 ]]; then > eerror "${FUNCNAME}: No VM found for handles: ${JAVA_PKG_WANT_BUILD_VM}"; > die "${FUNCNAME}: Failed to determine VM for building"; > fi; > if [[ -z "${JAVA_PKG_WANT_SOURCE}" ]]; then > eerror "JAVA_PKG_WANT_BUILD_VM specified but not JAVA_PKG_WANT_SOURCE"; > die "Specify JAVA_PKG_WANT_SOURCE"; > fi; > if [[ -z "${JAVA_PKG_WANT_TARGET}" ]]; then > eerror "JAVA_PKG_WANT_BUILD_VM specified but not JAVA_PKG_WANT_TARGET"; > die "Specify JAVA_PKG_WANT_TARGET"; > fi; > else > debug-print "depend-java-query: NV_DEPEND: ${JAVA_PKG_NV_DEPEND:-${DEPEND}}"; > GENTOO_VM="$(depend-java-query --get-vm "${JAVA_PKG_NV_DEPEND:-${DEPEND}}")"; > if [[ -z "${GENTOO_VM}" || "${GENTOO_VM}" == "None" ]]; then > eerror "Unable to determine VM for building from dependencies:"; > echo "NV_DEPEND: ${JAVA_PKG_NV_DEPEND:-${DEPEND}}"; > die "Failed to determine VM for building."; > fi; > fi; > export GENTOO_VM; > else > java-pkg_ensure-vm-version-sufficient; > fi; > fi; > debug-print "Using: $(java-config -f)"; > java-pkg_setup-vm; > export JAVA=$(java-config --java); > export JAVAC=$(java-config --javac); > JAVACFLAGS="$(java-pkg_javac-args)"; > if [[ ${?} != 0 ]]; then > eerror "There was a problem determining JAVACFLAGS: ${JAVACFLAGS}"; > die "java-pkg_javac-args failed"; > fi; > [[ -n ${JAVACFLAGS_EXTRA} ]] && JAVACFLAGS="${JAVACFLAGS_EXTRA} ${JAVACFLAGS}"; > export JAVACFLAGS; > export JAVA_HOME="$(java-config -g JAVA_HOME)"; > export JDK_HOME=${JAVA_HOME}; > java-pkg_append_ LD_LIBRARY_PATH "$(java-config -g LDPATH)"; > local tann="${T}/announced-vm"; > if [[ -n "${JAVA_PKG_DEBUG}" ]] || [[ ! -f "${tann}" ]]; then > einfo "Using: $(java-config -f)"; > [[ ! -f "${tann}" ]] && touch "${tann}"; > fi; > else > [[ -n "${JAVA_PKG_DEBUG}" ]] && ewarn "!!! This package inherits java-pkg but doesn't depend on a JDK. -bin or broken dependency!!!"; > fi >} >java-pkg_verify-classes () >{ > local version_verify="/usr/bin/class-version-verify.py"; > if [[ ! -x "${version_verify}" ]]; then > version_verify="/usr/$(get_libdir)/javatoolkit/bin/class-version-verify.py"; > fi; > if [[ ! -x "${version_verify}" ]]; then > ewarn "Unable to perform class version checks as"; > ewarn "class-version-verify.py is unavailable"; > ewarn "Please install dev-java/javatoolkit."; > return; > fi; > local target=$(java-pkg_get-target); > local result; > local log="${T}/class-version-verify.log"; > if [[ -n "${1}" ]]; then > ${version_verify} -v -t ${target} "${1}" > "${log}"; > result=$?; > else > ebegin "Verifying java class versions (target: ${target})"; > ${version_verify} -v -t ${target} -r "${D}" > "${log}"; > result=$?; > eend ${result}; > fi; > [[ -n ${JAVA_PKG_DEBUG} ]] && cat "${log}"; > if [[ ${result} != 0 ]]; then > eerror "Incorrect bytecode version found"; > [[ -n "${1}" ]] && eerror "in file: ${1}"; > eerror "See ${log} for more details."; > die "Incorrect bytecode found"; > fi >} >java-utils-2_pkg_preinst () >{ > if is-java-strict; then > if has_version dev-java/java-dep-check; then > [[ -e "${JAVA_PKG_ENV}" ]] || return; > local output=$(GENTOO_VM= java-dep-check --image "${D}" "${JAVA_PKG_ENV}"); > if [[ -n ${output} && has_version < =dev-java/java-dep-check-0.2 ]]; then > ewarn "Possibly unneeded dependencies found in package.env:"; > for dep in ${output}; > do > ewarn "\t${dep}"; > done; > fi; > if [[ -n ${output} && has_version > dev-java/java-dep-check-0.2 ]]; then > ewarn "${output}"; > fi; > else > eerror "Install dev-java/java-dep-check for dependency checking"; > fi; > fi >} >java-utils-2_src_prepare () >{ > [[ ${EBUILD_PHASE} == prepare ]] && java-pkg_func-exists java_prepare && java_prepare; > if [[ ! -e "${T}/java-utils-2_src_prepare-run" ]] && is-java-strict; then > echo "Searching for bundled jars:"; > java-pkg_find-normal-jars || echo "None found."; > echo "Searching for bundled classes (no output if none found):"; > find "${WORKDIR}" -name "*.class"; > echo "Search done."; > fi; > touch "${T}/java-utils-2_src_prepare-run" >} >make_desktop_entry () >{ > [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable"; > local exec=${1}; > local name=${2:-${PN}}; > local icon=${3:-${PN}}; > local type=${4}; > local fields=${5}; > if [[ -z ${type} ]]; then > local catmaj=${CATEGORY%%-*}; > local catmin=${CATEGORY##*-}; > case ${catmaj} in > app) > case ${catmin} in > accessibility) > type="Utility;Accessibility" > ;; > admin) > type=System > ;; > antivirus) > type=System > ;; > arch) > type="Utility;Archiving" > ;; > backup) > type="Utility;Archiving" > ;; > cdr) > type="AudioVideo;DiscBurning" > ;; > dicts) > type="Office;Dictionary" > ;; > doc) > type=Documentation > ;; > editors) > type="Utility;TextEditor" > ;; > emacs) > type="Development;TextEditor" > ;; > emulation) > type="System;Emulator" > ;; > laptop) > type="Settings;HardwareSettings" > ;; > office) > type=Office > ;; > pda) > type="Office;PDA" > ;; > vim) > type="Development;TextEditor" > ;; > xemacs) > type="Development;TextEditor" > ;; > esac > ;; > dev) > type="Development" > ;; > games) > case ${catmin} in > action | fps) > type=ActionGame > ;; > arcade) > type=ArcadeGame > ;; > board) > type=BoardGame > ;; > emulation) > type=Emulator > ;; > kids) > type=KidsGame > ;; > puzzle) > type=LogicGame > ;; > roguelike) > type=RolePlaying > ;; > rpg) > type=RolePlaying > ;; > simulation) > type=Simulation > ;; > sports) > type=SportsGame > ;; > strategy) > type=StrategyGame > ;; > esac; > type="Game;${type}" > ;; > gnome) > type="Gnome;GTK" > ;; > kde) > type="KDE;Qt" > ;; > mail) > type="Network;Email" > ;; > media) > case ${catmin} in > gfx) > type=Graphics > ;; > *) > case ${catmin} in > radio) > type=Tuner > ;; > sound) > type=Audio > ;; > tv) > type=TV > ;; > video) > type=Video > ;; > esac; > type="AudioVideo;${type}" > ;; > esac > ;; > net) > case ${catmin} in > dialup) > type=Dialup > ;; > ftp) > type=FileTransfer > ;; > im) > type=InstantMessaging > ;; > irc) > type=IRCClient > ;; > mail) > type=Email > ;; > news) > type=News > ;; > nntp) > type=News > ;; > p2p) > type=FileTransfer > ;; > voip) > type=Telephony > ;; > esac; > type="Network;${type}" > ;; > sci) > case ${catmin} in > astro*) > type=Astronomy > ;; > bio*) > type=Biology > ;; > calc*) > type=Calculator > ;; > chem*) > type=Chemistry > ;; > elec*) > type=Electronics > ;; > geo*) > type=Geology > ;; > math*) > type=Math > ;; > physics) > type=Physics > ;; > visual*) > type=DataVisualization > ;; > esac; > type="Education;Science;${type}" > ;; > sys) > type="System" > ;; > www) > case ${catmin} in > client) > type=WebBrowser > ;; > esac; > type="Network;${type}" > ;; > *) > type= > ;; > esac; > fi; > if [ "${SLOT}" == "0" ]; then > local desktop_name="${PN}"; > else > local desktop_name="${PN}-${SLOT}"; > fi; > local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; > type=${type%;}${type:+;}; > eshopts_push -s extglob; > if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then > ewarn "As described in the Icon Theme Specification, icon file extensions are not"; > ewarn "allowed in .desktop files if the value is not an absolute path."; > icon=${icon%.@(xpm|png|svg)}; > fi; > eshopts_pop; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Name=${name} >Type=Application >Comment=${DESCRIPTION} >Exec=${exec} >TryExec=${exec%% *} >Icon=${icon} >Categories=${type} >EOF > > if [[ ${fields:-=} != *=* ]]; then > ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"; > fields="Path=${fields}"; > fi; > [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}"; > ( insinto /usr/share/applications; > doins "${desktop}" ) || die "installing desktop file failed" >} >make_session_desktop () >{ > [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1; > [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1; > local title=$1; > local command=$2; > local desktop=${T}/${wm:-${PN}}.desktop; > shift 2; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Name=${title} >Comment=This session logs you into ${title} >Exec=${command} $* >TryExec=${command} >Type=XSession >EOF > > ( insinto /usr/share/xsessions; > doins "${desktop}" ) >} >make_wrapper () >{ > _eutils_eprefix_init; > local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; > local tmpwrapper=$(emktemp); > ( echo '#!/bin/sh'; > [[ -n ${chdir} ]] && printf 'cd "%s"\n' "${EPREFIX}${chdir}"; > if [[ -n ${libdir} ]]; then > local var; > if [[ ${CHOST} == *-darwin* ]]; then > var=DYLD_LIBRARY_PATH; > else > var=LD_LIBRARY_PATH; > fi; > cat <<-EOF >if [ "\${${var}+set}" = "set" ] ; then >export ${var}="\${${var}}:${EPREFIX}${libdir}" >else >export ${var}="${EPREFIX}${libdir}" >fi >EOF > > fi > printf 'exec %s "$@"\n' "${bin/#\//${EPREFIX}\/}" ) > "${tmpwrapper}"; > chmod go+rx "${tmpwrapper}"; > if [[ -n ${path} ]]; then > ( exeinto "${path}"; > newexe "${tmpwrapper}" "${wrapper}" ) || die; > else > newbin "${tmpwrapper}" "${wrapper}" || die; > fi >} >makeopts_jobs () >{ > [[ $# -eq 0 ]] && set -- ${MAKEOPTS}; > local jobs=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' -e 's:.*[[:space:]](-j|--jobs)[[:space:]].*:999:p'); > echo ${jobs:-1} >} >makeopts_loadavg () >{ > [[ $# -eq 0 ]] && set -- ${MAKEOPTS}; > local lavg=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-l|--load-average[=[:space:]])[[:space:]]*([0-9]+|[0-9]+\.[0-9]+)[^0-9.]*:\2:p' -e 's:.*[[:space:]](-l|--load-average)[[:space:]].*:999:p'); > echo ${lavg:-1} >} >multijob_child_init () >{ > local mode="pre"; > case $1 in > --pre) > mode="pre"; > shift > ;; > --post) > mode="post"; > shift > ;; > esac; > if [[ $# -eq 0 ]]; then > trap 'echo ${BASHPID:-$(bashpid)} $? >&'${mj_write_fd} EXIT; > trap 'exit 1' INT TERM; > else > local ret; > [[ ${mode} == "pre" ]] && { > multijob_pre_fork; > ret=$? > }; > ( multijob_child_init; > "$@" ) & [[ ${mode} == "post" ]] && { > multijob_post_fork; > ret=$? > }; > return ${ret}; > fi >} >multijob_finish () >{ > local ret=0; > while [[ ${mj_num_jobs} -gt 0 ]]; do > multijob_finish_one; > : $(( ret |= $? )); > done; > wait; > [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments"; > EBUILD_DEATH_HOOKS=${EBUILD_DEATH_HOOKS/ wait / }; > return ${ret} >} >multijob_finish_one () >{ > [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments"; > local pid ret; > read -r -u ${mj_read_fd} pid ret || die; > : $(( --mj_num_jobs )); > return ${ret} >} >multijob_init () >{ > has wait ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" wait "; > local pipe="${T}/multijob.pipe"; > mkfifo -m 600 "${pipe}"; > redirect_alloc_fd mj_write_fd "${pipe}"; > redirect_alloc_fd mj_read_fd "${pipe}"; > rm -f "${pipe}"; > mj_max_jobs=$(makeopts_jobs "$@"); > mj_num_jobs=0 >} >multijob_post_fork () >{ > _multijob_fork post "$@" >} >multijob_pre_fork () >{ > _multijob_fork pre "$@" >} >multilib_env () >{ > local CTARGET=${1:-${CTARGET}}; > case ${CTARGET} in > x86_64*) > export CFLAGS_x86=${CFLAGS_x86--m32}; > export CHOST_x86=${CTARGET/x86_64/i686}; > CHOST_x86=${CHOST_x86/%-gnux32/-gnu}; > export CTARGET_x86=${CHOST_x86}; > if [[ ${SYMLINK_LIB} == "yes" ]]; then > export LIBDIR_x86="lib32"; > else > export LIBDIR_x86="lib"; > fi; > export CFLAGS_amd64=${CFLAGS_amd64--m64}; > export CHOST_amd64=${CTARGET/%-gnux32/-gnu}; > export CTARGET_amd64=${CHOST_amd64}; > export LIBDIR_amd64="lib64"; > export CFLAGS_x32=${CFLAGS_x32--mx32}; > export CHOST_x32=${CTARGET/%-gnu/-gnux32}; > export CTARGET_x32=${CHOST_x32}; > export LIBDIR_x32="libx32"; > case ${CTARGET} in > *-gnux32) > : ${MULTILIB_ABIS=x32 amd64 x86}; > : ${DEFAULT_ABI=x32} > ;; > *) > : ${MULTILIB_ABIS=amd64 x86}; > : ${DEFAULT_ABI=amd64} > ;; > esac > ;; > mips64*) > export CFLAGS_o32=${CFLAGS_o32--mabi=32}; > export CHOST_o32=${CTARGET/mips64/mips}; > export CTARGET_o32=${CHOST_o32}; > export LIBDIR_o32="lib"; > export CFLAGS_n32=${CFLAGS_n32--mabi=n32}; > export CHOST_n32=${CTARGET}; > export CTARGET_n32=${CHOST_n32}; > export LIBDIR_n32="lib32"; > export CFLAGS_n64=${CFLAGS_n64--mabi=64}; > export CHOST_n64=${CTARGET}; > export CTARGET_n64=${CHOST_n64}; > export LIBDIR_n64="lib64"; > : ${MULTILIB_ABIS=n64 n32 o32}; > : ${DEFAULT_ABI=n32} > ;; > powerpc64*) > export CFLAGS_ppc=${CFLAGS_ppc--m32}; > export CHOST_ppc=${CTARGET/powerpc64/powerpc}; > export CTARGET_ppc=${CHOST_ppc}; > export LIBDIR_ppc="lib"; > export CFLAGS_ppc64=${CFLAGS_ppc64--m64}; > export CHOST_ppc64=${CTARGET}; > export CTARGET_ppc64=${CHOST_ppc64}; > export LIBDIR_ppc64="lib64"; > : ${MULTILIB_ABIS=ppc64 ppc}; > : ${DEFAULT_ABI=ppc64} > ;; > s390x*) > export CFLAGS_s390=${CFLAGS_s390--m31}; > export CHOST_s390=${CTARGET/s390x/s390}; > export CTARGET_s390=${CHOST_s390}; > export LIBDIR_s390="lib"; > export CFLAGS_s390x=${CFLAGS_s390x--m64}; > export CHOST_s390x=${CTARGET}; > export CTARGET_s390x=${CHOST_s390x}; > export LIBDIR_s390x="lib64"; > : ${MULTILIB_ABIS=s390x s390}; > : ${DEFAULT_ABI=s390x} > ;; > sparc64*) > export CFLAGS_sparc32=${CFLAGS_sparc32--m32}; > export CHOST_sparc32=${CTARGET/sparc64/sparc}; > export CTARGET_sparc32=${CHOST_sparc32}; > export LIBDIR_sparc32="lib"; > export CFLAGS_sparc64=${CFLAGS_sparc64--m64}; > export CHOST_sparc64=${CTARGET}; > export CTARGET_sparc64=${CHOST_sparc64}; > export LIBDIR_sparc64="lib64"; > : ${MULTILIB_ABIS=sparc64 sparc32}; > : ${DEFAULT_ABI=sparc64} > ;; > *) > : ${MULTILIB_ABIS=default}; > : ${DEFAULT_ABI=default} > ;; > esac; > export MULTILIB_ABIS DEFAULT_ABI >} >multilib_toolchain_setup () >{ > local v vv; > export ABI=$1; > if [[ ${__DEFAULT_ABI_SAVED} == "true" ]]; then > for v in CHOST CBUILD AS CC CXX LD PKG_CONFIG_{LIBDIR,PATH}; > do > vv="__abi_saved_${v}"; > [[ ${!vv+set} == "set" ]] && export ${v}="${!vv}" || unset ${v}; > unset ${vv}; > done; > unset __DEFAULT_ABI_SAVED; > fi; > if [[ ${ABI} != ${DEFAULT_ABI} ]]; then > for v in CHOST CBUILD AS CC CXX LD PKG_CONFIG_{LIBDIR,PATH}; > do > vv="__abi_saved_${v}"; > [[ ${!v+set} == "set" ]] && export ${vv}="${!v}" || unset ${vv}; > done; > export __DEFAULT_ABI_SAVED="true"; > export CHOST=$(get_abi_CHOST ${DEFAULT_ABI}); > export CC="$(tc-getCC) $(get_abi_CFLAGS)"; > export CXX="$(tc-getCXX) $(get_abi_CFLAGS)"; > export LD="$(tc-getLD) $(get_abi_LDFLAGS)"; > export CHOST=$(get_abi_CHOST $1); > export CBUILD=$(get_abi_CHOST $1); > export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig; > export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig; > fi >} >newicon () >{ > _iconins ${FUNCNAME} "$@" >} >newmenu () >{ > ( insinto /usr/share/applications; > newins "$@" ) >} >newpamd () >{ > [[ $# -ne 2 ]] && die "newpamd requires two arguments"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > ( insinto /etc/pam.d; > insopts -m 0644; > newins "$1" "$2" ) || die "failed to install $1 as $2"; > cleanpamd $2 >} >newpammod () >{ > [[ $# -ne 2 ]] && die "newpammod requires two arguements"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > exeinto $(getpam_mod_dir); > newexe "$1" "$2" || die "failed to install $1 as $2" >} >newpamsecurity () >{ > [[ $# -ne 3 ]] && die "newpamsecurity requires three arguments"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > ( insinto /etc/security/$1; > insopts -m 0644; > newins "$2" "$3" ) || die "failed to install $2 as $3" >} >no-as-needed () >{ > case $($(tc-getLD) -v 2>&1 </dev/null) in > *GNU*) > echo "-Wl,--no-as-needed" > ;; > esac >} >number_abis () >{ > set -- `get_install_abis`; > echo $# >} >pam_epam_expand () >{ > sed -n -e 's|#%EPAM-\([[:alpha:]-]\+\):\([-+<>=/.![:alnum:]]\+\)%#.*|\1 \2|p' "$@" | sort -u | while read condition parameter; do > disable="yes"; > case "$condition" in > If-Has) > message="This can be used only if you have ${parameter} installed"; > has_version "$parameter" && disable="no" > ;; > Use-Flag) > message="This can be used only if you enabled the ${parameter} USE flag"; > use "$parameter" && disable="no" > ;; > *) > eerror "Unknown EPAM condition '${condition}' ('${parameter}')"; > die "Unknown EPAM condition '${condition}' ('${parameter}')" > ;; > esac; > if [ "${disable}" = "yes" ]; then > sed -i -e "/#%EPAM-${condition}:${parameter/\//\\/}%#/d" "$@"; > else > sed -i -e "s|#%EPAM-${condition}:${parameter}%#||" "$@"; > fi; > done >} >pamd_mimic () >{ > [[ $# -lt 3 ]] && die "pamd_mimic requires at least three argments"; > if has pam ${IUSE} && ! use pam; then > return 0; > fi; > dodir /etc/pam.d; > pamdfile=${D}/etc/pam.d/$2; > echo -e "# File autogenerated by pamd_mimic in pam eclass\n\n" >> $pamdfile; > originalstack=$1; > authlevels="auth account password session"; > if has_version '<sys-libs/pam-0.78'; then > mimic="\trequired\t\tpam_stack.so service=${originalstack}"; > else > mimic="\tinclude\t\t${originalstack}"; > fi; > shift; > shift; > while [[ -n $1 ]]; do > has $1 ${authlevels} || die "unknown level type"; > echo -e "$1${mimic}" >> ${pamdfile}; > shift; > done >} >pamd_mimic_system () >{ > [[ $# -lt 2 ]] && die "pamd_mimic_system requires at least two argments"; > pamd_mimic system-auth "$@" >} >pammod_hide_symbols () >{ > cat - > "${T}"/pam-eclass-pam_symbols.ver <<EOF >{ > global: pam_sm_*; > local: *; >}; >EOF > > append-ldflags -Wl,--version-script="${T}"/pam-eclass-pam_symbols.ver >} >path_exists () >{ > local opt=$1; > [[ ${opt} == -[ao] ]] && shift || opt="-a"; > [[ $# -eq 0 ]] && return 1; > local p r=0; > for p in "$@"; > do > [[ -e ${p} ]]; > : $(( r += $? )); > done; > case ${opt} in > -a) > return $(( r != 0 )) > ;; > -o) > return $(( r == $# )) > ;; > esac >} >pkg_nofetch () >{ > __eapi0_pkg_nofetch "$@" >} >pkg_postinst () >{ > if ( use berkdb || use gdbm ) && [[ ! -f "${ROOT}/etc/sasl2/sasldb2" ]]; then > einfo "Generating an empty sasldb2 with correct permissions ..."; > echo "p" | "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -p login || die "Failed to generate sasldb2"; > "${ROOT}/usr/sbin/saslpasswd2" -f "${ROOT}/etc/sasl2/sasldb2" -d login || die "Failed to delete temp user"; > chown root:mail "${ROOT}/etc/sasl2/sasldb2" || die "Failed to chown ${ROOT}/etc/sasl2/sasldb2"; > chmod 0640 "${ROOT}/etc/sasl2/sasldb2" || die "Failed to chmod ${ROOT}/etc/sasl2/sasldb2"; > fi; > if use authdaemond; then > elog "You need to add a user running a service using Courier's"; > elog "authdaemon to the 'mail' group. For example, do:"; > elog " gpasswd -a postfix mail"; > elog "to add the 'postfix' user to the 'mail' group."; > fi; > elog "pwcheck and saslauthd home directories have moved to:"; > elog " /run/saslauthd, using tmpfiles.d"; > preserve_old_lib_notify /usr/$(get_libdir)/libsasl2.so.2 >} >pkg_preinst () >{ > preserve_old_lib /usr/$(get_libdir)/libsasl2.so.2 >} >pkg_setup () >{ > java-pkg-opt-2_pkg_setup >} >preserve_old_lib () >{ > _eutils_eprefix_init; > if [[ ${EBUILD_PHASE} != "preinst" ]]; then > eerror "preserve_old_lib() must be called from pkg_preinst() only"; > die "Invalid preserve_old_lib() usage"; > fi; > [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]"; > has preserve-libs ${FEATURES} && return 0; > local lib dir; > for lib in "$@"; > do > [[ -e ${EROOT}/${lib} ]] || continue; > dir=${lib%/*}; > dodir ${dir} || die "dodir ${dir} failed"; > cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed"; > touch "${ED}"/${lib}; > done >} >preserve_old_lib_notify () >{ > if [[ ${EBUILD_PHASE} != "postinst" ]]; then > eerror "preserve_old_lib_notify() must be called from pkg_postinst() only"; > die "Invalid preserve_old_lib_notify() usage"; > fi; > has preserve-libs ${FEATURES} && return 0; > _eutils_eprefix_init; > local lib notice=0; > for lib in "$@"; > do > [[ -e ${EROOT}/${lib} ]] || continue; > if [[ ${notice} -eq 0 ]]; then > notice=1; > ewarn "Old versions of installed libraries were detected on your system."; > ewarn "In order to avoid breaking packages that depend on these old libs,"; > ewarn "the libraries are not being removed. You need to run revdep-rebuild"; > ewarn "in order to remove these old dependencies. If you do not have this"; > ewarn "helper program, simply emerge the 'gentoolkit' package."; > ewarn; > fi; > ewarn " # revdep-rebuild --library '${lib}' && rm '${lib}'"; > done >} >prune_libtool_files () >{ > debug-print-function ${FUNCNAME} "$@"; > local removing_all removing_modules opt; > _eutils_eprefix_init; > for opt in "$@"; > do > case "${opt}" in > --all) > removing_all=1; > removing_modules=1 > ;; > --modules) > removing_modules=1 > ;; > *) > die "Invalid argument to ${FUNCNAME}(): ${opt}" > ;; > esac; > done; > local f; > local queue=(); > while IFS= read -r -d '' f; do > local archivefile=${f/%.la/.a}; > if ! sed -n -e '/^# Generated by .*libtool/q0;4q1' "${f}"; then > continue; > fi; > [[ ${f} != ${archivefile} ]] || die 'regex sanity check failed'; > local reason pkgconfig_scanned; > local snotlink=$(sed -n -e 's:^shouldnotlink=::p' "${f}"); > if [[ ${snotlink} == yes ]]; then > if [[ -f ${archivefile} ]]; then > einfo "Removing unnecessary ${archivefile#${D%/}} (static plugin)"; > queue+=("${archivefile}"); > fi; > if [[ -n ${removing_modules} ]]; then > reason='module'; > fi; > else > if [[ -n ${removing_all} ]]; then > reason='requested'; > else > if [[ ! -f ${archivefile} ]]; then > reason='no static archive'; > else > if [[ ! -n $(sed -nre "s/^(dependency_libs|inherited_linker_flags)='(.*)'$/\2/p" "${f}") ]]; then > reason='no libs & flags'; > else > if [[ ! -n ${pkgconfig_scanned} ]]; then > local pc_libs=(); > if [[ ! -n ${removing_all} ]]; then > local pc; > local tf=${T}/prune-lt-files.pc; > local pkgconf=$(tc-getPKG_CONFIG); > while IFS= read -r -d '' pc; do > local arg libs; > if ${pkgconf} --exists "${pc}" &>/dev/null; then > sed -e '/^Requires:/d' "${pc}" > "${tf}"; > libs=$(${pkgconf} --libs "${tf}"); > else > libs=$(sed -ne 's/^Libs://p' "${pc}"); > fi; > for arg in ${libs}; > do > if [[ ${arg} == -l* ]]; then > if [[ ${arg} == '*$*' ]]; then > eqawarn "${FUNCNAME}: variable substitution likely failed in ${pc}"; > eqawarn "(arg: ${arg})"; > eqawarn "Most likely, you need to add virtual/pkgconfig to DEPEND."; > fi; > pc_libs+=(lib${arg#-l}.la); > fi; > done; > done < <(find "${D}" -type f -name '*.pc' -print0); > rm -f "${tf}"; > fi; > pkgconfig_scanned=1; > fi; > has "${f##*/}" "${pc_libs[@]}" && reason='covered by .pc'; > fi; > fi; > fi; > fi; > if [[ -n ${reason} ]]; then > einfo "Removing unnecessary ${f#${D%/}} (${reason})"; > queue+=("${f}"); > fi; > done < <(find "${ED}" -xtype f -name '*.la' -print0); > if [[ -n ${queue[@]} ]]; then > rm -f "${queue[@]}"; > fi >} >raw-ldflags () >{ > local x input="$@"; > [[ -z ${input} ]] && input=${LDFLAGS}; > set --; > for x in ${input}; > do > case ${x} in > -Wl,*) > x=${x#-Wl,}; > set -- "$@" ${x//,/ } > ;; > *) > > ;; > esac; > done; > echo "$@" >} >redirect_alloc_fd () >{ > local var=$1 file=$2 redir=${3:-"<>"}; > if [[ ! -L /dev/fd && ${CBUILD} == *linux* ]]; then > eerror "You're missing a /dev/fd symlink to /proc/self/fd."; > eerror "Please fix the symlink and check your boot scripts (udev/etc...)."; > die "/dev/fd is broken"; > fi; > if [[ $(( (BASH_VERSINFO[0] << 8) + BASH_VERSINFO[1] )) -ge $(( (4 << 8) + 1 )) ]]; then > eval "exec {${var}}${redir}'${file}'"; > else > local fd=10; > while :; do > if [[ ! -e /dev/fd/${fd} ]] && [[ ! -L /dev/fd/${fd} ]]; then > eval "exec ${fd}${redir}'${file}'" && break; > fi; > [[ ${fd} -gt 1024 ]] && die 'could not locate a free temp fd !?'; > : $(( ++fd )); > done; > : $(( ${var} = fd )); > fi >} >replace-cpu-flags () >{ > local newcpu="$#"; > newcpu="${!newcpu}"; > while [ $# -gt 1 ]; do > replace-flags "-march=${1}" "-march=${newcpu}"; > replace-flags "-mcpu=${1}" "-mcpu=${newcpu}"; > replace-flags "-mtune=${1}" "-mtune=${newcpu}"; > shift; > done; > return 0 >} >replace-flags () >{ > [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>"; > local f var new; > for var in $(all-flag-vars); > do > new=(); > for f in ${!var}; > do > [[ ${f} == ${1} ]] && f=${2}; > new+=("${f}"); > done; > eval export ${var}=\""${new[*]}"\"; > done; > return 0 >} >replace-sparc64-flags () >{ > local SPARC64_CPUS="ultrasparc3 ultrasparc v9"; > if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > export CFLAGS CXXFLAGS >} >replace_all_version_separators () >{ > local c=($(get_all_version_components "${2:-${PV}}")); > c=${c[@]//[-._]/$1}; > echo ${c// } >} >replace_version_separator () >{ > eshopts_push -s extglob; > local w c v="${3:-${PV}}"; > declare -i i found=0; > w=${1:-1}; > c=($(get_all_version_components ${v})); > if [[ ${w} != *[[:digit:]]* ]]; then > for ((i = 0; i < ${#c[@]}; i++)) > do > if [[ ${c[i]} == ${w} ]]; then > c[i]=${2}; > break; > fi; > done; > else > for ((i = 0; i < ${#c[@]}; i++)) > do > if [[ -n "${c[i]//[^-._]}" ]]; then > found+=1; > if ((found == w)); then > c[i]=${2}; > break; > fi; > fi; > done; > fi; > c=${c[*]}; > echo ${c// }; > eshopts_pop >} >setup-allowed-flags () >{ > ALLOWED_FLAGS="-pipe"; > ALLOWED_FLAGS+=" -O -O1 -O2 -Os -mcpu -march -mtune"; > ALLOWED_FLAGS+=" -fstack-protector -fstack-protector-all"; > ALLOWED_FLAGS+=" -fbounds-checking -fno-strict-overflow"; > ALLOWED_FLAGS+=" -fno-PIE -fno-pie -fno-unit-at-a-time"; > ALLOWED_FLAGS+=" -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+"; > ALLOWED_FLAGS+=" -fno-ident -fpermissive -frecord-gcc-switches"; > ALLOWED_FLAGS+=" -W* -w"; > ALLOWED_FLAGS+=" -fno-stack-protector -fno-stack-protector-all -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer -fno-builtin*"; > ALLOWED_FLAGS+=" -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt -mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt -m*-toc -mfloat-abi -D* -U*"; > ALLOWED_FLAGS+=" -mno-fma4 -mno-movbe -mno-xop -mno-lwp"; > ALLOWED_FLAGS+=" -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm"; > ALLOWED_FLAGS+=" -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt"; > ALLOWED_FLAGS+=" -I* -L* -R* -Wl,*"; > export ALLOWED_FLAGS; > return 0 >} >src_compile () >{ > emake; > cd "${S}"; > if use java; then > jar -cvf ${PN}.jar -C java $(find java -name "*.class"); > fi >} >src_configure () >{ > append-flags -fno-strict-aliasing; > append-cppflags -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE -DLDAP_DEPRECATED; > use java && export JAVAC="${JAVAC} ${JAVACFLAGS}"; > local myconf; > if use authdaemond; then > myconf="${myconf} --with-authdaemond=/var/lib/courier/authdaemon/socket"; > fi; > if ! use ssl; then > myconf="${myconf} --without-des"; > fi; > if use mysql || use postgres || use sqlite; then > myconf="${myconf} --enable-sql"; > else > myconf="${myconf} --disable-sql"; > fi; > if use gdbm; then > einfo "Building with GNU DB as database backend for your SASLdb"; > myconf="${myconf} --with-dblib=gdbm"; > else > if use berkdb; then > einfo "Building with BerkeleyDB as database backend for your SASLdb"; > myconf="${myconf} --with-dblib=berkeley --with-bdb-incdir=$(db_includedir)"; > else > einfo "Building without SASLdb support"; > myconf="${myconf} --with-dblib=none"; > fi; > fi; > if use urandom; then > myconf="${myconf} --with-devrandom=/dev/urandom"; > fi; > econf --enable-login --enable-ntlm --enable-auth-sasldb --disable-cmulocal --disable-krb4 --enable-otp --without-sqlite --with-saslauthd=/run/saslauthd --with-pwcheck=/run/saslauthd --with-configdir=/etc/sasl2 --with-plugindir=/usr/$(get_libdir)/sasl2 --with-dbpath=/etc/sasl2/sasldb2 $(use_with ssl openssl) $(use_with pam) $(use_with openldap ldap) $(use_enable ldapdb) $(use_enable sample) $(use_enable kerberos gssapi) $(use_enable java) $(use_with java javahome ${JAVA_HOME}) $(use_with mysql) $(use_with postgres pgsql) $(use_with sqlite sqlite3 /usr/$(get_libdir)) $(use_enable srp) $(use_enable static-libs static) ${myconf} >} >src_install () >{ > emake DESTDIR="${D}" install; > keepdir /etc/sasl2; > if use sample; then > docinto sample; > dodoc sample/*.c; > exeinto /usr/share/doc/${P}/sample; > doexe sample/client sample/server; > fi; > if use java; then > java-pkg_dojar ${PN}.jar; > java-pkg_regso "${D}/usr/$(get_libdir)/libjavasasl.so"; > rm -Rf "${D}/usr/$(get_libdir)/java"; > docinto "java"; > dodoc "${S}/java/README" "${FILESDIR}/java.README.gentoo" "${S}"/java/doc/*; > dodir "/usr/share/doc/${PF}/java/Test"; > insinto "/usr/share/doc/${PF}/java/Test"; > doins "${S}"/java/Test/*.java; > fi; > docinto ""; > dodoc AUTHORS ChangeLog NEWS README doc/TODO doc/*.txt; > newdoc pwcheck/README README.pwcheck; > dohtml doc/*.html; > docinto "saslauthd"; > dodoc saslauthd/{AUTHORS,ChangeLog,LDAP_SASLAUTHD,NEWS,README}; > newpamd "${FILESDIR}/saslauthd.pam-include" saslauthd; > newinitd "${FILESDIR}/pwcheck.rc6" pwcheck; > systemd_dounit "${FILESDIR}/pwcheck.service"; > newinitd "${FILESDIR}/saslauthd2.rc7" saslauthd; > newconfd "${FILESDIR}/saslauthd-${SASLAUTHD_CONF_VER}.conf" saslauthd; > systemd_dounit "${FILESDIR}/saslauthd.service"; > systemd_dotmpfilesd "${FILESDIR}/${PN}.conf"; > newsbin "${S}/saslauthd/testsaslauthd" testsaslauthd; > use static-libs || find "${D}"/usr/lib*/sasl2 -name 'lib*.la' -delete >} >src_prepare () >{ > epatch "${FILESDIR}"/${PN}-2.1.25-sasldb_al.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-saslauthd_libtool.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-avoid_pic_overwrite.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-autotools_fixes.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-as_needed.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-missing_header.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-fix_heimdal.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-auxprop.patch; > epatch "${FILESDIR}"/${PN}-2.1.23-gss_c_nt_hostbased_service.patch; > epatch "${FILESDIR}"/${PN}-2.1.25-service_keytabs.patch; > epatch "${FILESDIR}"/${PN}-2.1.26-missing-size_t.patch; > epatch "${FILESDIR}"/${PN}-2.1.26-CVE-2013-4122.patch; > epatch "${FILESDIR}"/${PN}-2.1.26-send-imap-logout.patch; > epatch "${FILESDIR}"/${PN}-2.1.26-canonuser-ldapdb-garbage-in-out-buffer.patch; > sed -i -e '/LIB_SQLITE.*-R/s/ -R[^"]*//' configure.in || die; > sed -i '/^sasldir =/s:=.*:= $(plugindir):' "${S}"/plugins/Makefile.{am,in} || die "sed failed"; > sed -i -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:g' configure.in || die; > eautoreconf >} >src_test () >{ > __eapi0_src_test "$@" >} >src_unpack () >{ > __eapi0_src_unpack "$@" >} >strip-flags () >{ > local x y var; > setup-allowed-flags; > set -f; > for var in $(all-flag-vars); > do > local new=(); > for x in ${!var}; > do > local flag=${x%%=*}; > for y in ${ALLOWED_FLAGS}; > do > if [[ -z ${flag%%${y}} ]]; then > new+=("${x}"); > break; > fi; > done; > done; > if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then > new+=(-O2); > fi; > if [[ ${!var} != "${new[*]}" ]]; then > einfo "strip-flags: ${var}: changed '${!var}' to '${new[*]}'"; > fi; > eval export ${var}=\""${new[*]}"\"; > done; > set +f; > return 0 >} >strip-linguas () >{ > local ls newls nols; > if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then > local op=$1; > shift; > ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); > shift; > local d f; > for d in "$@"; > do > if [[ ${op} == "-u" ]]; then > newls=${ls}; > else > newls=""; > fi; > for f in $(find "$d" -name '*.po' -exec basename {} .po ';'); > do > if [[ ${op} == "-i" ]]; then > has ${f} ${ls} && newls="${newls} ${f}"; > else > has ${f} ${ls} || newls="${newls} ${f}"; > fi; > done; > ls=${newls}; > done; > else > ls="$@"; > fi; > nols=""; > newls=""; > for f in ${LINGUAS}; > do > if has ${f} ${ls}; then > newls="${newls} ${f}"; > else > nols="${nols} ${f}"; > fi; > done; > [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols}; > export LINGUAS=${newls:1} >} >strip-unsupported-flags () >{ > export CFLAGS=$(test-flags-CC ${CFLAGS}); > export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}); > export FFLAGS=$(test-flags-F77 ${FFLAGS}); > export FCFLAGS=$(test-flags-FC ${FCFLAGS}) >} >systemd_dotmpfilesd () >{ > debug-print-function ${FUNCNAME} "${@}"; > for f in "$@"; > do > [[ ${f} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.'; > done; > ( insinto /usr/lib/tmpfiles.d/; > doins "${@}" ) >} >systemd_dounit () >{ > debug-print-function ${FUNCNAME} "${@}"; > ( insinto "$(_systemd_get_unitdir)"; > doins "${@}" ) >} >systemd_enable_ntpunit () >{ > debug-print-function ${FUNCNAME} "${@}"; > if [[ ${#} -lt 2 ]]; then > die "Usage: systemd_enable_ntpunit <NN-name> <service>..."; > fi; > local ntpunit_name=${1}; > local services=("${@:2}"); > if [[ ${ntpunit_name} != [0-9][0-9]-* ]]; then > die "ntpunit.d file must be named NN-name where NN are digits."; > else > if [[ ${ntpunit_name} == *.list ]]; then > die "The .list suffix is appended implicitly to ntpunit.d name."; > fi; > fi; > local unitdir=$(systemd_get_unitdir); > local s; > for s in "${services[@]}"; > do > if [[ ! -f "${D}${unitdir}/${s}" ]]; then > die "ntp-units.d provider ${s} not installed (yet?) in \${D}."; > fi; > echo "${s}" >> "${T}"/${ntpunit_name}.list; > done; > ( insinto "$(_systemd_get_utildir)"/ntp-units.d; > doins "${T}"/${ntpunit_name}.list ); > local ret=${?}; > rm "${T}"/${ntpunit_name}.list || die; > return ${ret} >} >systemd_enable_service () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ ${#} -eq 2 ]] || die "Synopsis: systemd_enable_service target service"; > local target=${1}; > local service=${2}; > local ud=$(_systemd_get_unitdir); > local destname=${service##*/}; > dodir "${ud}"/"${target}".wants && dosym ../"${service}" "${ud}"/"${target}".wants/"${destname}" >} >systemd_get_unitdir () >{ > has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; > debug-print-function ${FUNCNAME} "${@}"; > echo "${EPREFIX}$(_systemd_get_unitdir)" >} >systemd_get_userunitdir () >{ > has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; > debug-print-function ${FUNCNAME} "${@}"; > echo "${EPREFIX}$(_systemd_get_userunitdir)" >} >systemd_get_utildir () >{ > has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX=; > debug-print-function ${FUNCNAME} "${@}"; > echo "${EPREFIX}$(_systemd_get_utildir)" >} >systemd_install_serviced () >{ > debug-print-function ${FUNCNAME} "${@}"; > local src=${1}; > local service=${2}; > [[ -n ${src} ]] || die "No file specified"; > if [[ ! -n ${service} ]]; then > [[ ${src} == *.conf ]] || die "Source file needs .conf suffix"; > service=${src##*/}; > service=${service%.conf}; > fi; > [[ ${service} == *.d ]] && die "Service must not have .d suffix"; > ( insinto /etc/systemd/system/"${service}".d; > newins "${src}" 00gentoo.conf ) >} >systemd_is_booted () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ -d /run/systemd/system ]]; > local ret=${?}; > debug-print "${FUNCNAME}: [[ -d /run/systemd/system ]] -> ${ret}"; > return ${ret} >} >systemd_newtmpfilesd () >{ > debug-print-function ${FUNCNAME} "${@}"; > [[ ${2} == *.conf ]] || die 'tmpfiles.d files need to have .conf suffix.'; > ( insinto /usr/lib/tmpfiles.d/; > newins "${@}" ) >} >systemd_newunit () >{ > debug-print-function ${FUNCNAME} "${@}"; > ( insinto "$(_systemd_get_unitdir)"; > newins "${@}" ) >} >systemd_to_myeconfargs () >{ > debug-print-function ${FUNCNAME} "${@}"; > eqawarn 'systemd_to_myeconfargs() is deprecated and will be removed on 2013-10-11.'; > eqawarn 'Please use $(systemd_with_unitdir) instead.'; > myeconfargs=("${myeconfargs[@]}" --with-systemdsystemunitdir="$(systemd_get_unitdir)") >} >systemd_update_catalog () >{ > debug-print-function ${FUNCNAME} "${@}"; > local journalctl=${EPREFIX}/usr/bin/journalctl; > if [[ -x ${journalctl} ]]; then > ebegin "Updating systemd journal catalogs"; > journalctl --update-catalog; > eend $?; > else > debug-print "${FUNCNAME}: journalctl not found."; > fi >} >systemd_with_unitdir () >{ > debug-print-function ${FUNCNAME} "${@}"; > local optname=${1:-systemdsystemunitdir}; > echo --with-${optname}="$(systemd_get_unitdir)" >} >systemd_with_utildir () >{ > debug-print-function ${FUNCNAME} "${@}"; > echo --with-systemdutildir="$(systemd_get_utildir)" >} >tc-arch () >{ > tc-ninja_magic_to_arch portage "$@" >} >tc-arch-kernel () >{ > tc-ninja_magic_to_arch kern "$@" >} >tc-endian () >{ > local host=$1; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > host=${host%%-*}; > case ${host} in > aarch64*be) > echo big > ;; > aarch64) > echo little > ;; > alpha*) > echo big > ;; > arm*b*) > echo big > ;; > arm*) > echo little > ;; > cris*) > echo little > ;; > hppa*) > echo big > ;; > i?86*) > echo little > ;; > ia64*) > echo little > ;; > m68*) > echo big > ;; > mips*l*) > echo little > ;; > mips*) > echo big > ;; > powerpc*) > echo big > ;; > s390*) > echo big > ;; > sh*b*) > echo big > ;; > sh*) > echo little > ;; > sparc*) > echo big > ;; > x86_64*) > echo little > ;; > *) > echo wtf > ;; > esac >} >tc-env_build () >{ > tc-export_build_env; > CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@" >} >tc-export () >{ > local var; > for var in "$@"; > do > [[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'"; > eval tc-get${var} > /dev/null; > done >} >tc-export_build_env () >{ > tc-export "$@"; > : ${BUILD_CFLAGS:=-O1 -pipe}; > : ${BUILD_CXXFLAGS:=-O1 -pipe}; > : ${BUILD_CPPFLAGS:=}; > : ${BUILD_LDFLAGS:=}; > export BUILD_{C,CXX,CPP,LD}FLAGS; > local v; > for v in BUILD_{C,CXX,CPP,LD}FLAGS; > do > export ${v#BUILD_}_FOR_BUILD="${!v}"; > done >} >tc-getAR () >{ > tc-getPROG AR ar "$@" >} >tc-getAS () >{ > tc-getPROG AS as "$@" >} >tc-getBUILD_AR () >{ > tc-getBUILD_PROG AR ar "$@" >} >tc-getBUILD_AS () >{ > tc-getBUILD_PROG AS as "$@" >} >tc-getBUILD_CC () >{ > tc-getBUILD_PROG CC gcc "$@" >} >tc-getBUILD_CPP () >{ > tc-getBUILD_PROG CPP cpp "$@" >} >tc-getBUILD_CXX () >{ > tc-getBUILD_PROG CXX g++ "$@" >} >tc-getBUILD_LD () >{ > tc-getBUILD_PROG LD ld "$@" >} >tc-getBUILD_NM () >{ > tc-getBUILD_PROG NM nm "$@" >} >tc-getBUILD_OBJCOPY () >{ > tc-getBUILD_PROG OBJCOPY objcopy "$@" >} >tc-getBUILD_PKG_CONFIG () >{ > tc-getBUILD_PROG PKG_CONFIG pkg-config "$@" >} >tc-getBUILD_PROG () >{ > _tc-getPROG CBUILD "BUILD_$1 $1_FOR_BUILD HOST$1" "${@:2}" >} >tc-getBUILD_RANLIB () >{ > tc-getBUILD_PROG RANLIB ranlib "$@" >} >tc-getBUILD_STRIP () >{ > tc-getBUILD_PROG STRIP strip "$@" >} >tc-getCC () >{ > tc-getPROG CC gcc "$@" >} >tc-getCPP () >{ > tc-getPROG CPP cpp "$@" >} >tc-getCXX () >{ > tc-getPROG CXX g++ "$@" >} >tc-getDLLWRAP () >{ > tc-getPROG DLLWRAP dllwrap "$@" >} >tc-getF77 () >{ > tc-getPROG F77 gfortran "$@" >} >tc-getFC () >{ > tc-getPROG FC gfortran "$@" >} >tc-getGCJ () >{ > tc-getPROG GCJ gcj "$@" >} >tc-getLD () >{ > tc-getPROG LD ld "$@" >} >tc-getNM () >{ > tc-getPROG NM nm "$@" >} >tc-getOBJCOPY () >{ > tc-getPROG OBJCOPY objcopy "$@" >} >tc-getPKG_CONFIG () >{ > tc-getPROG PKG_CONFIG pkg-config "$@" >} >tc-getPROG () >{ > _tc-getPROG CHOST "$@" >} >tc-getRANLIB () >{ > tc-getPROG RANLIB ranlib "$@" >} >tc-getRC () >{ > tc-getPROG RC windres "$@" >} >tc-getSTRIP () >{ > tc-getPROG STRIP strip "$@" >} >tc-has-openmp () >{ > local base="${T}/test-tc-openmp"; > cat > "${base}.c" <<-EOF >#include <omp.h> >int main() { >int nthreads, tid, ret = 0; >#pragma omp parallel private(nthreads, tid) >{ >tid = omp_get_thread_num(); >nthreads = omp_get_num_threads(); ret += tid + nthreads; >} >return ret; >} >EOF > > $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &>/dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-has-tls () >{ > local base="${T}/test-tc-tls"; > cat > "${base}.c" <<-EOF >int foo(int *i) { >static __thread int j = 0; >return *i ? j : *i; >} >EOF > > local flags; > case $1 in > -s) > flags="-S" > ;; > -c) > flags="-c" > ;; > -l) > > ;; > -*) > die "Usage: tc-has-tls [-c|-l] [toolchain prefix]" > ;; > esac; > : ${flags:=-fPIC -shared -Wl,-z,defs}; > [[ $1 == -* ]] && shift; > $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-is-cross-compiler () >{ > return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]]) >} >tc-is-softfloat () >{ > local CTARGET=${CTARGET:-${CHOST}}; > case ${CTARGET} in > bfin* | h8300*) > echo "only" > ;; > *) > if [[ ${CTARGET//_/-} == *-softfloat-* ]]; then > echo "yes"; > else > if [[ ${CTARGET//_/-} == *-softfp-* ]]; then > echo "softfp"; > else > echo "no"; > fi; > fi > ;; > esac >} >tc-is-static-only () >{ > local host=${CTARGET:-${CHOST}}; > return $([[ ${host} == *-mint* ]]) >} >tc-ninja_magic_to_arch () >{ > function ninj () > { > [[ ${type} == "kern" ]] && echo $1 || echo $2 > }; > local type=$1; > local host=$2; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > local KV=${KV:-${KV_FULL}}; > [[ ${type} == "kern" ]] && [[ -z ${KV} ]] && ewarn "QA: Kernel version could not be determined, please inherit kernel-2 or linux-info"; > case ${host} in > aarch64*) > ninj arm64 arm > ;; > alpha*) > echo alpha > ;; > arm*) > echo arm > ;; > avr*) > ninj avr32 avr > ;; > bfin*) > ninj blackfin bfin > ;; > c6x) > echo c6x > ;; > cris*) > echo cris > ;; > frv) > echo frv > ;; > hexagon) > echo hexagon > ;; > hppa*) > ninj parisc hppa > ;; > i?86*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then > echo i386; > else > echo x86; > fi > ;; > ia64*) > echo ia64 > ;; > m68*) > echo m68k > ;; > metag) > echo metag > ;; > mips*) > echo mips > ;; > nios2*) > echo nios2 > ;; > nios*) > echo nios > ;; > or32) > echo openrisc > ;; > powerpc*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then > echo powerpc; > else > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then > if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then > echo powerpc; > else > echo ppc; > fi; > else > if [[ ${host} == powerpc64* ]]; then > echo ppc64; > else > if [[ ${PROFILE_ARCH} == "ppc64" ]]; then > ninj ppc64 ppc; > else > echo ppc; > fi; > fi; > fi; > fi > ;; > s390*) > echo s390 > ;; > score) > echo score > ;; > sh64*) > ninj sh64 sh > ;; > sh*) > echo sh > ;; > sparc64*) > ninj sparc64 sparc > ;; > sparc*) > [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc > ;; > tile*) > echo tile > ;; > vax*) > echo vax > ;; > x86_64*freebsd*) > echo amd64 > ;; > x86_64*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then > echo x86; > else > ninj x86_64 amd64; > fi > ;; > xtensa*) > echo xtensa > ;; > *) > echo unknown > ;; > esac >} >test-flag-CC () >{ > test-flag-PROG "CC" c "$1" >} >test-flag-CXX () >{ > test-flag-PROG "CXX" c++ "$1" >} >test-flag-F77 () >{ > test-flag-PROG "F77" f77 "$1" >} >test-flag-FC () >{ > test-flag-PROG "FC" f95 "$1" >} >test-flag-PROG () >{ > local comp=$1; > local lang=$2; > local flag=$3; > [[ -z ${comp} || -z ${flag} ]] && return 1; > local PROG=$(tc-get${comp}); > if ${PROG} -c -o /dev/null -x${lang} - < /dev/null > /dev/null 2>&1; then > ${PROG} "${flag}" -c -o /dev/null -x${lang} - < /dev/null > /dev/null 2>&1; > else > ${PROG} "${flag}" -c -o /dev/null /dev/null > /dev/null 2>&1; > fi >} >test-flags () >{ > test-flags-CC "$@" >} >test-flags-CC () >{ > test-flags-PROG "CC" "$@" >} >test-flags-CXX () >{ > test-flags-PROG "CXX" "$@" >} >test-flags-F77 () >{ > test-flags-PROG "F77" "$@" >} >test-flags-FC () >{ > test-flags-PROG "FC" "$@" >} >test-flags-PROG () >{ > local comp=$1; > local flags=(); > local x; > shift; > [[ -z ${comp} ]] && return 1; > for x in "$@"; > do > test-flag-${comp} "${x}" && flags+=("${x}"); > done; > echo "${flags[*]}"; > [[ ${#flags[@]} -gt 0 ]] >} >test_version_info () >{ > if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then > return 0; > else > return 1; > fi >} >uclibctoolize () >{ > die "Use elibtoolize" >} >use_doc () >{ > use doc && echo ${@:-javadoc} >} >use_if_iuse () >{ > in_iuse $1 || return 1; > use $1 >} >validate_desktop_entries () >{ > _eutils_eprefix_init; > if [[ -x "${EPREFIX}"/usr/bin/desktop-file-validate ]]; then > einfo "Checking desktop entry validity"; > local directories=""; > for d in /usr/share/applications $@; > do > [[ -d ${ED}${d} ]] && directories="${directories} ${ED}${d}"; > done; > if [[ -n ${directories} ]]; then > for FILE in $(find ${directories} -name "*\.desktop" -not -path '*.hidden*' | sort -u 2>/dev/null); > do > local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | sed -e "s|error: ||" -e "s|${FILE}:|--|g" ); > [[ -n $temp ]] && elog ${temp/--/${FILE/${ED}/}:}; > done; > fi; > echo ""; > else > einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo."; > fi >} >version_compare () >{ > eshopts_push -s extglob; > local ver_a=${1} ver_b=${2} parts_a parts_b; > local cur_tok_a cur_tok_b num_part_a num_part_b; > local -i cur_idx_a=0 cur_idx_b=0 prev_idx_a prev_idx_b; > parts_a=($(get_all_version_components "${ver_a}" )); > parts_b=($(get_all_version_components "${ver_b}" )); > local -i inf_loop=0; > while true; do > inf_loop+=1; > ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]"; > prev_idx_a=cur_idx_a; > prev_idx_b=cur_idx_b; > cur_tok_a=${parts_a[cur_idx_a]}; > cur_tok_b=${parts_b[cur_idx_b]}; > if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then > cur_idx_a+=1; > [[ ${parts_a[cur_idx_a]} == . ]] && cur_idx_a+=1; > else > cur_tok_a=; > fi; > if [[ -n ${cur_tok_b} ]] && [[ -z ${cur_tok_b//[[:digit:]]} ]]; then > cur_idx_b+=1; > [[ ${parts_b[cur_idx_b]} == . ]] && cur_idx_b+=1; > else > cur_tok_b=; > fi; > [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]] && break; > [[ -z ${cur_tok_a} ]] && eshopts_pop && return 1; > [[ -z ${cur_tok_b} ]] && eshopts_pop && return 3; > if (( prev_idx_a != 0 && prev_idx_b != 0 )) && [[ ${cur_tok_a} == 0* || ${cur_tok_b} == 0* ]]; then > cur_tok_a=${cur_tok_a%%+(0)}; > cur_tok_b=${cur_tok_b%%+(0)}; > [[ ${cur_tok_a} < ${cur_tok_b} ]] && eshopts_pop && return 1; > [[ ${cur_tok_a} > ${cur_tok_b} ]] && eshopts_pop && return 3; > else > cur_tok_a=${cur_tok_a##+(0)}; > cur_tok_b=${cur_tok_b##+(0)}; > : ${cur_tok_a:=0}; > : ${cur_tok_b:=0}; > ((cur_tok_a < cur_tok_b)) && eshopts_pop && return 1; > ((cur_tok_a > cur_tok_b)) && eshopts_pop && return 3; > fi; > done; > local letter_a=; > letter_a=${parts_a[cur_idx_a]}; > if [[ ${#letter_a} -eq 1 && -z ${letter_a/[a-z]} ]]; then > cur_idx_a+=1; > else > letter_a=@; > fi; > local letter_b=; > letter_b=${parts_b[cur_idx_b]}; > if [[ ${#letter_b} -eq 1 && -z ${letter_b/[a-z]} ]]; then > cur_idx_b+=1; > else > letter_b=@; > fi; > [[ ${letter_a} < ${letter_b} ]] && eshopts_pop && return 1; > [[ ${letter_a} > ${letter_b} ]] && eshopts_pop && return 3; > inf_loop=0; > while true; do > inf_loop+=1; > ((inf_loop > 20)) && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]"; > [[ ${parts_a[cur_idx_a]} == _ ]] && ((cur_idx_a++)); > [[ ${parts_b[cur_idx_b]} == _ ]] && ((cur_idx_b++)); > cur_tok_a=${parts_a[cur_idx_a]}; > cur_tok_b=${parts_b[cur_idx_b]}; > num_part_a=0; > num_part_b=0; > if has ${cur_tok_a%%+([0-9])} "alpha" "beta" "pre" "rc" "p"; then > cur_idx_a+=1; > num_part_a=${cur_tok_a##+([a-z])}; > num_part_a=${num_part_a##+(0)}; > : ${num_part_a:=0}; > cur_tok_a=${cur_tok_a%%+([0-9])}; > else > cur_tok_a=; > fi; > if has ${cur_tok_b%%+([0-9])} alpha beta pre rc p; then > cur_idx_b+=1; > num_part_b=${cur_tok_b##+([a-z])}; > num_part_b=${num_part_b##+(0)}; > : ${num_part_b:=0}; > cur_tok_b=${cur_tok_b%%+([0-9])}; > else > cur_tok_b=; > fi; > if [[ ${cur_tok_a} != ${cur_tok_b} ]]; then > local suffix; > for suffix in alpha beta pre rc "" p; > do > [[ ${cur_tok_a} == ${suffix} ]] && eshopts_pop && return 1; > [[ ${cur_tok_b} == ${suffix} ]] && eshopts_pop && return 3; > done; > else > if [[ -z ${cur_tok_a} && -z ${cur_tok_b} ]]; then > break; > else > ((num_part_a < num_part_b)) && eshopts_pop && return 1; > ((num_part_a > num_part_b)) && eshopts_pop && return 3; > fi; > fi; > done; > [[ ${parts_a[cur_idx_a]} == - ]] && ((cur_idx_a++)); > [[ ${parts_b[cur_idx_b]} == - ]] && ((cur_idx_b++)); > if [[ -n ${parts_a[cur_idx_a]/r+([0-9])} || -n ${parts_b[cur_idx_b]/r+([0-9])} ]]; then > die "versionator compare bug [revisions, ${ver_a}, ${ver_b}]"; > fi; > num_part_a=${parts_a[cur_idx_a]#r}; > num_part_a=${num_part_a##+(0)}; > : ${num_part_a:=0}; > num_part_b=${parts_b[cur_idx_b]#r}; > num_part_b=${num_part_b##+(0)}; > : ${num_part_b:=0}; > ((num_part_a < num_part_b)) && eshopts_pop && return 1; > ((num_part_a > num_part_b)) && eshopts_pop && return 3; > eshopts_pop; > return 2 >} >version_format_string () >{ > local fstr=$1; > shift; > set -- $(get_version_components "$@"); > eval echo "${fstr}" >} >version_is_at_least () >{ > local want_s="$1" have_s="${2:-${PVR}}" r; > version_compare "${want_s}" "${have_s}"; > r=$?; > case $r in > 1 | 2) > return 0 > ;; > 3) > return 1 > ;; > *) > die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]" > ;; > esac >} >version_sort () >{ > eshopts_push -s extglob; > local items=; > local -i left=0; > items=("$@"); > while ((left < ${#items[@]})); do > local -i lowest_idx=left; > local -i idx=lowest_idx+1; > while ((idx < ${#items[@]})); do > version_compare "${items[lowest_idx]}" "${items[idx]}"; > [[ $? -eq 3 ]] && lowest_idx=idx; > idx+=1; > done; > local tmp=${items[lowest_idx]}; > items[lowest_idx]=${items[left]}; > items[left]=${tmp}; > left+=1; > done; > echo ${items[@]}; > eshopts_pop >}
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 498670
:
368226
|
368228
|
368230
| 368232