Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 260661 Details for
Bug 352678
app-office/libreoffice-3.3.0_rc4 fails when building galleries
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
ebuild environment fo app-office/libreoffice-3.3.0_rc4
environment (text/plain), 336.63 KB, created by
Paolo Pedroni
on 2011-01-25 13:24:02 UTC
(
hide
)
Description:
ebuild environment fo app-office/libreoffice-3.3.0_rc4
Filename:
MIME Type:
Creator:
Paolo Pedroni
Created:
2011-01-25 13:24:02 UTC
Size:
336.63 KB
patch
obsolete
>declare -x ABI="amd64" >declare -- ADDONS_SRC=" http://hg.services.openoffice.org/binaries/09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz http://hg.services.openoffice.org/binaries/128cfc86ed5953e57fe0f5ae98b62c2e-libtextcat-2.2.tar.gz http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip http://hg.services.openoffice.org/binaries/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz http://hg.services.openoffice.org/binaries/24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html http://hg.services.openoffice.org/binaries/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz http://hg.services.openoffice.org/binaries/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz http://hg.services.openoffice.org/binaries/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz http://hg.services.openoffice.org/binaries/ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip http://hg.services.openoffice.org/binaries/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip http://hg.services.openoffice.org/binaries/377a60170e5185eb63d3ed2fae98e621-README_silgraphite-2.3.1.txt http://hg.services.openoffice.org/binaries/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip http://hg.services.openoffice.org/binaries/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz http://hg.services.openoffice.org/binaries/48470d662650c3c074e1c3fabbc67bbd-README_source-9.0.0.7-bj.txt http://hg.services.openoffice.org/binaries/4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz http://hg.services.openoffice.org/binaries/599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz http://hg.services.openoffice.org/binaries/5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip http://hg.services.openoffice.org/binaries/7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz http://hg.services.openoffice.org/binaries/79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip http://hg.services.openoffice.org/binaries/8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar http://hg.services.openoffice.org/binaries/8ea307d71d11140574bfb9fcc2487e33-libbase.zip http://hg.services.openoffice.org/binaries/a06a496d7a43cbdc35e69dbe678efadb-libloader.zip http://hg.services.openoffice.org/binaries/a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip http://hg.services.openoffice.org/binaries/bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1 http://hg.services.openoffice.org/binaries/c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz http://hg.services.openoffice.org/binaries/d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz http://hg.services.openoffice.org/binaries/d1a3205871c3c52e8a50c9f18510ae12-libformula.zip http://hg.services.openoffice.org/binaries/d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip http://hg.services.openoffice.org/binaries/dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip http://hg.services.openoffice.org/binaries/e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt http://hg.services.openoffice.org/binaries/f3e2febd267c8e4b13df00dac211dd6d-flute.zip http://hg.services.openoffice.org/binaries/f7925ba8491fe570e5164d2c72791358-libfonts.zip http://hg.services.openoffice.org/binaries/fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt http://hg.services.openoffice.org/binaries/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz http://hg.services.openoffice.org/binaries/37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz http://hg.services.openoffice.org/binaries/cf8a6967f7de535ae257fa411c98eb88-mdds_0.3.0.tar.bz2 http://download.go-oo.org/src/47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2 http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 http://download.go-oo.org/src/0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz http://download.go-oo.org/src/71474203939fafbe271e1263e61d083e-nss-3.12.8-with-nspr-4.8.6.tar.gz http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll http://download.go-oo.org/src/86e390f015e505dd71a66f0123c62f09-libwpd-0.9.0.tar.bz2 http://download.go-oo.org/src/5ba6a61a2f66dfd5fee8cdd4cd262a37-libwpg-0.2.0.tar.bz2 http://download.go-oo.org/src/9e436bff44c60dc8b97cba0c7fc11a5c-libwps-0.2.0.tar.bz2 http://www.numbertext.org/linux/881af2b7dca9b8259abbca00bbbc004d-LinLibertineG-20110101.zip" >declare -x ALSA_CARDS="" >declare -x ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" >declare -x ANT_HOME="/usr/share/ant" >declare -x ANT_OPTS="" >declare -x ANT_RESPECT_JAVA_HOME="" >declare -x ANT_TASKS="" >declare -x APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" >declare -x ARCH="amd64" >declare -x ARCH_FLAGS="-march=amdfam10 -pipe -fomit-frame-pointer -DGL_GLEXT_PROTOTYPES" >declare -x ASFLAGS_x86="--32" >declare -- AT_M4DIR="" >declare -- AUTOTOOLS_AUTO_DEPEND="yes" >declare -- AUTOTOOLS_DEPEND="=sys-devel/automake-1.9* >=sys-devel/autoconf-2.61 >=sys-devel/libtool-2.2.6b" >declare -- BASE_EXPF="src_unpack src_compile src_install src_prepare src_configure" >declare -- BASIS="basis3.3" >declare -x BUILD_TYPE="release" >declare -x CAMERAS="kodak ptp2" >declare -x CBUILD="x86_64-pc-linux-gnu" >declare -x CCHACHE_SIZE="2G" >declare -x CDEFINE_amd64="__x86_64__" >declare -x CDEFINE_default="__unix__" >declare -x CDEFINE_x86="__i386__" >declare -x CFLAGS="-march=amdfam10 -pipe -fomit-frame-pointer -DGL_GLEXT_PROTOTYPES" >declare -x CFLAGS_default="" >declare -x CFLAGS_x86="-m32" >declare -- CHECKREQS_DISK_BUILD="6144" >declare -- CHECKREQS_MEMORY="512" >declare -x CHECKREQS_NEED_DIE="" >declare -x CHECKREQS_NEED_SLEEP="" >declare -x CHOST="x86_64-pc-linux-gnu" >declare -x CHOST_amd64="x86_64-pc-linux-gnu" >declare -x CHOST_default="x86_64-pc-linux-gnu" >declare -x CHOST_x86="i686-pc-linux-gnu" >declare -x CLASSPATH="" >declare -- CMAKE_REQUIRED="never" >declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" >declare -- COMMON_DEPEND="!app-office/libreoffice-bin > !app-office/openoffice-bin > !app-office/openoffice > x11-libs/libXaw > x11-libs/libXinerama > x11-libs/libXrandr > >=dev-lang/perl-5.0 > >=dev-libs/glib-2.18 > dbus? ( >=dev-libs/dbus-glib-0.71 ) > gnome? ( >=x11-libs/gtk+-2.10 > >=gnome-base/gconf-2.0 > >=x11-libs/cairo-1.0.2 ) > gtk? ( >=x11-libs/gtk+-2.10 > >=x11-libs/cairo-1.0.2 ) > eds? ( >=gnome-extra/evolution-data-server-1.2 ) > gstreamer? ( >=media-libs/gstreamer-0.10 > >=media-libs/gst-plugins-base-0.10 ) > java? ( >=dev-java/bsh-2.0_beta4 > dev-java/lucene:2.3 > dev-java/lucene-analyzers:2.3 > dev-java/rhino:1.5 ) > nsplugin? ( net-libs/xulrunner:1.9 > >=dev-libs/nspr-4.6.6 > >=dev-libs/nss-3.11-r1 ) > opengl? ( virtual/opengl ) > >=net-libs/neon-0.24.7 > >=dev-libs/openssl-0.9.8g > >=media-libs/freetype-2.1.10-r2 > >=media-libs/fontconfig-2.3.0 > cups? ( net-print/cups ) > dev-libs/redland[ssl] > media-libs/jpeg > media-libs/libpng > app-arch/zip > app-arch/unzip > >=app-text/hunspell-1.1.4-r1 > dev-libs/expat > >=dev-libs/icu-4.0 > >=sys-libs/db-4.3 > >=media-libs/vigra-1.4 > >=app-text/poppler-0.12.3-r3[xpdf-headers]" >declare -- CONFFILE="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/work/libreoffice-build-3.3.0.4/distro-configs/Gentoo.conf.in" >declare -x CPPFLAGS="" >declare -- CPPUNIT_REQUIRED="never" >declare -x CROSSCOMPILE_OPTS="" >declare -x CTARGET_default="x86_64-pc-linux-gnu" >declare -x CXXFLAGS="-march=amdfam10 -pipe -fomit-frame-pointer -DGL_GLEXT_PROTOTYPES" >declare -x DCCC_PATH="/usr/lib64/distcc/bin" >declare -- DECLARATIVE_REQUIRED="never" >declare -x DEFAULT_ABI="amd64" >declare -x DEFINED_PHASES=" compile configure install postinst postrm preinst prepare setup unpack" >declare -- DEPEND="!app-office/libreoffice-bin > !app-office/openoffice-bin > !app-office/openoffice > x11-libs/libXaw > x11-libs/libXinerama > x11-libs/libXrandr > >=dev-lang/perl-5.0 > >=dev-libs/glib-2.18 > dbus? ( >=dev-libs/dbus-glib-0.71 ) > gnome? ( >=x11-libs/gtk+-2.10 > >=gnome-base/gconf-2.0 > >=x11-libs/cairo-1.0.2 ) > gtk? ( >=x11-libs/gtk+-2.10 > >=x11-libs/cairo-1.0.2 ) > eds? ( >=gnome-extra/evolution-data-server-1.2 ) > gstreamer? ( >=media-libs/gstreamer-0.10 > >=media-libs/gst-plugins-base-0.10 ) > java? ( >=dev-java/bsh-2.0_beta4 > dev-java/lucene:2.3 > dev-java/lucene-analyzers:2.3 > dev-java/rhino:1.5 ) > nsplugin? ( net-libs/xulrunner:1.9 > >=dev-libs/nspr-4.6.6 > >=dev-libs/nss-3.11-r1 ) > opengl? ( virtual/opengl ) > >=net-libs/neon-0.24.7 > >=dev-libs/openssl-0.9.8g > >=media-libs/freetype-2.1.10-r2 > >=media-libs/fontconfig-2.3.0 > cups? ( net-print/cups ) > dev-libs/redland[ssl] > media-libs/jpeg > media-libs/libpng > app-arch/zip > app-arch/unzip > >=app-text/hunspell-1.1.4-r1 > dev-libs/expat > >=dev-libs/icu-4.0 > >=sys-libs/db-4.3 > >=media-libs/vigra-1.4 > >=app-text/poppler-0.12.3-r3[xpdf-headers] > x11-libs/libXrender > x11-libs/libXtst > x11-proto/printproto > x11-proto/xextproto > x11-proto/xproto > x11-proto/xineramaproto > >=sys-apps/findutils-4.1.20-r1 > dev-perl/Archive-Zip > dev-util/pkgconfig > dev-util/intltool > >=dev-libs/boost-1.36 > sys-devel/flex > sys-devel/bison > dev-libs/libxslt > >=dev-libs/libxml2-2.0 > >=dev-util/gperf-3 > >=net-misc/curl-7.12 > sys-libs/zlib > sys-apps/coreutils > dev-util/cppunit > pam? ( sys-libs/pam > sys-apps/shadow[pam] ) > java? ( || ( =virtual/jdk-1.6* =virtual/jdk-1.5* ) > >=dev-java/ant-core-1.7 ) > ldap? ( net-nds/openldap ) =sys-devel/automake-1.9* >=sys-devel/autoconf-2.61 >=sys-devel/libtool-2.2.6b java? ( >=dev-java/java-config-2.1.9-r1 ) kde? ( > dev-util/automoc > dev-util/pkgconfig > !aqua? ( > >=x11-libs/libXtst-1.1.0 > x11-proto/xf86vidmodeproto > ) > ) kde? ( > dev-lang/perl > >=x11-libs/qt-core-4.6.0:4[qt3support,ssl] > >=x11-libs/qt-gui-4.6.0:4[accessibility,dbus] > >=x11-libs/qt-qt3support-4.6.0:4[accessibility,kde] > >=x11-libs/qt-script-4.6.0:4 > >=x11-libs/qt-sql-4.6.0:4[qt3support] > >=x11-libs/qt-svg-4.6.0:4 > >=x11-libs/qt-test-4.6.0:4 > !aqua? ( > x11-libs/libXext > x11-libs/libXt > x11-libs/libXxf86vm > ) > >=kde-base/kdelibs-4.4[aqua=] ) >=app-admin/eselect-python-20091230 =dev-lang/python-2* =dev-lang/python-2*[threads]" >declare -- DESCRIPTION="LibreOffice, a full office productivity suite." >declare -x DESTTREE="/usr" >declare -- DEVPATH="http://download.documentfoundation.org/libreoffice/src" >declare -x DIROPTIONS="-m0755" >declare -x EAPI="3" >declare -- EBUILD_DEATH_HOOKS=" java-pkg_die" >declare -- EKDEDIR="/usr" >declare -x ELIBC="glibc" >declare -- ELT_PATCH_DIR="/usr/portage/eclass/ELT-patches" >declare -- EPATCH_EXCLUDE="" >declare -- EPATCH_FORCE="no" >declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..." >declare -- EPATCH_OPTS="-g0 -E --no-backup-if-mismatch" >declare -- EPATCH_SINGLE_MSG="" >declare -- EPATCH_SOURCE="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/work/patch" >declare -- EPATCH_SUFFIX="patch.bz2" >declare -x EPYTHON="python2.6" >declare -x EXEOPTIONS="-m0755" >declare -x FCFLAGS=" -DGL_GLEXT_PROTOTYPES" >declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\"" >declare -x FFLAGS=" -DGL_GLEXT_PROTOTYPES" >declare -x GDK_USE_XFT="1" >declare -x GENTOO_VM="icedtea6" >declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" >declare -- HOMEPAGE="http://www.documentfoundation.org" >declare -x INHERITED="virtualx multilib kde4-base portability flag-o-matic python java-utils-2 versionator check-reqs bash-completion kde4-functions java-pkg-opt-2 base libtool toolchain-funcs db-use autotools fdo-mime eutils" >declare -x INPUT_DEVICES="evdev" >declare -x INSDESTTREE="" >declare -x INSOPTIONS="-m0644" >declare -- IUSE="binfilter cups dbus debug eds gnome gstreamer gtk kde ldap nsplugin odk opengl pam templates linguas_af linguas_ar linguas_as linguas_ast linguas_be_BY linguas_bg linguas_bn linguas_bo linguas_br linguas_brx linguas_bs linguas_ca linguas_ca_XV linguas_cs linguas_cy linguas_da linguas_de linguas_dgo linguas_dz linguas_el linguas_en linguas_en_GB linguas_en_ZA linguas_eo linguas_es linguas_et linguas_eu linguas_fa linguas_fi linguas_fr linguas_ga linguas_gd linguas_gl linguas_gu linguas_he linguas_hi linguas_hr linguas_hu linguas_id linguas_is linguas_it linguas_ja linguas_ka linguas_kk linguas_km linguas_kn linguas_ko linguas_kok linguas_ks linguas_ku linguas_ky linguas_lo linguas_lt linguas_lv linguas_mai linguas_mk linguas_ml linguas_mn linguas_mni linguas_mr linguas_ms linguas_my linguas_nb linguas_ne linguas_nl linguas_nn linguas_nr linguas_ns linguas_oc linguas_om linguas_or linguas_pa_IN linguas_pap linguas_pl linguas_ps linguas_pt linguas_pt_BR linguas_ro linguas_ru linguas_rw linguas_sa_IN linguas_sat linguas_sd linguas_sh linguas_si linguas_sk linguas_sl linguas_sq linguas_sr linguas_ss linguas_st linguas_sv linguas_sw_TZ linguas_ta linguas_te linguas_tg linguas_th linguas_ti linguas_tn linguas_tr linguas_ts linguas_ug linguas_uk linguas_uz linguas_ve linguas_vi linguas_xh linguas_zh_CN linguas_zh_TW linguas_zu linguas_en linguas_en_US bash-completion elibc_FreeBSD java aqua kde kdeenablefinal" >declare -- I_WANT_GLOBAL_JAVA_OPTIONS="true" >declare -x JAVA="/usr/lib/icedtea6/bin/java" >declare -x JAVAC="/usr/lib/icedtea6/bin/javac" >declare -x JAVACC_HOME="/usr/share/javacc/" >declare -x JAVACFLAGS="-source 1.5 -target 1.5" >declare -x JAVA_HOME="/usr/lib/icedtea6" >declare -- JAVA_PKG_ALLOW_VM_CHANGE="yes" >declare -- JAVA_PKG_BUILD_DEPEND_FILE="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/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/app-office/libreoffice-3.3.0_rc4/temp/java-pkg-depend" >declare -- JAVA_PKG_ENV="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/image//usr/share/libreoffice/package.env" >declare -- JAVA_PKG_EXTRA_ENV="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/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_JARDEST="/usr/share/libreoffice/lib" >declare -- JAVA_PKG_LIBDEST="/usr/lib64/libreoffice" >declare -- JAVA_PKG_NAME="libreoffice" >declare -- JAVA_PKG_OPTIONAL_DEPEND_FILE="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/temp/java-pkg-optional-depend" >declare -- JAVA_PKG_OPT_USE="java" >declare -- JAVA_PKG_QA_VIOLATIONS="0" >declare -- JAVA_PKG_SHAREPATH="/usr/share/libreoffice" >declare -- JAVA_PKG_SOURCESPATH="/usr/share/libreoffice/sources/" >declare -- JAVA_PKG_VIRTUALS_PATH="/usr/share/java-config-2/virtuals" >declare -- JAVA_PKG_VIRTUAL_PROVIDER="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/image///usr/share/java-config-2/virtuals/libreoffice" >declare -- JAVA_PKG_WARDEST="/usr/share/libreoffice/webapps" >declare -x JDK_HOME="/usr/lib/icedtea6" >declare -x JOBS="8" >declare -x JYTHON_SYSTEM_CACHEDIR="1" >declare -x KDE4DIR="/usr" >declare -- KDEDIR="/usr" >declare -- KDE_HANDBOOK="never" >declare -a KDE_LIVE_SLOTS='([0]="live")' >declare -- KDE_MINIMAL="4.4" >declare -- KDE_MINIMAL_VALID="1" >declare -- KDE_REQUIRED="optional" >declare -a KDE_SLOTS='([0]="4.1" [1]="4.2" [2]="4.3" [3]="4.4" [4]="4.5" [5]="4.6")' >declare -x KERNEL="linux" >declare -x KERNEL_ABI="amd64" >declare -x KEYWORDS="~amd64 ~x86" >declare -x KV="2.6.37-gentoo" >declare -x LANG="C" >declare -- LANGS="af ar as ast be_BY bg bn bo br brx bs ca ca_XV cs cy da de dgo dz el en en_GB en_ZA eo es et eu fa fi fr ga gd gl gu he hi hr hu id is it ja ka kk km kn ko kok ks ku ky lo lt lv mai mk ml mn mni mr ms my nb ne nl nn nr ns oc om or pa_IN pap pl ps pt pt_BR ro ru rw sa_IN sat sd sh si sk sl sq sr ss st sv sw_TZ ta te tg th ti tn tr ts ug uk uz ve vi xh zh_CN zh_TW zu en en_US" >declare -- LANGS1="af ar as ast be_BY bg bn bo br brx bs ca ca_XV cs cy da de dgo dz el en en_GB en_ZA eo es et eu fa fi fr ga gd gl gu he hi hr hu id is it ja ka kk km kn ko kok ks ku ky lo lt lv mai mk ml mn mni mr ms my nb ne nl nn nr ns oc om or pa_IN pap pl ps pt pt_BR ro ru rw sa_IN sat sd sh si sk sl sq sr ss st sv sw_TZ ta te tg th ti tn tr ts ug uk uz ve vi xh zh_CN zh_TW zu" >declare -x LCD_DEVICES="" >declare -x LC_ALL="C" >declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" >declare -x LDFLAGS_default="" >declare -x LDFLAGS_x86="-m elf_i386" >declare -x LD_LIBRARY_PATH="/usr/lib/icedtea6/jre/lib/amd64/:/usr/lib/icedtea6/jre/lib/amd64/native_threads/:/usr/lib/icedtea6/jre/lib/amd64/xawt/:/usr/lib/icedtea6/jre/lib/amd64/server/" >declare -x LIBDIR_amd64="lib64" >declare -x LIBDIR_amd64_fbsd="lib64" >declare -x LIBDIR_default="lib" >declare -x LIBDIR_ppc="lib32" >declare -x LIBDIR_ppc64="lib64" >declare -x LIBDIR_sparc32="lib32" >declare -x LIBDIR_sparc64="lib64" >declare -x LIBDIR_x86="lib32" >declare -x LIBDIR_x86_fbsd="lib32" >declare -x LIBGL_DRIVERS_PATH="/usr/lib64/dri:/usr/lib32/dri" >declare -x LIBOPTIONS="-m0644" >declare -x LICENSE="LGPL-3" >declare -x LINGUAS="it" >declare -x LINGUAS_OOO="en-US it" >declare -x LINGUAS_TEMP="it" >declare -x LINKFLAGSOPTIMIZE="-Wl,-O1 -Wl,--as-needed" >declare -x MAIL="/var/mail/paolo" >declare -x MAKEOPTS="-j8" >declare -- MODULES="artwork base bootstrap calc components extensions extras filters help >impress libs-core libs-extern libs-extern-sys libs-gui postprocess sdk testing >ure writer l10n" >declare -x MULTILIB_ABIS="amd64 x86" >declare -x MULTILIB_STRICT_DENY="64-bit.*shared object" >declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib" >declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)" >declare -- MULTIMEDIA_REQUIRED="never" >declare -- MY_P="libreoffice-build-3.3.0.4" >declare -- MY_PV="3.3.0.4" >declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" >declare -x OPENGL_PROFILE="ati" >declare -- OPENGL_REQUIRED="never" >declare -- PATCHLEVEL="OOO320" >declare -x PATH="/usr/lib/icedtea6/bin:/usr/lib/ccache/bin:/usr/lib/distcc/bin:/usr/lib64/portage/bin/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.4" >declare -- PDEPEND=" bash-completion? ( app-shells/bash-completion )" >declare -x PHP_TARGETS="php5-3" >declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig" >declare -x PORTAGE_COMPRESS_EXCLUDE_SUFFIXES="css gif htm[l]? jp[e]?g js pdf png" >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/libreoffice-3.3.0_rc4/html")' >declare -- PREFIX="/usr" >declare -x PRELINK_PATH_MASK="/usr/lib64/libfreebl3.so:/usr/lib64/libnssdbm3.so:/usr/lib64/libsoftokn3.so" >declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND" >declare -x PROPERTIES="" >declare -x PROVIDE="virtual/ooo" >declare -x PYTHONDONTWRITEBYTECODE="1" >declare -- PYTHON_ABI="2.6" >declare -- PYTHON_COLORS="0" >declare -- PYTHON_DEPEND="2" >declare -- PYTHON_PKG_SETUP_EXECUTED="1" >declare -- PYTHON_REQUESTED_ACTIVE_VERSION="2" >declare -- PYTHON_SANITY_CHECKS_EXECUTED="1" >declare -- PYTHON_TEST_VERBOSITY="1" >declare -- PYTHON_USE_WITH="threads" >declare -x QT4LIB="/usr/lib64/qt4" >declare -- QTHELP_REQUIRED="never" >declare -- QT_MINIMAL="4.6.0" >declare -- QT_PLUGIN_PATH="/usr/lib64/kde4/plugins/" >declare -x RDEPEND="java? ( >=virtual/jre-1.5 ) > linguas_af? ( app-dicts/myspell-af ) linguas_bg? ( app-dicts/myspell-bg ) linguas_ca? ( app-dicts/myspell-ca ) linguas_cs? ( app-dicts/myspell-cs ) linguas_cy? ( app-dicts/myspell-cy ) linguas_da? ( app-dicts/myspell-da ) linguas_de? ( app-dicts/myspell-de ) linguas_el? ( app-dicts/myspell-el ) linguas_en? ( app-dicts/myspell-en ) linguas_eo? ( app-dicts/myspell-eo ) linguas_es? ( app-dicts/myspell-es ) linguas_et? ( app-dicts/myspell-et ) linguas_fr? ( app-dicts/myspell-fr ) linguas_ga? ( app-dicts/myspell-ga ) linguas_gl? ( app-dicts/myspell-gl ) linguas_he? ( app-dicts/myspell-he ) linguas_hr? ( app-dicts/myspell-hr ) linguas_hu? ( app-dicts/myspell-hu ) linguas_it? ( app-dicts/myspell-it ) linguas_ku? ( app-dicts/myspell-ku ) linguas_lt? ( app-dicts/myspell-lt ) linguas_mk? ( app-dicts/myspell-mk ) linguas_nb? ( app-dicts/myspell-nb ) linguas_nl? ( app-dicts/myspell-nl ) linguas_nn? ( app-dicts/myspell-nn ) linguas_pl? ( app-dicts/myspell-pl ) linguas_pt? ( app-dicts/myspell-pt ) linguas_ru? ( app-dicts/myspell-ru ) linguas_sk? ( app-dicts/myspell-sk ) linguas_sl? ( app-dicts/myspell-sl ) linguas_sv? ( app-dicts/myspell-sv ) linguas_tn? ( app-dicts/myspell-tn ) linguas_zu? ( app-dicts/myspell-zu ) > !app-office/libreoffice-bin > !app-office/openoffice-bin > !app-office/openoffice > x11-libs/libXaw > x11-libs/libXinerama > x11-libs/libXrandr > >=dev-lang/perl-5.0 > >=dev-libs/glib-2.18 > dbus? ( >=dev-libs/dbus-glib-0.71 ) > gnome? ( >=x11-libs/gtk+-2.10 > >=gnome-base/gconf-2.0 > >=x11-libs/cairo-1.0.2 ) > gtk? ( >=x11-libs/gtk+-2.10 > >=x11-libs/cairo-1.0.2 ) > eds? ( >=gnome-extra/evolution-data-server-1.2 ) > gstreamer? ( >=media-libs/gstreamer-0.10 > >=media-libs/gst-plugins-base-0.10 ) > java? ( >=dev-java/bsh-2.0_beta4 > dev-java/lucene:2.3 > dev-java/lucene-analyzers:2.3 > dev-java/rhino:1.5 ) > nsplugin? ( net-libs/xulrunner:1.9 > >=dev-libs/nspr-4.6.6 > >=dev-libs/nss-3.11-r1 ) > opengl? ( virtual/opengl ) > >=net-libs/neon-0.24.7 > >=dev-libs/openssl-0.9.8g > >=media-libs/freetype-2.1.10-r2 > >=media-libs/fontconfig-2.3.0 > cups? ( net-print/cups ) > dev-libs/redland[ssl] > media-libs/jpeg > media-libs/libpng > app-arch/zip > app-arch/unzip > >=app-text/hunspell-1.1.4-r1 > dev-libs/expat > >=dev-libs/icu-4.0 > >=sys-libs/db-4.3 > >=media-libs/vigra-1.4 > >=app-text/poppler-0.12.3-r3[xpdf-headers] bash-completion? ( app-admin/eselect ) java? ( >=dev-java/java-config-2.1.9-r1 ) kde? ( >=kde-base/oxygen-icons-4.4[aqua=] ) kde? ( > dev-lang/perl > >=x11-libs/qt-core-4.6.0:4[qt3support,ssl] > >=x11-libs/qt-gui-4.6.0:4[accessibility,dbus] > >=x11-libs/qt-qt3support-4.6.0:4[accessibility,kde] > >=x11-libs/qt-script-4.6.0:4 > >=x11-libs/qt-sql-4.6.0:4[qt3support] > >=x11-libs/qt-svg-4.6.0:4 > >=x11-libs/qt-test-4.6.0:4 > !aqua? ( > x11-libs/libXext > x11-libs/libXt > x11-libs/libXxf86vm > ) > >=kde-base/kdelibs-4.4[aqua=] ) >=app-admin/eselect-python-20091230 =dev-lang/python-2* =dev-lang/python-2*[threads]" >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}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\"" >declare -x RUBY_TARGETS="" >declare -x S="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/work/libreoffice-build-3.3.0.4" >declare -x SANDBOX_DEBUG="0" >declare -x SANDBOX_DENY="" >declare -x SANDBOX_PID="26192" >declare -x SANDBOX_PREDICT="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/homedir:/dev/crypto:/var/cache/fontconfig" >declare -x SANDBOX_READ="/:/dev/stdin:/var/tmp:/var/tmp/ccache" >declare -x SANDBOX_VERBOSE="1" >declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/stderr:/dev/stdout:/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/cache/jython:/var/tmp:/var/tmp/:/var/tmp/ccache:/var/tmp/portage/.distcc:/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/homedir/.bash_history" >declare -x SEARCH_DIRS_MASK="" >declare -x SLOT="0" >declare -- SPELL_DIRS="af bg ca cs cy da de el en eo es et fr ga gl he hr hu it ku lt mk nb nl nn pl pt ru sk sl sv tn zu" >declare -- SPELL_DIRS_DEPEND=" linguas_af? ( app-dicts/myspell-af ) linguas_bg? ( app-dicts/myspell-bg ) linguas_ca? ( app-dicts/myspell-ca ) linguas_cs? ( app-dicts/myspell-cs ) linguas_cy? ( app-dicts/myspell-cy ) linguas_da? ( app-dicts/myspell-da ) linguas_de? ( app-dicts/myspell-de ) linguas_el? ( app-dicts/myspell-el ) linguas_en? ( app-dicts/myspell-en ) linguas_eo? ( app-dicts/myspell-eo ) linguas_es? ( app-dicts/myspell-es ) linguas_et? ( app-dicts/myspell-et ) linguas_fr? ( app-dicts/myspell-fr ) linguas_ga? ( app-dicts/myspell-ga ) linguas_gl? ( app-dicts/myspell-gl ) linguas_he? ( app-dicts/myspell-he ) linguas_hr? ( app-dicts/myspell-hr ) linguas_hu? ( app-dicts/myspell-hu ) linguas_it? ( app-dicts/myspell-it ) linguas_ku? ( app-dicts/myspell-ku ) linguas_lt? ( app-dicts/myspell-lt ) linguas_mk? ( app-dicts/myspell-mk ) linguas_nb? ( app-dicts/myspell-nb ) linguas_nl? ( app-dicts/myspell-nl ) linguas_nn? ( app-dicts/myspell-nn ) linguas_pl? ( app-dicts/myspell-pl ) linguas_pt? ( app-dicts/myspell-pt ) linguas_ru? ( app-dicts/myspell-ru ) linguas_sk? ( app-dicts/myspell-sk ) linguas_sl? ( app-dicts/myspell-sl ) linguas_sv? ( app-dicts/myspell-sv ) linguas_tn? ( app-dicts/myspell-tn ) linguas_zu? ( app-dicts/myspell-zu )" >declare -- SRC="OOo_3.3.0_rc4_src" >declare -- SRC_URI="http://download.documentfoundation.org/libreoffice/src/libreoffice-build-3.3.0.4.tar.gz > templates? ( > http://extensions.services.openoffice.org/files/273/0/Sun_ODF_Template_Pack_en-US.oxt > http://extensions.services.openoffice.org/files/295/1/Sun_ODF_Template_Pack_de.oxt > http://extensions.services.openoffice.org/files/299/0/Sun_ODF_Template_Pack_it.oxt > http://extensions.services.openoffice.org/files/297/0/Sun_ODF_Template_Pack_fr.oxt > http://extensions.services.openoffice.org/files/301/1/Sun_ODF_Template_Pack_es.oxt > ftp://ftp.devall.hu/kami/go-oo//Sun_ODF_Template_Pack_hu.oxt > ) > odk? ( java? ( http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll ) ) > http://download.go-oo.org/SRC680/extras-3.1.tar.bz2 > http://download.go-oo.org/SRC680/biblio.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-artwork-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-base-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-bootstrap-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-calc-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-components-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-extensions-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-extras-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-filters-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-help-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-impress-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-libs-core-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-libs-extern-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-libs-extern-sys-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-libs-gui-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-postprocess-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-sdk-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-testing-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-ure-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-writer-3.3.0.4.tar.bz2 http://download.documentfoundation.org/libreoffice/src/libreoffice-l10n-3.3.0.4.tar.bz2 http://hg.services.openoffice.org/binaries/09357cc74975b01714e00c5899ea1881-pixman-0.12.0.tar.gz http://hg.services.openoffice.org/binaries/128cfc86ed5953e57fe0f5ae98b62c2e-libtextcat-2.2.tar.gz http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip http://hg.services.openoffice.org/binaries/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz http://hg.services.openoffice.org/binaries/24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html http://hg.services.openoffice.org/binaries/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz http://hg.services.openoffice.org/binaries/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz http://hg.services.openoffice.org/binaries/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz http://hg.services.openoffice.org/binaries/ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip http://hg.services.openoffice.org/binaries/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip http://hg.services.openoffice.org/binaries/377a60170e5185eb63d3ed2fae98e621-README_silgraphite-2.3.1.txt http://hg.services.openoffice.org/binaries/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip http://hg.services.openoffice.org/binaries/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz http://hg.services.openoffice.org/binaries/48470d662650c3c074e1c3fabbc67bbd-README_source-9.0.0.7-bj.txt http://hg.services.openoffice.org/binaries/4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz http://hg.services.openoffice.org/binaries/599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz http://hg.services.openoffice.org/binaries/5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip http://hg.services.openoffice.org/binaries/7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz http://hg.services.openoffice.org/binaries/79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip http://hg.services.openoffice.org/binaries/8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar http://hg.services.openoffice.org/binaries/8ea307d71d11140574bfb9fcc2487e33-libbase.zip http://hg.services.openoffice.org/binaries/a06a496d7a43cbdc35e69dbe678efadb-libloader.zip http://hg.services.openoffice.org/binaries/a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip http://hg.services.openoffice.org/binaries/bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1 http://hg.services.openoffice.org/binaries/c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz http://hg.services.openoffice.org/binaries/d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz http://hg.services.openoffice.org/binaries/d1a3205871c3c52e8a50c9f18510ae12-libformula.zip http://hg.services.openoffice.org/binaries/d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip http://hg.services.openoffice.org/binaries/dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip http://hg.services.openoffice.org/binaries/e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt http://hg.services.openoffice.org/binaries/f3e2febd267c8e4b13df00dac211dd6d-flute.zip http://hg.services.openoffice.org/binaries/f7925ba8491fe570e5164d2c72791358-libfonts.zip http://hg.services.openoffice.org/binaries/fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt http://hg.services.openoffice.org/binaries/fca8706f2c4619e2fa3f8f42f8fc1e9d-rasqal-0.9.16.tar.gz http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz http://hg.services.openoffice.org/binaries/37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz http://hg.services.openoffice.org/binaries/cf8a6967f7de535ae257fa411c98eb88-mdds_0.3.0.tar.bz2 http://download.go-oo.org/src/47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2 http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2 http://download.go-oo.org/src/0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz http://download.go-oo.org/src/71474203939fafbe271e1263e61d083e-nss-3.12.8-with-nspr-4.8.6.tar.gz http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll http://download.go-oo.org/src/86e390f015e505dd71a66f0123c62f09-libwpd-0.9.0.tar.bz2 http://download.go-oo.org/src/5ba6a61a2f66dfd5fee8cdd4cd262a37-libwpg-0.2.0.tar.bz2 http://download.go-oo.org/src/9e436bff44c60dc8b97cba0c7fc11a5c-libwps-0.2.0.tar.bz2 http://www.numbertext.org/linux/881af2b7dca9b8259abbca00bbbc004d-LinLibertineG-20110101.zip" >declare -x SSH_ASKPASS="/usr/bin/x11-ssh-askpass" >declare -x SSH_CLIENT="10.20.30.1 44135 22" >declare -x SSH_CONNECTION="10.20.30.1 44135 10.20.30.10 22" >declare -x SSH_TTY="/dev/pts/0" >declare -x STAGE1_USE="multilib nptl nptlonly unicode" >declare -x SUDO_COMMAND="/usr/bin/emerge -av libreoffice" >declare -x SUDO_GID="1000" >declare -x SUDO_UID="1000" >declare -x SUDO_USER="paolo" >declare -x SYMLINK_LIB="yes" >declare -x USE="amd64 bash-completion binfilter cups dbus elibc_glibc gstreamer gtk java kde kernel_linux linguas_it multilib nsplugin opengl pam templates test userland_GNU" >declare -x USERLAND="GNU" >declare -x USERNAME="root" >declare -x VIDEO_CARDS="" >declare -- VIRTUALX_DEPEND="!prefix? ( x11-base/xorg-server ) > x11-apps/xhost" >declare -- VIRTUALX_REQUIRED="manual" >declare -- VIRTUALX_USE="test" >declare -x WANT_AUTOCONF="2.5" >declare -x WANT_AUTOMAKE="1.9" >declare -x WANT_JAVA_CONFIG="2" >declare -- WEBKIT_REQUIRED="never" >declare -- X="zu" >declare -x XDG_CONFIG_DIRS="/etc/xdg" >declare -x XDG_CONFIG_HOME="/var/tmp/portage/app-office/libreoffice-3.3.0_rc4/temp" >declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share" >declare -x XDG_SESSION_COOKIE="1415bb427a995ee575a9c00045b4a081-1295950377.309073-1418560629" >declare -x XSESSION="Xfce4" >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 XZ_OPT="--memory=max" >declare -- _="PKG_INSTALL_MASK" >declare -a _CPYTHON2_GLOBALLY_SUPPORTED_ABIS='([0]="2.4" [1]="2.5" [2]="2.6" [3]="2.7")' >declare -a _CPYTHON3_GLOBALLY_SUPPORTED_ABIS='([0]="3.0" [1]="3.1" [2]="3.2")' >declare -x _E_DOCDESTTREE_="" >declare -x _E_EXEDESTTREE_="" >declare -a _JYTHON_GLOBALLY_SUPPORTED_ABIS='([0]="2.5-jython")' >declare -- _LATEST_AUTOMAKE="1.11" >declare -- _PYTHON_ABI_EXTRACTION_COMMAND="import platform >import sys >sys.stdout.write(\".\".join(str(x) for x in sys.version_info[:2])) >if platform.system()[:4] == \"Java\": > sys.stdout.write(\"-jython\")" >declare -a _PYTHON_GLOBALLY_SUPPORTED_ABIS='([0]="2.4" [1]="2.5" [2]="2.6" [3]="2.7" [4]="3.0" [5]="3.1" [6]="3.2" [7]="2.5-jython")' >declare -- _PYTHON_SHEBANG_BASE_PART_REGEX="^#![[:space:]]*([^[:space:]]*/usr/bin/env[[:space:]]+)?([^[:space:]]*/)?(jython|python)" >declare -- ___ECLASS_RECUR_MULTILIB="yes" >declare -- ___ECLASS_RECUR_TOOLCHAIN_FUNCS="yes" >declare -- actual_memory="4048304" >declare -- actual_space="63288" >declare -- f="it" >declare -- mod="l10n" >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; > if patch -p0 --dry-run "${file}" "${patch}" &>"${T}/elibtool.log"; then > einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."; > patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" &>"${T}/elibtool.log"; > ret=$?; > export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"; > else > ret=1; > fi; > return "${ret}" >} >ELT_walk_patches () >{ > local patch; > 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; > pushd "${ELT_PATCH_DIR}" > /dev/null; > for patch in $(find "${patch_set}" -maxdepth 1 -type f | LC_ALL=C sort -r); > do > if [[ -n ${rem_int_dep} ]]; then > local tmp="${T}/$$.rem_int_deps.patch"; > sed -e "s|@REM_INT_DEP@|${rem_int_dep}|g" "${patch}" > "${tmp}"; > patch=${tmp}; > fi; > if ELT_try_and_apply_patch "${file}" "${patch}"; then > ret=0; > break; > fi; > done; > popd > /dev/null; > return ${ret} >} >PYTHON () >{ > _python_check_python_pkg_setup_execution; > local ABI_output="0" absolute_path_output="0" final_ABI="0" PYTHON_ABI="${PYTHON_ABI}" python_interpreter python2="0" python3="0"; > while (($#)); do > case "$1" in > -2) > python2="1" > ;; > -3) > python3="1" > ;; > --ABI) > ABI_output="1" > ;; > -a | --absolute-path) > absolute_path_output="1" > ;; > -f | --final-ABI) > final_ABI="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "${ABI_output}" == "1" && "${absolute_path_output}" == "1" ]]; then > die "${FUNCNAME}(): '--ABI' and '--absolute-path' options cannot be specified simultaneously"; > fi; > if [[ "$((${python2} + ${python3} + ${final_ABI}))" -gt 1 ]]; then > die "${FUNCNAME}(): '-2', '-3' or '--final-ABI' options cannot be specified simultaneously"; > fi; > if [[ "$#" -eq 0 ]]; then > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > _python_calculate_PYTHON_ABIS; > PYTHON_ABI="${PYTHON_ABIS##* }"; > else > if [[ "${python2}" == "1" ]]; then > PYTHON_ABI="$(eselect python show --python2 --ABI)"; > if [[ -z "${PYTHON_ABI}" ]]; then > die "${FUNCNAME}(): Active version of CPython 2 not set"; > else > if [[ "${PYTHON_ABI}" != "2."* ]]; then > die "${FUNCNAME}(): Internal error in \`eselect python show --python2\`"; > fi; > fi; > else > if [[ "${python3}" == "1" ]]; then > PYTHON_ABI="$(eselect python show --python3 --ABI)"; > if [[ -z "${PYTHON_ABI}" ]]; then > die "${FUNCNAME}(): Active version of CPython 3 not set"; > else > if [[ "${PYTHON_ABI}" != "3."* ]]; then > die "${FUNCNAME}(): Internal error in \`eselect python show --python3\`"; > fi; > fi; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="$("${EPREFIX}/usr/bin/python" -c "${_PYTHON_ABI_EXTRACTION_COMMAND}")"; > if [[ -z "${PYTHON_ABI}" ]]; then > die "${FUNCNAME}(): Failure of extraction of locally active version of Python"; > fi; > fi; > fi; > fi; > fi; > else > if [[ "$#" -eq 1 ]]; then > if [[ "${final_ABI}" == "1" ]]; then > die "${FUNCNAME}(): '--final-ABI' option and Python ABI cannot be specified simultaneously"; > fi; > if [[ "${python2}" == "1" ]]; then > die "${FUNCNAME}(): '-2' option and Python ABI cannot be specified simultaneously"; > fi; > if [[ "${python3}" == "1" ]]; then > die "${FUNCNAME}(): '-3' option and Python ABI cannot be specified simultaneously"; > fi; > PYTHON_ABI="$1"; > else > die "${FUNCNAME}(): Invalid usage"; > fi; > fi; > if [[ "${ABI_output}" == "1" ]]; then > echo -n "${PYTHON_ABI}"; > return; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > python_interpreter="python${PYTHON_ABI}"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > python_interpreter="jython${PYTHON_ABI%-jython}"; > fi; > fi; > if [[ "${absolute_path_output}" == "1" ]]; then > echo -n "${EPREFIX}/usr/bin/${python_interpreter}"; > else > echo -n "${python_interpreter}"; > fi; > fi; > if [[ -n "${ABI}" && "${ABI}" != "${DEFAULT_ABI}" && "${DEFAULT_ABI}" != "default" ]]; then > echo -n "-${ABI}"; > fi >} >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 >} >Xeconf () >{ > export maketype="econf"; > virtualmake "$@" >} >Xemake () >{ > export maketype="emake"; > virtualmake "$@" >} >Xmake () >{ > export maketype="make"; > virtualmake "$@" >} >__versionator__test_version_compare () >{ > eshopts_push -s extglob; > local lt=1 eq=2 gt=3 p q; > function __versionator__test_version_compare_t () > { > version_compare "${1}" "${3}"; > local r=$?; > [[ ${r} -eq ${2} ]] || echo "FAIL: ${@} (got ${r} exp ${2})" > }; > echo " > 0 $lt 1 > 1 $lt 2 > 2 $gt 1 > 2 $eq 2 > 0 $eq 0 > 10 $lt 20 > 68 $eq 068 > 068 $gt 67 > 068 $lt 69 > > 1.0 $lt 2.0 > 2.0 $eq 2.0 > 2.0 $gt 1.0 > > 1.0 $gt 0.0 > 0.0 $eq 0.0 > 0.0 $lt 1.0 > > 0.1 $lt 0.2 > 0.2 $eq 0.2 > 0.3 $gt 0.2 > > 1.2 $lt 2.1 > 2.1 $gt 1.2 > > 1.2.3 $lt 1.2.4 > 1.2.4 $gt 1.2.3 > > 1.2.0 $eq 1.2 > 1.2.1 $gt 1.2 > 1.2 $lt 1.2.1 > > 1.2b $eq 1.2b > 1.2b $lt 1.2c > 1.2b $gt 1.2a > 1.2b $gt 1.2 > 1.2 $lt 1.2a > > 1.3 $gt 1.2a > 1.3 $lt 1.3a > > 1.0_alpha7 $lt 1.0_beta7 > 1.0_beta $lt 1.0_pre > 1.0_pre5 $lt 1.0_rc2 > 1.0_rc2 $lt 1.0 > > 1.0_p1 $gt 1.0 > 1.0_p1-r1 $gt 1.0_p1 > > 1.0_alpha6-r1 $gt 1.0_alpha6 > 1.0_beta6-r1 $gt 1.0_alpha6-r2 > > 1.0_pre1 $lt 1.0-p1 > > 1.0p $gt 1.0_p1 > 1.0r $gt 1.0-r1 > 1.6.15 $gt 1.6.10-r2 > 1.6.10-r2 $lt 1.6.15 > > " | while read a b c; do > [[ -z "${a}${b}${c}" ]] && continue; > __versionator__test_version_compare_t "${a}" "${b}" "${c}"; > done; > for q in "alpha beta pre rc=${lt};${gt}" "p r=${gt};${lt}"; > do > for p in ${q%%=*}; > do > local c=${q##*=}; > local alt=${c%%;*} agt=${c##*;}; > __versionator__test_version_compare_t "1.0" $agt "1.0_${p}"; > __versionator__test_version_compare_t "1.0" $agt "1.0_${p}1"; > __versionator__test_version_compare_t "1.0" $agt "1.0_${p}068"; > __versionator__test_version_compare_t "2.0_${p}" $alt "2.0"; > __versionator__test_version_compare_t "2.0_${p}1" $alt "2.0"; > __versionator__test_version_compare_t "2.0_${p}068" $alt "2.0"; > __versionator__test_version_compare_t "1.0_${p}" $eq "1.0_${p}"; > __versionator__test_version_compare_t "0.0_${p}" $lt "0.0_${p}1"; > __versionator__test_version_compare_t "666_${p}3" $gt "666_${p}"; > __versionator__test_version_compare_t "1_${p}7" $lt "1_${p}8"; > __versionator__test_version_compare_t "1_${p}7" $eq "1_${p}7"; > __versionator__test_version_compare_t "1_${p}7" $gt "1_${p}6"; > __versionator__test_version_compare_t "1_${p}09" $eq "1_${p}9"; > done; > done; > for p in "-r" "_p"; > do > __versionator__test_version_compare_t "7.2${p}1" $lt "7.2${p}2"; > __versionator__test_version_compare_t "7.2${p}2" $gt "7.2${p}1"; > __versionator__test_version_compare_t "7.2${p}3" $gt "7.2${p}2"; > __versionator__test_version_compare_t "7.2${p}2" $lt "7.2${p}3"; > done; > eshopts_pop >} >_cdrom_locate_file_on_cd () >{ > local mline=""; > local showedmsg=0 showjolietmsg=0; > while [[ -z ${CDROM_ROOT} ]]; do > local i=0; > local -a cdset=(${*//:/ }); > if [[ -n ${CDROM_SET} ]]; then > cdset=(${cdset[${CDROM_SET}]}); > fi; > while [[ -n ${cdset[${i}]} ]]; do > local dir=$(dirname ${cdset[${i}]}); > local file=$(basename ${cdset[${i}]}); > local point= node= fs= foo=; > while read point node fs foo; do > [[ " cd9660 iso9660 udf " != *" ${fs} "* ]] && ! [[ ${fs} == "subfs" && ",${opts}," == *",fs=cdfss,"* ]] && continue; > point=${point//\040/ }; > [[ ! -d ${point}/${dir} ]] && continue; > [[ -z $(find "${point}/${dir}" -maxdepth 1 -iname "${file}") ]] && continue; > export CDROM_ROOT=${point}; > export CDROM_SET=${i}; > export CDROM_MATCH=${cdset[${i}]}; > return; > done <<< "$(get_mounts)"; > ((++i)); > done; > echo; > if [[ ${showedmsg} -eq 0 ]]; then > if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then > if [[ -z ${CDROM_NAME} ]]; then > einfo "Please insert+mount the cdrom for ${PN} now !"; > else > einfo "Please insert+mount the ${CDROM_NAME} cdrom now !"; > fi; > else > if [[ -z ${CDROM_NAME_1} ]]; then > einfo "Please insert+mount cd #${CDROM_CURRENT_CD} for ${PN} now !"; > else > local var="CDROM_NAME_${CDROM_CURRENT_CD}"; > einfo "Please insert+mount the ${!var} cdrom now !"; > fi; > fi; > showedmsg=1; > fi; > einfo "Press return to scan for the cd again"; > einfo "or hit CTRL+C to abort the emerge."; > echo; > if [[ ${showjolietmsg} -eq 0 ]]; then > showjolietmsg=1; > else > ewarn "If you are having trouble with the detection"; > ewarn "of your CD, it is possible that you do not have"; > ewarn "Joliet support enabled in your kernel. Please"; > ewarn "check that CONFIG_JOLIET is enabled in your kernel."; > ebeep 5; > fi; > read || die "something is screwed with your system"; > done >} >_do_blocker () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Missing parameter"; > local pkg=kde-base/$1; > shift; > local param slot def="unset" var atom; > for slot in 3.5 ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; > do > local block_${slot//./_}="unset"; > done; > for param in "$@"; > do > if [[ ${param/:} == ${param} ]]; then > def=${param}; > else > slot=${param#*:}; > local block_${slot//./_}=${param%:*}; > fi; > done; > for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; > do > var=block_${slot//./_}; > [[ ${!var} == "unset" ]] && var=def; > if [[ ${!var} == "unset" ]] || [[ -z ${!var} ]] || _greater_max_in_slot ${!var#<} ${slot}; then > atom=${pkg}; > else > if [[ ${!var} == "0" ]] || _less_min_in_slot ${!var#<} ${slot}; then > continue; > else > if [[ ${!var:0:1} == "<" ]]; then > atom="<${pkg}-${!var:1}"; > else > atom="<=${pkg}-${!var}"; > fi; > fi; > fi; > if [[ ${SLOT} == ${slot} ]]; then > echo " !${atom}:${slot}"; > else > echo " !kdeprefix? ( !${atom}:${slot}[-kdeprefix] )"; > fi; > done; > if [[ ${block_3_5} != "unset" && ${block_3_5} != "0" ]]; then > if [[ -z ${block_3_5} ]]; then > atom=${pkg}; > else > if [[ ${block_3_5:0:1} == "<" ]]; then > atom="<${pkg}-${block_3_5:1}"; > else > atom="<=${pkg}-${block_3_5}"; > fi; > fi; > echo " !${atom}:3.5"; > fi >} >_elibtoolize () >{ > local opts g=; > [[ -n $(autotools_check_macro AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT) ]] || return 0; > [[ -f GNUmakefile.am || -f Makefile.am ]] && opts="--automake"; > [[ ${CHOST} == *-darwin* ]] && g=g; > autotools_run_tool ${LIBTOOLIZE:-${g}libtoolize} "$@" ${opts}; > eaclocal >} >_enable_selected_linguas_dir () >{ > local lingua linguas sr_mess wp; > local dir=${1}; > [[ -d "${dir}" ]] || die "linguas dir \"${dir}\" does not exist"; > comment_all_add_subdirectory "${dir}"; > pushd "${dir}" > /dev/null; > sr_mess="sr@latn sr@latin sr@Latin"; > for wp in ${sr_mess}; > do > [[ -e "${wp}.po" ]] && mv "${wp}.po" "sr@Latn.po"; > if [[ -d "${wp}" ]]; then > mv "${wp}" "sr@Latn"; > sed -i -e "s:${wp}:sr@Latin:g" CMakeLists.txt; > fi; > done; > for lingua in ${KDE_LINGUAS}; > do > if [[ -e "${lingua}.po" ]]; then > mv "${lingua}.po" "${lingua}.po.old"; > fi; > done; > for lingua in ${KDE_LINGUAS}; > do > if use linguas_${lingua}; then > if [[ -d "${lingua}" ]]; then > linguas="${linguas} ${lingua}"; > sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed."; > fi; > if [[ -e "${lingua}.po.old" ]]; then > linguas="${linguas} ${lingua}"; > mv "${lingua}.po.old" "${lingua}.po"; > fi; > fi; > done; > [[ -n "${linguas}" ]] && echo ">>> Enabling languages: ${linguas}"; > popd > /dev/null >} >_epatch_draw_line () >{ > [[ -z $1 ]] && set "$(printf "%65s" '')"; > echo "${1//?/=}" >} >_filter-hardened () >{ > local f; > for f in "$@"; > do > case "${f}" in > -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie) > gcc-specs-pie || continue; > is-flagq -nopie || append-flags -nopie > ;; > -fstack-protector) > gcc-specs-ssp || continue; > is-flagq -fno-stack-protector || append-flags $(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 VAL; > declare -a new; > VAR=$1; > shift; > eval VAL=\${${VAR}}; > for f in ${VAL}; > do > for x in "$@"; > do > [[ ${f} == ${x} ]] && continue 2; > done; > eval new\[\${\#new\[@]}]=\${f}; > done; > eval export ${VAR}=\${new\[*]} >} >_gcc-install-dir () >{ > echo "$(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" >} >_greater_max_in_slot () >{ > local ver=$1; > local slot=$2; > [[ $slot == live ]] && return 1; > local test=${slot}.50; > version_compare $1 ${test}; > (( $? != 1 )) >} >_is_flagq () >{ > local x; > for x in ${!1}; > do > [[ ${x} == $2 ]] && return 0; > done; > return 1 >} >_less_min_in_slot () >{ > local ver=$1; > local slot=$2; > local test=9999_pre; > [[ $slot != live ]] && test=${slot%.*}.$((${slot#*.} - 1)).50; > version_compare $1 ${test}; > (( $? != 3 )) >} >_python_abi-specific_local_scope () >{ > [[ " ${FUNCNAME[@]:2} " =~ " "(_python_final_sanity_checks|python_execute_function|python_mod_optimize|python_mod_cleanup)" " ]] >} >_python_calculate_PYTHON_ABIS () >{ > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > _python_initial_sanity_checks; > if [[ "$(declare -p PYTHON_ABIS 2> /dev/null)" != "declare -x PYTHON_ABIS="* ]] && has "${EAPI:-0}" 0 1 2 3; then > local PYTHON_ABI restricted_ABI restricted_ABIs support_ABI supported_PYTHON_ABIS; > restricted_ABIs="${RESTRICT_PYTHON_ABIS// / >}"; > if [[ "$(declare -p USE_PYTHON 2> /dev/null)" == "declare -x USE_PYTHON="* ]]; then > local cpython_enabled="0"; > if [[ -z "${USE_PYTHON}" ]]; then > die "USE_PYTHON variable is empty"; > fi; > for PYTHON_ABI in ${USE_PYTHON}; > do > if ! has "${PYTHON_ABI}" "${_PYTHON_GLOBALLY_SUPPORTED_ABIS[@]}"; then > die "USE_PYTHON variable contains invalid value '${PYTHON_ABI}'"; > fi; > if has "${PYTHON_ABI}" "${_CPYTHON2_GLOBALLY_SUPPORTED_ABIS[@]}" "${_CPYTHON3_GLOBALLY_SUPPORTED_ABIS[@]}"; then > cpython_enabled="1"; > fi; > support_ABI="1"; > while read restricted_ABI; do > if _python_check_python_abi_matching "${PYTHON_ABI}" "${restricted_ABI}"; then > support_ABI="0"; > break; > fi; > done <<< "${restricted_ABIs}"; > [[ "${support_ABI}" == "1" ]] && export PYTHON_ABIS+="${PYTHON_ABIS:+ }${PYTHON_ABI}"; > done; > if [[ -z "${PYTHON_ABIS//[${IFS}]/}" ]]; then > die "USE_PYTHON variable does not enable any Python ABI supported by ${CATEGORY}/${PF}"; > fi; > if [[ "${cpython_enabled}" == "0" ]]; then > die "USE_PYTHON variable does not enable any CPython ABI"; > fi; > else > local python_version python2_version= python3_version= support_python_major_version; > if ! has_version "dev-lang/python"; then > die "${FUNCNAME}(): 'dev-lang/python' is not installed"; > fi; > python_version="$("${EPREFIX}/usr/bin/python" -c 'from sys import version_info; print(".".join(str(x) for x in version_info[:2]))')"; > if has_version "=dev-lang/python-2*"; then > if [[ "$(readlink "${EPREFIX}/usr/bin/python2")" != "python2."* ]]; then > die "'${EPREFIX}/usr/bin/python2' is not valid symlink"; > fi; > python2_version="$("${EPREFIX}/usr/bin/python2" -c 'from sys import version_info; print(".".join(str(x) for x in version_info[:2]))')"; > for PYTHON_ABI in "${_CPYTHON2_GLOBALLY_SUPPORTED_ABIS[@]}"; > do > support_python_major_version="1"; > while read restricted_ABI; do > if _python_check_python_abi_matching "${PYTHON_ABI}" "${restricted_ABI}"; then > support_python_major_version="0"; > fi; > done <<< "${restricted_ABIs}"; > [[ "${support_python_major_version}" == "1" ]] && break; > done; > if [[ "${support_python_major_version}" == "1" ]]; then > while read restricted_ABI; do > if _python_check_python_abi_matching "${python2_version}" "${restricted_ABI}"; then > die "Active version of CPython 2 is not supported by ${CATEGORY}/${PF}"; > fi; > done <<< "${restricted_ABIs}"; > else > python2_version=""; > fi; > fi; > if has_version "=dev-lang/python-3*"; then > if [[ "$(readlink "${EPREFIX}/usr/bin/python3")" != "python3."* ]]; then > die "'${EPREFIX}/usr/bin/python3' is not valid symlink"; > fi; > python3_version="$("${EPREFIX}/usr/bin/python3" -c 'from sys import version_info; print(".".join(str(x) for x in version_info[:2]))')"; > for PYTHON_ABI in "${_CPYTHON3_GLOBALLY_SUPPORTED_ABIS[@]}"; > do > support_python_major_version="1"; > while read restricted_ABI; do > if _python_check_python_abi_matching "${PYTHON_ABI}" "${restricted_ABI}"; then > support_python_major_version="0"; > fi; > done <<< "${restricted_ABIs}"; > [[ "${support_python_major_version}" == "1" ]] && break; > done; > if [[ "${support_python_major_version}" == "1" ]]; then > while read restricted_ABI; do > if _python_check_python_abi_matching "${python3_version}" "${restricted_ABI}"; then > die "Active version of CPython 3 is not supported by ${CATEGORY}/${PF}"; > fi; > done <<< "${restricted_ABIs}"; > else > python3_version=""; > fi; > fi; > if [[ -n "${python2_version}" && "${python_version}" == "2."* && "${python_version}" != "${python2_version}" ]]; then > eerror "Python wrapper is configured incorrectly or '${EPREFIX}/usr/bin/python2' symlink"; > eerror "is set incorrectly. Use \`eselect python\` to fix configuration."; > die "Incorrect configuration of Python"; > fi; > if [[ -n "${python3_version}" && "${python_version}" == "3."* && "${python_version}" != "${python3_version}" ]]; then > eerror "Python wrapper is configured incorrectly or '${EPREFIX}/usr/bin/python3' symlink"; > eerror "is set incorrectly. Use \`eselect python\` to fix configuration."; > die "Incorrect configuration of Python"; > fi; > PYTHON_ABIS="${python2_version} ${python3_version}"; > PYTHON_ABIS="${PYTHON_ABIS# }"; > export PYTHON_ABIS="${PYTHON_ABIS% }"; > fi; > fi; > _python_final_sanity_checks >} >_python_check_python_abi_matching () >{ > if [[ "$#" -ne 2 ]]; then > die "${FUNCNAME}() requires 2 arguments"; > fi; > if [[ "$2" == *"-cpython" ]]; then > [[ "$1" =~ ^[[:digit:]]+\.[[:digit:]]+$ && "$1" == ${2%-cpython} ]]; > else > if [[ "$2" == *"-jython" ]]; then > [[ "$1" == $2 ]]; > else > if [[ "$1" =~ ^[[:digit:]]+\.[[:digit:]]+$ ]]; then > [[ "$1" == $2 ]]; > else > if [[ "$1" =~ ^[[:digit:]]+\.[[:digit:]]+-jython$ ]]; then > [[ "${1%-jython}" == $2 ]]; > else > die "${FUNCNAME}(): Unrecognized Python ABI '$1'"; > fi; > fi; > fi; > fi >} >_python_check_python_pkg_setup_execution () >{ > [[ " ${FUNCNAME[@]:1} " =~ " "(python_set_active_version|python_pkg_setup)" " ]] && return; > if ! has "${EAPI:-0}" 0 1 2 3 && [[ -z "${PYTHON_PKG_SETUP_EXECUTED}" ]]; then > die "python_pkg_setup() not called"; > fi >} >_python_clean_compiled_modules () >{ > _python_initialize_prefix_variables; > _python_set_color_variables; > [[ "${FUNCNAME[1]}" =~ ^(python_mod_optimize|python_mod_cleanup)$ ]] || die "${FUNCNAME}(): Invalid usage"; > local base_module_name compiled_file compiled_files=() dir path py_file root; > root="${EROOT%/}"; > for path in "$@"; > do > compiled_files=(); > if [[ -d "${path}" ]]; then > while read -d '' -r compiled_file; do > compiled_files+=("${compiled_file}"); > done < <(find "${path}" "(" -name "*.py[co]" -o -name "*\$py.class" ")" -print0); > if [[ "${EBUILD_PHASE}" == "postrm" ]]; then > find "${path}" -type d | sort -r | while read -r dir; do > if rmdir "${dir}" 2> /dev/null; then > echo "${_CYAN}<<< ${dir}${_NORMAL}"; > fi; > done; > fi; > else > if [[ "${path}" == *.py ]]; then > base_module_name="${path##*/}"; > base_module_name="${base_module_name%.py}"; > if [[ -d "${path%/*}/__pycache__" ]]; then > while read -d '' -r compiled_file; do > compiled_files+=("${compiled_file}"); > done < <(find "${path%/*}/__pycache__" "(" -name "${base_module_name}.*.py[co]" -o -name "${base_module_name}\$py.class" ")" -print0); > fi; > compiled_files+=("${path}c" "${path}o" "${path%.py}\$py.class"); > fi; > fi; > for compiled_file in "${compiled_files[@]}"; > do > [[ ! -f "${compiled_file}" ]] && continue; > dir="${compiled_file%/*}"; > dir="${dir##*/}"; > if [[ "${compiled_file}" == *.py[co] ]]; then > if [[ "${dir}" == "__pycache__" ]]; then > base_module_name="${compiled_file##*/}"; > base_module_name="${base_module_name%.*py[co]}"; > base_module_name="${base_module_name%.*}"; > py_file="${compiled_file%__pycache__/*}${base_module_name}.py"; > else > py_file="${compiled_file%[co]}"; > fi; > if [[ "${EBUILD_PHASE}" == "postinst" ]]; then > [[ -f "${py_file}" && "${compiled_file}" -nt "${py_file}" ]] && continue; > else > [[ -f "${py_file}" ]] && continue; > fi; > echo "${_BLUE}<<< ${compiled_file%[co]}[co]${_NORMAL}"; > rm -f "${compiled_file%[co]}"[co]; > else > if [[ "${compiled_file}" == *\$py.class ]]; then > if [[ "${dir}" == "__pycache__" ]]; then > base_module_name="${compiled_file##*/}"; > base_module_name="${base_module_name%\$py.class}"; > py_file="${compiled_file%__pycache__/*}${base_module_name}.py"; > else > py_file="${compiled_file%\$py.class}.py"; > fi; > if [[ "${EBUILD_PHASE}" == "postinst" ]]; then > [[ -f "${py_file}" && "${compiled_file}" -nt "${py_file}" ]] && continue; > else > [[ -f "${py_file}" ]] && continue; > fi; > echo "${_BLUE}<<< ${compiled_file}${_NORMAL}"; > rm -f "${compiled_file}"; > else > die "${FUNCNAME}(): Unrecognized file type: '${compiled_file}'"; > fi; > fi; > dir="${compiled_file%/*}"; > while [[ "${dir}" != "${root}" ]]; do > if rmdir "${dir}" 2> /dev/null; then > echo "${_CYAN}<<< ${dir}${_NORMAL}"; > else > break; > fi; > dir="${dir%/*}"; > done; > done; > done >} >_python_final_sanity_checks () >{ > if ! _python_implementation && [[ "$(declare -p PYTHON_SANITY_CHECKS_EXECUTED 2> /dev/null)" != "declare -- PYTHON_SANITY_CHECKS_EXECUTED="* || " ${FUNCNAME[@]:1} " =~ " "(python_set_active_version|python_pkg_setup)" " && -z "${PYTHON_SKIP_SANITY_CHECKS}" ]]; then > local PYTHON_ABI="${PYTHON_ABI}"; > for PYTHON_ABI in ${PYTHON_ABIS-${PYTHON_ABI}}; > do > if ! has_version "$(python_get_implementational_package)"; then > die "$(python_get_implementational_package) is not installed"; > fi; > if [[ "$(EPYTHON="$(PYTHON)" python -c "${_PYTHON_ABI_EXTRACTION_COMMAND}")" != "${PYTHON_ABI}" ]]; then > eerror "Path to 'python': '$(type -p python)'"; > eerror "ABI: '${ABI}'"; > eerror "DEFAULT_ABI: '${DEFAULT_ABI}'"; > eerror "EPYTHON: '$(PYTHON)'"; > eerror "PYTHON_ABI: '${PYTHON_ABI}'"; > eerror "Locally active version of Python: '$(EPYTHON="$(PYTHON)" python -c "${_PYTHON_ABI_EXTRACTION_COMMAND}")'"; > die "'python' does not respect EPYTHON variable"; > fi; > done; > fi; > PYTHON_SANITY_CHECKS_EXECUTED="1" >} >_python_get_implementation () >{ > local ignore_invalid="0"; > while (($#)); do > case "$1" in > --ignore-invalid) > ignore_invalid="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "$#" -ne 1 ]]; then > die "${FUNCNAME}() requires 1 argument"; > fi; > if [[ "$1" =~ ^[[:digit:]]+\.[[:digit:]]+$ ]]; then > echo "CPython"; > else > if [[ "$1" =~ ^[[:digit:]]+\.[[:digit:]]+-jython$ ]]; then > echo "Jython"; > else > if [[ "${ignore_invalid}" == "0" ]]; then > die "${FUNCNAME}(): Unrecognized Python ABI '$1'"; > fi; > fi; > fi >} >_python_implementation () >{ > if [[ "${CATEGORY}/${PN}" == "dev-lang/python" ]]; then > return 0; > else > if [[ "${CATEGORY}/${PN}" == "dev-java/jython" ]]; then > return 0; > else > return 1; > fi; > fi >} >_python_initial_sanity_checks () >{ > if [[ "$(declare -p PYTHON_SANITY_CHECKS_EXECUTED 2> /dev/null)" != "declare -- PYTHON_SANITY_CHECKS_EXECUTED="* || " ${FUNCNAME[@]:1} " =~ " "(python_set_active_version|python_pkg_setup)" " && -z "${PYTHON_SKIP_SANITY_CHECKS}" ]]; then > if [[ "$(readlink "${EPREFIX}/usr/bin/python")" != "python-wrapper" ]]; then > eerror "'${EPREFIX}/usr/bin/python' is not valid symlink."; > eerror "Use \`eselect python set \${python_interpreter}\` to fix this problem."; > die "'${EPREFIX}/usr/bin/python' is not valid symlink"; > fi; > if [[ "$(<"${EPREFIX}/usr/bin/python-config")" != *"Gentoo python-config wrapper script"* ]]; then > eerror "'${EPREFIX}/usr/bin/python-config' is not valid script"; > eerror "Use \`eselect python set \${python_interpreter}\` to fix this problem."; > die "'${EPREFIX}/usr/bin/python-config' is not valid script"; > fi; > fi >} >_python_initialize_prefix_variables () >{ > if has "${EAPI:-0}" 0 1 2; then > if [[ -n "${ROOT}" && -z "${EROOT}" ]]; then > EROOT="${ROOT%/}${EPREFIX}/"; > fi; > if [[ -n "${D}" && -z "${ED}" ]]; then > ED="${D%/}${EPREFIX}/"; > fi; > fi >} >_python_package_supporting_installation_for_multiple_python_abis () >{ > if [[ "${EBUILD_PHASE}" == "depend" ]]; then > die "${FUNCNAME}() cannot be used in global scope"; > fi; > if has "${EAPI:-0}" 0 1 2 3 4; then > if [[ -n "${SUPPORT_PYTHON_ABIS}" ]]; then > return 0; > else > return 1; > fi; > else > die "${FUNCNAME}(): Support for EAPI=\"${EAPI}\" not implemented"; > fi >} >_python_prepare_flags () >{ > local array=() deleted_flag element flags new_value old_flag old_value operator pattern prefix variable; > for variable in CPPFLAGS CFLAGS CXXFLAGS LDFLAGS; > do > eval "_PYTHON_SAVED_${variable}=\"\${!variable}\""; > for prefix in PYTHON_USER_ PYTHON_; > do > if [[ "$(declare -p ${prefix}${variable} 2> /dev/null)" == "declare -a ${prefix}${variable}="* ]]; then > eval "array=(\"\${${prefix}${variable}[@]}\")"; > for element in "${array[@]}"; > do > if [[ "${element}" =~ ^([[:alnum:]]|\.|-|\*|\[|\])+\ (\+|-)\ .+ ]]; then > pattern="${element%% *}"; > element="${element#* }"; > operator="${element%% *}"; > flags="${element#* }"; > if _python_check_python_abi_matching "${PYTHON_ABI}" "${pattern}"; then > if [[ "${operator}" == "+" ]]; then > eval "export ${variable}+=\"\${variable:+ }${flags}\""; > else > if [[ "${operator}" == "-" ]]; then > flags="${flags// / >}"; > old_value="${!variable// / >}"; > new_value=""; > while read old_flag; do > while read deleted_flag; do > if [[ "${old_flag}" == ${deleted_flag} ]]; then > continue 2; > fi; > done <<< "${flags}"; > new_value+="${new_value:+ }${old_flag}"; > done <<< "${old_value}"; > eval "export ${variable}=\"\${new_value}\""; > fi; > fi; > fi; > else > die "Element '${element}' of ${prefix}${variable} array has invalid syntax"; > fi; > done; > else > if [[ -n "$(declare -p ${prefix}${variable} 2> /dev/null)" ]]; then > die "${prefix}${variable} should be indexed array"; > fi; > fi; > done; > done >} >_python_restore_flags () >{ > local variable; > for variable in CPPFLAGS CFLAGS CXXFLAGS LDFLAGS; > do > eval "${variable}=\"\${_PYTHON_SAVED_${variable}}\""; > unset _PYTHON_SAVED_${variable}; > done >} >_python_set_color_variables () >{ > if [[ "${PYTHON_COLORS}" != "0" && "${NOCOLOR:-false}" =~ ^(false|no)$ ]]; then > _BOLD='[1m'; > _RED='[1;31m'; > _GREEN='[1;32m'; > _BLUE='[1;34m'; > _CYAN='[1;36m'; > _NORMAL='[0m'; > else > _BOLD=; > _RED=; > _GREEN=; > _BLUE=; > _CYAN=; > _NORMAL=; > fi >} >_python_test_hook () >{ > if [[ "$#" -ne 1 ]]; then > die "${FUNCNAME}() requires 1 argument"; > fi; > if _python_package_supporting_installation_for_multiple_python_abis && [[ "$(type -t "${FUNCNAME[3]}_$1_hook")" == "function" ]]; then > "${FUNCNAME[3]}_$1_hook"; > fi >} >_unpack_tar () >{ > if [ "${y}" == "tar" ]; then > $1 -c -- "$srcdir$x" | tar xof -; > assert_sigpipe_ok "$myfail"; > else > $1 -c -- "${srcdir}${x}" > ${x%.*} || die "$myfail"; > fi >} >add_blocker () >{ > debug-print-function ${FUNCNAME} "$@"; > RDEPEND+=" $(_do_blocker "$@")" >} >add_kdebase_dep () >{ > debug-print-function ${FUNCNAME} "$@"; > [[ -z ${1} ]] && die "Missing parameter"; > local use=${2:+,${2}}; > if [[ ${KDEBASE} = kde-base ]]; then > local FIXME_PV; > if [[ ${KMNAME} = kdepim || ${PN} = kdepim-runtime ]] && [[ ${PV} = 4.4.6* || ${PV} = 4.4.7* || ${PV} = 4.4.8* || ${PV} = 4.4.9* ]] && [[ ${1} = kdelibs || ${1} = kdepimlibs || ${1} = oxygen-icons ]]; then > FIXME_PV=4.4.5; > else > if [[ ${KMNAME} = kdepim || ${PN} = kdepim-runtime ]] && [[ ${PV} = 4.5.93* ]] && [[ ${1} = kdelibs || ${1} = kdepimlibs || ${1} = oxygen-icons ]]; then > FIXME_PV=4.5.90; > else > FIXME_PV=${PV}; > fi; > fi; > case ${PV} in > *.9999*) > echo " !kdeprefix? ( >=kde-base/${1}-${SLOT}[aqua=,-kdeprefix${use}] )"; > echo " kdeprefix? ( >=kde-base/${1}-${SLOT}:${SLOT}[aqua=,kdeprefix${use}] )" > ;; > *) > echo " !kdeprefix? ( >=kde-base/${1}-${FIXME_PV}[aqua=,-kdeprefix${use}] )"; > echo " kdeprefix? ( >=kde-base/${1}-${FIXME_PV}:${SLOT}[aqua=,kdeprefix${use}] )" > ;; > esac; > else > if [[ ${KDE_MINIMAL} = live ]]; then > echo " kde-base/${1}:${KDE_MINIMAL}[aqua=${use}]"; > else > echo " >=kde-base/${1}-${KDE_MINIMAL}[aqua=${use}]"; > fi; > fi >} >append-cflags () >{ > [[ -z $* ]] && return 0; > export CFLAGS="${CFLAGS} $*"; > return 0 >} >append-cppflags () >{ > [[ -z $* ]] && return 0; > export CPPFLAGS="${CPPFLAGS} $*"; > return 0 >} >append-cxxflags () >{ > [[ -z $* ]] && return 0; > export CXXFLAGS="${CXXFLAGS} $*"; > return 0 >} >append-fflags () >{ > [[ -z $* ]] && return 0; > export FFLAGS="${FFLAGS} $*"; > export FCFLAGS="${FCFLAGS} $*"; > return 0 >} >append-flags () >{ > [[ -z $* ]] && return 0; > append-cflags "$@"; > append-cxxflags "$@"; > append-fflags "$@"; > return 0 >} >append-ldflags () >{ > [[ -z $* ]] && return 0; > local flag; > for flag in "$@"; > do > [[ ${flag} == -l* ]] && ewarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS"; > done; > export LDFLAGS="${LDFLAGS} $*"; > return 0 >} >append-lfs-flags () >{ > [[ -n $@ ]] && die "append-lfs-flags takes no arguments"; > append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >append-libs () >{ > [[ -z $* ]] && return 0; > local flag; > for flag in "$@"; > do > [[ ${flag} == -l* ]] && flag=${flag#-l}; > export LIBS="${LIBS} -l${flag}"; > done; > return 0 >} >autotools_check_macro () >{ > [[ -f configure.ac || -f configure.in ]] || return 0; > local macro; > for macro in "$@"; > do > WANT_AUTOCONF="2.5" autoconf --trace="${macro}" 2> /dev/null; > done; > return 0 >} >autotools_get_auxdir () >{ > local auxdir_scan_out; > auxdir_scan_out=$(autotools_check_macro "AC_CONFIG_AUX_DIR"); > [[ -n ${auxdir_scan_out} ]] || return 0; > echo ${auxdir_scan_out} | gawk '($0 !~ /^[[:space:]]*(#|dnl)/) { > if (match($0, /AC_CONFIG_AUX_DIR:(.*)$/, res)) > print res[1] > }' | uniq; > return 0 >} >autotools_get_subdirs () >{ > local subdirs_scan_out; > subdirs_scan_out=$(autotools_check_macro "AC_CONFIG_SUBDIRS"); > [[ -n ${subdirs_scan_out} ]] || return 0; > echo "${subdirs_scan_out}" | gawk '($0 !~ /^[[:space:]]*(#|dnl)/) { > if (match($0, /AC_CONFIG_SUBDIRS:(.*)$/, res)) > print res[1] > }' | uniq; > return 0 >} >autotools_run_tool () >{ > if [[ ${EBUILD_PHASE} != "unpack" && ${EBUILD_PHASE} != "prepare" ]]; then > ewarn "QA Warning: running $1 in ${EBUILD_PHASE} phase"; > fi; > 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; > local STDERR_TARGET="${T}/$1.out"; > if [[ -e ${STDERR_TARGET} ]]; then > STDERR_TARGET="${T}/$1-$$.out"; > fi; > printf "***** $1 *****\n***** PWD: ${PWD}\n***** $*\n\n" > "${STDERR_TARGET}"; > ebegin "Running $@"; > "$@" >> "${STDERR_TARGET}" 2>&1; > eend $?; > if [[ $? != 0 && ${NO_FAIL} != 1 ]]; 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 >} >base_src_compile () >{ > debug-print-function $FUNCNAME "$@"; > has src_configure ${BASE_EXPF} || base_src_configure; > base_src_make "$@" >} >base_src_configure () >{ > debug-print-function $FUNCNAME "$@"; > [[ -x ${ECONF_SOURCE:-.}/configure ]] && econf "$@" >} >base_src_install () >{ > debug-print-function $FUNCNAME "$@"; > emake DESTDIR="${D}" "$@" install || die "died running make install, $FUNCNAME"; > base_src_install_docs >} >base_src_install_docs () >{ > debug-print-function $FUNCNAME "$@"; > local x; > pushd "${S}" > /dev/null; > if [[ "$(declare -p DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then > for x in "${DOCS[@]}"; > do > debug-print "$FUNCNAME: docs: creating document from ${x}"; > dodoc "${x}" || die "dodoc failed"; > done; > fi; > if [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then > for x in "${HTML_DOCS[@]}"; > do > debug-print "$FUNCNAME: docs: creating html document from ${x}"; > dohtml -r "${x}" || die "dohtml failed"; > done; > fi; > popd > /dev/null >} >base_src_make () >{ > debug-print-function $FUNCNAME "$@"; > if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then > emake "$@" || die "died running emake, $FUNCNAME"; > fi >} >base_src_prepare () >{ > debug-print-function $FUNCNAME "$@"; > debug-print "$FUNCNAME: PATCHES=$PATCHES"; > local patches_failed=0; > pushd "${S}" > /dev/null; > if [[ "$(declare -p PATCHES 2>/dev/null 2>&1)" == "declare -a"* ]]; then > for x in "${PATCHES[@]}"; > do > debug-print "$FUNCNAME: applying patch from ${x}"; > if [[ -d "${x}" ]]; then > EPATCH_SUFFIX=${EPATCH_SUFFIX:=patch}; > oldval=${EPATCH_SOURCE}; > EPATCH_SOURCE=${x}; > EPATCH_FORCE=yes; > epatch; > EPATCH_SOURCE=${oldval}; > else > if [[ -f "${x}" ]]; then > epatch "${x}"; > else > ewarn "QA: File or directory \"${x}\" does not exist."; > ewarn "QA: Check your PATCHES array or add missing file/directory."; > patches_failed=1; > fi; > fi; > done; > [[ ${patches_failed} -eq 1 ]] && die "Some patches failed. See above messages."; > else > for x in ${PATCHES}; > do > debug-print "$FUNCNAME: patching from ${x}"; > epatch "${x}"; > done; > fi; > debug-print "$FUNCNAME: applying user patches"; > epatch_user; > popd > /dev/null >} >base_src_unpack () >{ > debug-print-function $FUNCNAME "$@"; > pushd "${WORKDIR}" > /dev/null; > [[ -n "${A}" ]] && unpack ${A}; > has src_prepare ${BASE_EXPF} || base_src_prepare; > popd > /dev/null >} >bash-completion_pkg_postinst () >{ > if use bash-completion; then > elog "In the case that you haven't yet enabled command-line completion"; > elog "for ${PN}, you can run:"; > elog; > elog " eselect bashcomp enable ${BASHCOMPLETION_NAME:-${PN}}"; > elog; > elog "to install locally, or"; > elog; > elog " eselect bashcomp enable --global ${BASHCOMPLETION_NAME:-${PN}}"; > elog; > elog "to install system-wide."; > fi >} >block_other_slots () >{ > debug-print-function ${FUNCNAME} "$@"; > _do_blocker ${PN} 0:${SLOT} >} >buildsycoca () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ ${EAPI} == 2 ]] && ! use prefix; then > EROOT=${ROOT}; > fi; > local KDE3DIR="${EROOT}usr/kde/3.5"; > if [[ -z ${EROOT%%/} && -x "${KDE3DIR}"/bin/kbuildsycoca ]]; then > touch "${KDE3DIR}"/share/services/ksycoca; > chmod 644 "${KDE3DIR}"/share/services/ksycoca; > ebegin "Running kbuildsycoca to build global database"; > XDG_DATA_DIRS="${EROOT}usr/local/share:${KDE3DIR}/share:${EROOT}usr/share" DISPLAY="" "${KDE3DIR}"/bin/kbuildsycoca --global --noincremental &>/dev/null; > eend $?; > fi; > for x in share/{config,kde4}; > do > [[ ${KDEDIR} == /usr ]] && DIRS=${EROOT}usr || DIRS="${EROOT}usr ${EROOT}${KDEDIR}"; > for y in ${DIRS}; > do > [[ -d "${y}/${x}" ]] || break; > if [[ $(stat --format=%a "${y}/${x}") != 755 ]]; then > ewarn "QA Notice:"; > ewarn "Package ${PN} is breaking ${y}/${x} permissions."; > ewarn "Please report this issue to gentoo bugzilla."; > einfo "Permissions will get adjusted automatically now."; > find "${y}/${x}" -type d -print0 | xargs -0 chmod 755; > fi; > done; > done >} >built_with_use () >{ > local hidden="no"; > if [[ $1 == "--hidden" ]]; then > hidden="yes"; > shift; > fi; > local missing_action="die"; > if [[ $1 == "--missing" ]]; then > missing_action=$2; > shift; > shift; > case ${missing_action} in > true | false | die) > > ;; > *) > die "unknown action '${missing_action}'" > ;; > esac; > fi; > local opt=$1; > [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; > local PKG=$(best_version $1); > [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package"; > shift; > local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE; > local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE; > if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "Unable to determine what USE flags $PKG was built with" > ;; > esac; > fi; > if [[ ${hidden} == "no" ]]; then > local IUSE_BUILT=($(<"${IUSEFILE}")); > local expand; > for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]'); > do > if [[ $1 == ${expand}_* ]]; then > expand=""; > break; > fi; > done; > if [[ -n ${expand} ]]; then > if ! has $1 ${IUSE_BUILT[@]#[-+]}; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "$PKG does not actually support the $1 USE flag!" > ;; > esac; > fi; > fi; > fi; > local USE_BUILT=$(<${USEFILE}); > while [[ $# -gt 0 ]]; do > if [[ ${opt} = "-o" ]]; then > has $1 ${USE_BUILT} && return 0; > else > has $1 ${USE_BUILT} || return 1; > fi; > shift; > done; > [[ ${opt} = "-a" ]] >} >cdrom_get_cds () >{ > local cdcnt=0; > local f=; > for f in "$@"; > do > ((++cdcnt)); > export CDROM_CHECK_${cdcnt}="$f"; > done; > export CDROM_TOTAL_CDS=${cdcnt}; > export CDROM_CURRENT_CD=1; > if [[ -n ${CD_ROOT}${CD_ROOT_1} ]]; then > local var=; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > ((++cdcnt)); > var="CD_ROOT_${cdcnt}"; > [[ -z ${!var} ]] && var="CD_ROOT"; > if [[ -z ${!var} ]]; then > eerror "You must either use just the CD_ROOT"; > eerror "or specify ALL the CD_ROOT_X variables."; > eerror "In this case, you will need ${CDROM_TOTAL_CDS} CD_ROOT_X variables."; > die "could not locate CD_ROOT_${cdcnt}"; > fi; > done; > export CDROM_ROOT=${CD_ROOT_1:-${CD_ROOT}}; > einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}"; > export CDROM_SET=-1; > for f in ${CDROM_CHECK_1//:/ }; > do > ((++CDROM_SET)); > [[ -e ${CDROM_ROOT}/${f} ]] && break; > done; > export CDROM_MATCH=${f}; > return; > fi; > if [[ ${CDROM_TOTAL_CDS} -eq 1 ]]; then > einfo "This ebuild will need the ${CDROM_NAME:-cdrom for ${PN}}"; > echo; > einfo "If you do not have the CD, but have the data files"; > einfo "mounted somewhere on your filesystem, just export"; > einfo "the variable CD_ROOT so that it points to the"; > einfo "directory containing the files."; > echo; > einfo "For example:"; > einfo "export CD_ROOT=/mnt/cdrom"; > echo; > else > if [[ -n ${CDROM_NAME_SET} ]]; then > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > ((++cdcnt)); > export CDROM_NAME_${cdcnt}="${CDROM_NAME_SET[$((${cdcnt}-1))]}"; > done; > fi; > einfo "This package will need access to ${CDROM_TOTAL_CDS} cds."; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > ((++cdcnt)); > var="CDROM_NAME_${cdcnt}"; > [[ ! -z ${!var} ]] && einfo " CD ${cdcnt}: ${!var}"; > done; > echo; > einfo "If you do not have the CDs, but have the data files"; > einfo "mounted somewhere on your filesystem, just export"; > einfo "the following variables so they point to the right place:"; > einfon ""; > cdcnt=0; > while [[ ${cdcnt} -lt ${CDROM_TOTAL_CDS} ]]; do > ((++cdcnt)); > echo -n " CD_ROOT_${cdcnt}"; > done; > echo; > einfo "Or, if you have all the files in the same place, or"; > einfo "you only have one cdrom, you can export CD_ROOT"; > einfo "and that place will be used as the same data source"; > einfo "for all the CDs."; > echo; > einfo "For example:"; > einfo "export CD_ROOT_1=/mnt/cdrom"; > echo; > fi; > export CDROM_SET=""; > export CDROM_CURRENT_CD=0; > cdrom_load_next_cd >} >cdrom_load_next_cd () >{ > local var; > ((++CDROM_CURRENT_CD)); > unset CDROM_ROOT; > var=CD_ROOT_${CDROM_CURRENT_CD}; > [[ -z ${!var} ]] && var="CD_ROOT"; > if [[ -z ${!var} ]]; then > var="CDROM_CHECK_${CDROM_CURRENT_CD}"; > _cdrom_locate_file_on_cd ${!var}; > else > export CDROM_ROOT=${!var}; > fi; > einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}" >} >check_build_disk () >{ > [[ -z "${2}" ]] && die "Usage: check_build_disk where name needed"; > check_build_msg_begin "${2}" "MBytes" "disk space at ${1}"; > actual_space=$(df -Pm ${1} 2>/dev/null | sed -n '$s/\(\S\+\s\+\)\{3\}\([0-9]\+\).*/\2/p' 2>/dev/null ); > if [[ "$?" == "0" && -n "${actual_space}" ]]; then > if [[ ${actual_space} -lt ${2} ]]; then > eend 1; > check_build_msg_ick "${2}" "MBytes" "disk space at ${1}"; > else > eend 0; > fi; > else > eend 1; > ewarn "Couldn't figure out disk space, skipping ..."; > fi >} >check_build_memory () >{ > [[ -n "${1}" ]] && die "Usage: check_build_memory"; > check_build_msg_begin "${CHECKREQS_MEMORY}" "MBytes" "RAM"; > if [[ -r /proc/meminfo ]]; then > actual_memory=$(sed -n -e '/MemTotal:/s/^[^:]*: *\([0-9]\+\) kB/\1/p' /proc/meminfo); > else > actual_memory=$(sysctl hw.physmem 2>/dev/null ); > [[ "$?" == "0" ]] && actual_memory=$(echo $actual_memory | sed -e 's/^[^:=]*[:=]//' ); > fi; > if [[ -n "${actual_memory}" ]]; then > if [[ ${actual_memory} -lt $((1024 * ${CHECKREQS_MEMORY})) ]]; then > eend 1; > check_build_msg_ick "${CHECKREQS_MEMORY}" "MBytes" "RAM"; > else > eend 0; > fi; > else > eend 1; > ewarn "Couldn't determine amount of memory, skipping ..."; > fi >} >check_build_msg_begin () >{ > ebegin "Checking for at least ${1}${2} ${3}" >} >check_build_msg_ick () >{ > if [[ "${CHECKREQS_ACTION}" == "error" ]]; then > eerror "Don't have at least ${1}${2} ${3}"; > echo; > export CHECKREQS_NEED_DIE="yes"; > else > ewarn "Don't have at least ${1}${2} ${3}"; > echo; > export CHECKREQS_NEED_SLEEP="yes"; > fi >} >check_build_msg_skip () >{ > ewarn "Skipping check for at least ${1}${2} ${3}" >} >check_license () >{ > local lic=$1; > if [ -z "${lic}" ]; then > lic="${PORTDIR}/licenses/${LICENSE}"; > else > if [ -e "${PORTDIR}/licenses/${lic}" ]; then > lic="${PORTDIR}/licenses/${lic}"; > else > if [ -e "${PWD}/${lic}" ]; then > lic="${PWD}/${lic}"; > else > if [ -e "${lic}" ]; then > lic="${lic}"; > fi; > fi; > fi; > fi; > local l="`basename ${lic}`"; > local alic; > eshopts_push -o noglob; > for alic in ${ACCEPT_LICENSE}; > do > if [[ ${alic} == ${l} ]]; then > eshopts_pop; > return 0; > fi; > done; > eshopts_pop; > [ ! -f "${lic}" ] && die "Could not find requested license ${lic}"; > local licmsg=$(emktemp); > cat > ${licmsg} <<-EOF >********************************************************** >The following license outlines the terms of use of this >package. You MUST accept this license for installation to >continue. When you are done viewing, hit 'q'. If you >CTRL+C out of this, the install will not run! >********************************************************** > >EOF > > cat ${lic} >> ${licmsg}; > ${PAGER:-less} ${licmsg} || die "Could not execute pager (${PAGER}) to accept ${lic}"; > einfon "Do you accept the terms of this license (${l})? [yes/no] "; > read alic; > case ${alic} in > yes | Yes | y | Y) > return 0 > ;; > *) > echo; > echo; > echo; > eerror "You MUST accept the license to continue! Exiting!"; > die "Failed to accept license" > ;; > esac >} >check_reqs () >{ > [[ -n "${1}" ]] && die "Usage: check_reqs"; > export CHECKREQS_NEED_SLEEP="" CHECKREQS_NEED_DIE=""; > if [[ "$CHECKREQS_ACTION" != "ignore" ]]; then > [[ -n "$CHECKREQS_MEMORY" ]] && check_build_memory; > [[ -n "$CHECKREQS_DISK_BUILD" ]] && check_build_disk "${T}" "${CHECKREQS_DISK_BUILD}"; > [[ -n "$CHECKREQS_DISK_USR" ]] && check_build_disk "${ROOT}/usr" "${CHECKREQS_DISK_USR}"; > [[ -n "$CHECKREQS_DISK_VAR" ]] && check_build_disk "${ROOT}/var" "${CHECKREQS_DISK_VAR}"; > fi; > if [[ -n "${CHECKREQS_NEED_SLEEP}" ]]; then > echo; > ewarn "Bad things may happen! You may abort the build by pressing ctrl+c in"; > ewarn "the next 15 seconds."; > ewarn " "; > einfo "To make this kind of warning a fatal error, add a line to /etc/make.conf"; > einfo "setting CHECKREQS_ACTION=\"error\". To skip build requirements checking,"; > einfo "set CHECKREQS_ACTION=\"ignore\"."; > epause 15; > fi; > if [[ -n "${CHECKREQS_NEED_DIE}" ]]; then > eerror "Bailing out as specified by CHECKREQS_ACTION"; > die "Build requirements not met"; > fi >} >check_reqs_conditional () >{ > [[ -n "${1}" ]] && die "Usage: check_reqs"; > export CHECKREQS_NEED_SLEEP="" CHECKREQS_NEED_DIE=""; > if [[ "$CHECKREQS_ACTION" != "ignore" ]]; then > [[ -n "$CHECKREQS_MEMORY" ]] && check_build_memory; > [[ -n "$CHECKREQS_DISK_BUILD" ]] && check_build_disk "${T}" "${CHECKREQS_DISK_BUILD}"; > [[ -n "$CHECKREQS_DISK_USR" ]] && check_build_disk "${ROOT}/usr" "${CHECKREQS_DISK_USR}"; > [[ -n "$CHECKREQS_DISK_VAR" ]] && check_build_disk "${ROOT}/var" "${CHECKREQS_DISK_VAR}"; > fi; > [[ -z "${CHECKREQS_NEED_SLEEP}" && -z "${CHECKREQS_NEED_DIE}" ]] >} >comment_all_add_subdirectory () >{ > find "$@" -name CMakeLists.txt -print0 | grep -vFzZ "./cmake" | xargs -0 sed -i -e '/^[[:space:]]*add_subdirectory/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*macro_optional_add_subdirectory/s/^/#DONOTCOMPILE /' -e '/^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' || die "${LINENO}: Initial sed died" >} >create_ml_includes () >{ > local dest=$1; > shift; > local basedirs=$(create_ml_includes-listdirs "$@"); > create_ml_includes-makedestdirs ${dest} ${basedirs}; > local file; > for file in $(create_ml_includes-allfiles ${basedirs}); > do > ( echo "/* Autogenerated by create_ml_includes() in multilib.eclass */"; > local dir; > for dir in ${basedirs}; > do > if [[ -f ${D}/${dir}/${file} ]]; then > echo ""; > local sym=$(create_ml_includes-sym_for_dir ${dir} "$@"); > if [[ ${sym/=} != "${sym}" ]]; then > echo "#if ${sym}"; > else > if [[ ${sym::1} == "!" ]]; then > echo "#ifndef ${sym:1}"; > else > echo "#ifdef ${sym}"; > fi; > fi; > echo "# include <$(create_ml_includes-absolute ${dir}/${file})>"; > echo "#endif /* ${sym} */"; > fi; > done ) > "${D}/${dest}/${file}"; > done >} >create_ml_includes-absolute () >{ > local dst="$(create_ml_includes-tidy_path $1)"; > dst=(${dst//\// }); > local i; > for ((i=0; i<${#dst[*]}; i++)) > do > [ "${dst[i]}" == "include" ] && break; > done; > local strip_upto=$i; > for ((i=strip_upto+1; i<${#dst[*]}-1; i++)) > do > echo -n ${dst[i]}/; > done; > echo -n ${dst[i]} >} >create_ml_includes-allfiles () >{ > [[ -z ${ED} ]] && local ED=${D}; > local basedir file; > for basedir in "$@"; > do > for file in $(find "${ED}"/${basedir} -type f); > do > echo ${file/${ED}\/${basedir}\//}; > done; > done | sort | uniq >} >create_ml_includes-listdirs () >{ > local dirs; > local data; > for data in "$@"; > do > dirs="${dirs} ${data/*:/}"; > done; > echo ${dirs:1} >} >create_ml_includes-makedestdirs () >{ > local dest=$1; > shift; > local basedirs=$@; > [[ -z ${ED} ]] && local ED=${D}; > dodir ${dest}; > local basedir; > for basedir in ${basedirs}; > do > local dir; > for dir in $(find "${ED}"/${basedir} -type d); > do > dodir ${dest}/${dir/${ED}\/${basedir}/}; > done; > done >} >create_ml_includes-sym_for_dir () >{ > local dir=$1; > shift; > local data; > for data in "$@"; > do > if [[ ${data} == *:${dir} ]]; then > echo ${data/:*/}; > return 0; > fi; > done; > echo "Shouldn't be here -- create_ml_includes-sym_for_dir $1 $@"; > exit 1 >} >create_ml_includes-tidy_path () >{ > local removed=$1; > if [ -n "${removed}" ]; then > while [ "${removed}" != "${removed/\/\//\/}" ]; do > removed=${removed/\/\//\/}; > done; > while [ "${removed}" != "${removed//\/.\//\/}" ]; do > removed=${removed//\/.\//\/}; > done; > [ "${removed##*/}" = "." ] && removed=${removed%/*}; > while [ "${removed}" != "${removed//\/..\/}" ]; do > local p1="${removed%%\/..\/*}"; > local p2="${removed#*\/..\/}"; > removed="${p1%\/*}/${p2}"; > done; > [ "${removed##*/}" = ".." ] && removed=${removed%/*/*}; > [ "${removed##*/}" = "" ] && removed=${removed%/*}; > echo ${removed}; > fi >} >darwintoolize () >{ > 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 () >{ > eshopts_push -s extglob; > replace_all_version_separators "" "${1}"; > eshopts_pop >} >delete_version_separator () >{ > eshopts_push -s extglob; > replace_version_separator "${1}" "" "${2}"; > eshopts_pop >} >depend-java-query () >{ > USE="${USE}" /usr/bin/depend-java-query "${@}" >} >dlopen_lib () >{ > case "${CHOST}" in > *-linux-gnu* | *-linux-uclibc | *-interix*) > echo "-ldl" > ;; > esac >} >dobashcompletion () >{ > [[ -z "$1" ]] && die "usage: dobashcompletion <file> <new file>"; > [[ -z "${BASHCOMPLETION_NAME}" ]] && BASHCOMPLETION_NAME="${2:-${PN}}"; > if use bash-completion; then > insinto /usr/share/bash-completion; > newins "$1" "${BASHCOMPLETION_NAME}" || die "Failed to install $1"; > fi >} >doicon () >{ > ( local i j ret; > insinto /usr/share/pixmaps; > for i in "$@"; > do > if [[ -f ${i} ]]; then > doins "${i}"; > ((ret+=$?)); > else > if [[ -d ${i} ]]; then > for j in "${i}"/*.png; > do > doins "${j}"; > ((ret+=$?)); > done; > else > ((++ret)); > fi; > fi; > done; > exit ${ret} ) >} >domenu () >{ > ( local i j ret=0; > insinto /usr/share/applications; > for i in "$@"; > do > if [[ -f ${i} ]]; then > doins "${i}"; > ((ret+=$?)); > else > if [[ -d ${i} ]]; then > for j in "${i}"/*.desktop; > do > doins "${j}"; > ((ret+=$?)); > done; > else > ((++ret)); > fi; > fi; > done; > exit ${ret} ) >} >dyn_pretend () >{ > ebuild_phase_with_hooks pkg_pretend >} >eaclocal () >{ > local aclocal_opts; > local amflags_file; > for amflags_file in GNUmakefile.am Makefile.am GNUmakefile.in Makefile.in; > do > [[ -e ${amflags_file} ]] || continue; > aclocal_opts=$(sed -n '/^ACLOCAL_AMFLAGS[[:space:]]*=/s:[^=]*=::p' ${amflags_file}); > eval aclocal_opts=\"${aclocal_opts}\"; > break; > done; > if [[ -n ${AT_M4DIR} ]]; then > for x in ${AT_M4DIR}; > do > case "${x}" in > "-I") > > ;; > *) > [[ ! -d ${x} ]] && ewarn "eaclocal: '${x}' does not exist"; > aclocal_opts="${aclocal_opts} -I ${x}" > ;; > esac; > done; > fi; > [[ ! -f aclocal.m4 || -n $(grep -e 'generated.*by aclocal' aclocal.m4) ]] && autotools_run_tool aclocal "$@" ${aclocal_opts} >} >eant () >{ > debug-print-function ${FUNCNAME} $*; > if [[ ${EBUILD_PHASE} = compile ]]; then > java-ant-2_src_configure; > java-utils-2_src_prepare; > fi; > if ! hasq 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"; > 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 autoconf "$@" >} >eautoheader () >{ > [[ -n $(autotools_check_macro "AC_CONFIG_HEADERS") ]] || return 0; > NO_FAIL=1 autotools_run_tool autoheader "$@" >} >eautomake () >{ > local extra_opts; > local makefile_name; > for makefile_name in {GNUmakefile,{M,m}akefile}.{am,in} ""; > do > [[ -f ${makefile_name} ]] && break; > done; > [[ -z ${makefile_name} ]] && return 0; > if [[ ${makefile_name} == *.in ]]; then > if ! grep -qs AM_INIT_AUTOMAKE configure.??; then > return 0; > fi; > 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 ]] || extra_opts="${extra_opts} --foreign"; > autotools_run_tool automake --add-missing --copy ${extra_opts} "$@" >} >eautopoint () >{ > autotools_run_tool autopoint "$@" >} >eautoreconf () >{ > local x auxdir g; > if [[ -z ${AT_NO_RECURSIVE} ]]; then > for x in $(autotools_get_subdirs); > do > if [[ -d ${x} ]]; then > pushd "${x}" > /dev/null; > AT_NOELIBTOOLIZE="yes" eautoreconf; > popd > /dev/null; > fi; > done; > fi; > auxdir=$(autotools_get_auxdir); > einfo "Running eautoreconf in '${PWD}' ..."; > [[ -n ${auxdir} ]] && mkdir -p ${auxdir}; > eaclocal; > [[ ${CHOST} == *-darwin* ]] && g=g; > if ${LIBTOOLIZE:-${g}libtoolize} -n --install &>/dev/null; then > _elibtoolize --copy --force --install; > else > _elibtoolize --copy --force; > fi; > eautoconf; > eautoheader; > FROM_EAUTORECONF="yes" eautomake ${AM_OPTS}; > [[ ${AT_NOELIBTOOLIZE} == "yes" ]] && return 0; > S=${PWD} elibtoolize; > return 0 >} >ebeep () >{ > ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org" >} >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 () >{ > echo "$@" | xargs sed -i 's/\r$//' >} >egetent () >{ > case ${CHOST} in > *-darwin[678]) > case "$2" in > *[!0-9]*) > nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }" > ;; > *) > nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }" > ;; > esac > ;; > *-darwin*) > local mytype=$1; > [[ "passwd" == $mytype ]] && mytype="Users"; > [[ "group" == $mytype ]] && mytype="Groups"; > case "$2" in > *[!0-9]*) > dscl . -read /$mytype/$2 2> /dev/null | grep RecordName > ;; > *) > local mykey="UniqueID"; > [[ $mytype == "Groups" ]] && mykey="PrimaryGroupID"; > dscl . -search /$mytype $mykey $2 2> /dev/null > ;; > esac > ;; > *-freebsd* | *-dragonfly*) > local opts action="user"; > [[ $1 == "passwd" ]] || action="group"; > if [[ $2 == [[:digit:]]* ]]; then > [[ ${action} == "user" ]] && opts="-u" || opts="-g"; > fi; > pw show ${action} ${opts} "$2" -q > ;; > *-netbsd* | *-openbsd*) > grep "$2:\*:" /etc/$1 > ;; > *) > type -p nscd &>/dev/null && nscd -i "$1"; > getent "$1" "$2" > ;; > esac >} >egethome () >{ > ent=$(egetent passwd $1); > case ${CHOST} in > *-darwin* | *-freebsd* | *-dragonfly*) > echo ${ent} | cut -d: -f9 > ;; > *) > echo ${ent} | cut -d: -f6 > ;; > esac >} >egetshell () >{ > ent=$(egetent passwd "$1"); > case ${CHOST} in > *-darwin* | *-freebsd* | *-dragonfly*) > echo ${ent} | cut -d: -f10 > ;; > *) > echo ${ent} cut -d: -f7 > ;; > esac >} >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} $*; > 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 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; > 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 do_portage="no"; > local do_reversedeps="no"; > local do_only_patches="no"; > local do_uclibc="yes"; > local deptoremove=; > local do_shallow="no"; > local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed"; > 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" > ;; > *) > eerror "Invalid elibtoolize option: ${x}"; > die "elibtoolize called with ${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" > ;; > *-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; > set --; > if [[ ${do_shallow} == "yes" ]]; then > [[ -f ${S}/ltmain.sh ]] && set -- "${S}"; > else > set -- $(find "${S}" -name ltmain.sh -printf '%h '); > fi; > local d p; > for d in "$@"; > do > export ELT_APPLIED_PATCHES=; > [[ -f ${d}/.elibtoolized ]] && continue; > einfo "Running elibtoolize in: ${d#${WORKDIR}/}/"; > for p in ${elt_patches}; > do > local 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-conf) > if grep -qs 'Transform linux' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > else > if [[ ! -e ${d}/configure ]] && grep -qs 'Transform linux' "${d}/../configure"; then > ELT_walk_patches "${d}/../configure" "${p}"; > ret=$?; > fi; > fi > ;; > uclibc-ltconf) > if [[ -s ${d}/ltconfig ]]; then > ELT_walk_patches "${d}/ltconfig" "${p}"; > ret=$?; > fi > ;; > fbsd-conf) > if grep -qs 'version_type=freebsd-' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > else > if [[ ! -e ${d}/configure ]] && grep -qs 'version_type=freebsd-' "${d}/../configure"; then > ELT_walk_patches "${d}/../configure" "${p}"; > ret=$?; > fi; > fi > ;; > fbsd-ltconf) > if [[ -s ${d}/ltconfig ]]; then > ELT_walk_patches "${d}/ltconfig" "${p}"; > ret=$?; > fi > ;; > darwin-conf) > if grep -qs '&& echo \.so ||' "${d}/configure"; then > ELT_walk_patches "${d}/configure" "${p}"; > ret=$?; > else > if [[ ! -e ${d}/configure ]] && grep -qs '&& echo \.so ||' "${d}/../configure"; then > ELT_walk_patches "${d}/../configure" "${p}"; > ret=$?; > fi; > 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 > ;; > 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=$?; > else > if [[ ! -e ${d}/configure && -e ${d}/../configure ]]; then > ELT_walk_patches "${d}/../configure" "${p}"; > subret=$?; > fi; > fi; > if [[ $subret -eq 0 ]]; then > ret=0; > fi; > done > ;; > mint-conf) > ret=1; > local subret=1; > if [[ -e ${d}/configure ]]; then > ELT_walk_patches "${d}/configure" "${p}"; > subret=$?; > else > if [[ ! -e ${d}/configure && -e ${d}/../configure ]]; then > ELT_walk_patches "${d}/../configure" "${p}"; > subret=$?; > fi; > fi; > if [[ $subret -eq 0 ]]; then > ret=0; > 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 > ;; > 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" "${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; > 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; > rm -f "${d}/libtool"; > > "${d}/.elibtoolized"; > done >} >emktemp () >{ > local exe="touch"; > [[ $1 == -d ]] && exe="mkdir" && shift; > local topdir=$1; > if [[ -z ${topdir} ]]; then > [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; > fi; > if ! type -P mktemp > /dev/null; then > local tmp=/; > while [[ -e ${tmp} ]]; do > tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; > done; > ${exe} "${tmp}" || ${exe} -p "${tmp}"; > echo "${tmp}"; > else > if [[ ${exe} == "touch" ]]; then > TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; > else > TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; > fi; > fi >} >enable_selected_doc_linguas () >{ > debug-print-function ${FUNCNAME} "$@"; > if ! $(env | grep -q "^LINGUAS="); then > return 0; > fi; > KDE_DOC_DIRS=${KDE_DOC_DIRS:='doc/%lingua'}; > local linguas; > for pattern in ${KDE_DOC_DIRS}; > do > local handbookdir=`dirname ${pattern}`; > local translationdir=`basename ${pattern}`; > [[ "${handbookdir}" = '.' ]] && handbookdir=${translationdir} && translationdir=; > [[ -d "${handbookdir}" ]] || die 'wrong doc dir specified'; > if ! use handbook; then > sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${handbookdir}[[:space:]]*)/s/^/#DONOTCOMPILE /" -e "/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${handbookdir}[[:space:]]*)/s/^/#DONOTCOMPILE /" -i CMakeLists.txt || die 'failed to comment out all handbooks'; > else > comment_all_add_subdirectory "${handbookdir}"; > local lingua; > for lingua in en ${KDE_LINGUAS}; > do > if [[ ${lingua} = 'en' ]] || use linguas_${lingua}; then > if [[ -d "${handbookdir}/${translationdir//%lingua/${lingua}}" ]]; then > sed -e "/add_subdirectory[[:space:]]*([[:space:]]*${translationdir//%lingua/${lingua}}/s/^#DONOTCOMPILE //" -e "/ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${translationdir//%lingua/${lingua}}/s/^#DONOTCOMPILE //" -i "${handbookdir}"/CMakeLists.txt && ! has ${lingua} ${linguas} && linguas="${linguas} ${lingua}"; > fi; > fi; > done; > fi; > done; > [[ -n "${linguas}" ]] && einfo "Enabling handbook translations:${linguas}" >} >enable_selected_linguas () >{ > debug-print-function ${FUNCNAME} "$@"; > local x; > if ! $(env | grep -q "^LINGUAS="); then > return 0; > fi; > if [[ "$(declare -p KDE_LINGUAS_DIR 2>/dev/null 2>&1)" == "declare -a"* ]]; then > debug-print "$FUNCNAME: we have these subfolders defined: ${KDE_LINGUAS_DIR}"; > for x in "${KDE_LINGUAS_DIR[@]}"; > do > _enable_selected_linguas_dir ${x}; > done; > else > KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:="po"}; > _enable_selected_linguas_dir ${KDE_LINGUAS_DIR}; > fi >} >enewgroup () >{ > case ${EBUILD_PHASE} in > unpack | compile | test | install) > eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."; > eerror "Package fails at QA and at life. Please file a bug."; > die "Bad package! enewgroup is only for use in pkg_* functions!" > ;; > esac; > local egroup="$1"; > shift; > if [ -z "${egroup}" ]; then > eerror "No group specified !"; > die "Cannot call enewgroup without a group"; > fi; > if [[ -n $(egetent group "${egroup}") ]]; then > return 0; > fi; > einfo "Adding group '${egroup}' to your system ..."; > local opts=; > local egid="$1"; > shift; > if [ ! -z "${egid}" ]; then > if [ "${egid}" -gt 0 ]; then > if [ -z "`egetent group ${egid}`" ]; then > if [[ "${CHOST}" == *-darwin* ]]; then > opts="${opts} ${egid}"; > else > opts="${opts} -g ${egid}"; > fi; > else > egid="next available; requested gid taken"; > fi; > else > eerror "Groupid given but is not greater than 0 !"; > die "${egid} is not a valid GID"; > fi; > else > egid="next available"; > fi; > einfo " - Groupid: ${egid}"; > local eextra="$@"; > opts="${opts} ${eextra}"; > local oldsandbox="${SANDBOX_ON}"; > export SANDBOX_ON="0"; > case ${CHOST} in > *-darwin*) > if [ ! -z "${eextra}" ]; then > einfo "Extra options are not supported on Darwin/OS X yet"; > einfo "Please report the ebuild along with the info below"; > einfo "eextra: ${eextra}"; > die "Required function missing"; > fi; > case ${egid} in > *[!0-9]*) > for ((egid = 101; egid <= 999; egid++)) > do > [[ -z $(egetent group ${egid}) ]] && break; > done > ;; > esac; > dscl . create /groups/${egroup} gid ${egid}; > dscl . create /groups/${egroup} passwd '*' > ;; > *-freebsd* | *-dragonfly*) > case ${egid} in > *[!0-9]*) > for ((egid = 101; egid <= 999; egid++)) > do > [[ -z $(egetent group ${egid}) ]] && break; > done > ;; > esac; > pw groupadd ${egroup} -g ${egid} || die "enewgroup failed" > ;; > *-netbsd*) > case ${egid} in > *[!0-9]*) > for ((egid = 101; egid <= 999; egid++)) > do > [[ -z $(egetent group ${egid}) ]] && break; > done > ;; > esac; > groupadd -g ${egid} ${egroup} || die "enewgroup failed" > ;; > *) > groupadd -r ${opts} ${egroup} || die "enewgroup failed" > ;; > esac; > export SANDBOX_ON="${oldsandbox}" >} >enewuser () >{ > case ${EBUILD_PHASE} in > unpack | compile | test | install) > eerror "'enewuser()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."; > eerror "Package fails at QA and at life. Please file a bug."; > die "Bad package! enewuser is only for use in pkg_* functions!" > ;; > esac; > local euser=$1; > shift; > if [[ -z ${euser} ]]; then > eerror "No username specified !"; > die "Cannot call enewuser without a username"; > fi; > if [[ -n $(egetent passwd "${euser}") ]]; then > return 0; > fi; > einfo "Adding user '${euser}' to your system ..."; > local opts=; > local euid=$1; > shift; > if [[ -n ${euid} && ${euid} != -1 ]]; then > if [[ ${euid} -gt 0 ]]; then > if [[ -n $(egetent passwd ${euid}) ]]; then > euid="next"; > fi; > else > eerror "Userid given but is not greater than 0 !"; > die "${euid} is not a valid UID"; > fi; > else > euid="next"; > fi; > if [[ ${euid} == "next" ]]; then > for ((euid = 101; euid <= 999; euid++)) > do > [[ -z $(egetent passwd ${euid}) ]] && break; > done; > fi; > opts="${opts} -u ${euid}"; > einfo " - Userid: ${euid}"; > local eshell=$1; > shift; > if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then > if [[ ! -e ${ROOT}${eshell} ]]; then > eerror "A shell was specified but it does not exist !"; > die "${eshell} does not exist in ${ROOT}"; > fi; > if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then > eerror "Do not specify ${eshell} yourself, use -1"; > die "Pass '-1' as the shell parameter"; > fi; > else > for shell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null; > do > [[ -x ${ROOT}${shell} ]] && break; > done; > if [[ ${shell} == "/dev/null" ]]; then > eerror "Unable to identify the shell to use, proceeding with userland default."; > case ${USERLAND} in > GNU) > shell="/bin/false" > ;; > BSD) > shell="/sbin/nologin" > ;; > Darwin) > shell="/usr/sbin/nologin" > ;; > *) > die "Unable to identify the default shell for userland ${USERLAND}" > ;; > esac; > fi; > eshell=${shell}; > fi; > einfo " - Shell: ${eshell}"; > opts="${opts} -s ${eshell}"; > local ehome=$1; > shift; > if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then > ehome="/dev/null"; > fi; > einfo " - Home: ${ehome}"; > opts="${opts} -d ${ehome}"; > local egroups=$1; > shift; > if [[ ! -z ${egroups} ]]; then > local oldifs=${IFS}; > local defgroup="" exgroups=""; > export IFS=","; > for g in ${egroups}; > do > export IFS=${oldifs}; > if [[ -z $(egetent group "${g}") ]]; then > eerror "You must add group ${g} to the system first"; > die "${g} is not a valid GID"; > fi; > if [[ -z ${defgroup} ]]; then > defgroup=${g}; > else > exgroups="${exgroups},${g}"; > fi; > export IFS=","; > done; > export IFS=${oldifs}; > opts="${opts} -g ${defgroup}"; > if [[ ! -z ${exgroups} ]]; then > opts="${opts} -G ${exgroups:1}"; > fi; > else > egroups="(none)"; > fi; > einfo " - Groups: ${egroups}"; > local oldsandbox=${SANDBOX_ON}; > export SANDBOX_ON="0"; > case ${CHOST} in > *-darwin*) > if [[ -z $@ ]]; then > dscl . create /users/${euser} uid ${euid}; > dscl . create /users/${euser} shell ${eshell}; > dscl . create /users/${euser} home ${ehome}; > dscl . create /users/${euser} realname "added by portage for ${PN}"; > local oldifs=${IFS}; > export IFS=","; > for g in ${egroups}; > do > dscl . merge /groups/${g} users ${euser}; > done; > export IFS=${oldifs}; > else > einfo "Extra options are not supported on Darwin yet"; > einfo "Please report the ebuild along with the info below"; > einfo "eextra: $@"; > die "Required function missing"; > fi > ;; > *-freebsd* | *-dragonfly*) > if [[ -z $@ ]]; then > pw useradd ${euser} ${opts} -c "added by portage for ${PN}" die "enewuser failed"; > else > einfo " - Extra: $@"; > pw useradd ${euser} ${opts} "$@" || die "enewuser failed"; > fi > ;; > *-netbsd*) > if [[ -z $@ ]]; then > useradd ${opts} ${euser} || die "enewuser failed"; > else > einfo " - Extra: $@"; > useradd ${opts} ${euser} "$@" || die "enewuser failed"; > fi > ;; > *-openbsd*) > if [[ -z $@ ]]; then > useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} || die "enewuser failed"; > else > einfo " - Extra: $@"; > useradd -u ${euid} -s ${eshell} -d ${ehome} -c "Added by portage for ${PN}" -g ${egroups} ${euser} "$@" || die "enewuser failed"; > fi > ;; > *) > if [[ -z $@ ]]; then > useradd -r ${opts} -c "added by portage for ${PN}" ${euser} || die "enewuser failed"; > else > einfo " - Extra: $@"; > useradd -r ${opts} "$@" ${euser} || die "enewuser failed"; > fi > ;; > esac; > if [[ ! -e ${ROOT}/${ehome} ]]; then > einfo " - Creating ${ehome} in ${ROOT}"; > mkdir -p "${ROOT}/${ehome}"; > chown ${euser} "${ROOT}/${ehome}"; > chmod 755 "${ROOT}/${ehome}"; > fi; > export SANDBOX_ON=${oldsandbox} >} >epatch () >{ > function _epatch_draw_line () > { > [[ -z $1 ]] && set "$(printf "%65s" '')"; > echo "${1//?/=}" > }; > unset P4CONFIG P4PORT P4USER; > if [[ $# -gt 1 ]]; then > local m; > for m in "$@"; > do > epatch "${m}"; > done; > return 0; > fi; > local SINGLE_PATCH="no"; > [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}"; > if [[ -f $1 ]]; then > SINGLE_PATCH="yes"; > set -- "$1"; > local EPATCH_SUFFIX=$1; > else > if [[ -d $1 ]]; then > set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"}; > else > [[ $# -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; > local PIPE_CMD; > case ${EPATCH_SUFFIX##*\.} in > xz) > PIPE_CMD="xz -dc" > ;; > lzma) > PIPE_CMD="lzma -dc" > ;; > bz2) > PIPE_CMD="bzip2 -dc" > ;; > gz | Z | z) > PIPE_CMD="gzip -dc" > ;; > ZIP | zip) > PIPE_CMD="unzip -p" > ;; > *) > > ;; > esac; > [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}"; > local x; > for x in "$@"; > do > [[ ! -f ${x} ]] && continue; > local patchname=${x##*/}; > local a=${patchname#*_}; > a=${a%%_*}; > if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then > continue; > fi; > if [[ -n ${EPATCH_EXCLUDE} ]]; then > eshopts_push -o noglob; > local ex; > for ex in ${EPATCH_EXCLUDE}; > do > if [[ ${patchname} == ${ex} ]]; then > eshopts_pop; > continue 2; > fi; > done; > eshopts_pop; > fi; > if [[ ${SINGLE_PATCH} == "yes" ]]; then > if [[ -n ${EPATCH_SINGLE_MSG} ]]; then > einfo "${EPATCH_SINGLE_MSG}"; > else > einfo "Applying ${patchname} ..."; > fi; > else > einfo " ${patchname} ..."; > fi; > local STDERR_TARGET="${T}/${patchname}.out"; > if [[ -e ${STDERR_TARGET} ]]; then > STDERR_TARGET="${T}/${patchname}-$$.out"; > fi; > printf "***** %s *****\n\n" "${patchname}" > "${STDERR_TARGET}"; > local count=0; > local PATCH_TARGET; > if [[ -n ${PIPE_CMD} ]]; then > PATCH_TARGET="${T}/$$.patch"; > echo "PIPE_COMMAND: ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}"; > if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then > echo; > eerror "Could not extract patch!"; > count=5; > break; > fi; > else > PATCH_TARGET=${x}; > fi; > local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }'); > if [[ -n ${abs_paths} ]]; then > count=1; > printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}"; > fi; > local rel_paths=$(egrep -n '^[-+]{3} [^ ]*[.][.]/' "${PATCH_TARGET}"); > if [[ -n ${rel_paths} ]]; then > eqawarn "QA Notice: Your patch uses relative paths '../'."; > eqawarn " In the future this will cause a failure."; > eqawarn "${rel_paths}"; > fi; > while [[ ${count} -lt 5 ]]; do > ( _epatch_draw_line "***** ${patchname} *****"; > echo; > echo "PATCH COMMAND: patch -p${count} ${EPATCH_OPTS} < '${PATCH_TARGET}'"; > echo; > _epatch_draw_line "***** ${patchname} *****" ) >> "${STDERR_TARGET}"; > if ( patch -p${count} ${EPATCH_OPTS} --dry-run -f < "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then > ( _epatch_draw_line "***** ${patchname} *****"; > echo; > echo "ACTUALLY APPLYING ${patchname} ..."; > echo; > _epatch_draw_line "***** ${patchname} *****"; > patch -p${count} ${EPATCH_OPTS} < "${PATCH_TARGET}" 2>&1 ) >> "${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}"; > eend 0; > done; > [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching"; > : >} >epatch_user () >{ > [[ $# -ne 0 ]] && die "epatch_user takes no options"; > local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; > for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}}; > do > EPATCH_SOURCE=${base}/${CTARGET}/${check}; > [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check}; > [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check}; > if [[ -d ${EPATCH_SOURCE} ]]; then > EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch; > return 0; > fi; > done; > return 1 >} >epause () >{ > ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org" >} >epunt_cxx () >{ > local dir=$1; > [[ -z ${dir} ]] && dir=${S}; > ebegin "Removing useless C++ checks"; > local f; > find "${dir}" -name configure | while read f; do > patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null; > done; > eend 0 >} >eshopts_pop () >{ > [[ $# -ne 0 ]] && die "eshopts_pop takes no arguments"; > local i=$(( ${#__ESHOPTS_SAVE__[@]} - 1 )); > [[ ${i} -eq -1 ]] && die "eshopts_{push,pop}: unbalanced pair"; > local s=${__ESHOPTS_SAVE__[$i]}; > unset __ESHOPTS_SAVE__[$i]; > if [[ ${s} == "shopt -"* ]]; then > eval "${s}" || die "eshopts_pop: sanity: invalid shopt options: ${s}"; > else > set +$- || die "eshopts_pop: sanity: invalid shell settings: $-"; > set -${s} || die "eshopts_pop: sanity: unable to restore saved shell settings: ${s}"; > fi >} >eshopts_push () >{ > local i=${#__ESHOPTS_SAVE__[@]}; > if [[ $1 == -[su] ]]; then > __ESHOPTS_SAVE__[$i]=$(shopt -p); > [[ $# -eq 0 ]] && return 0; > shopt "$@" || die "eshopts_push: bad options to shopt: $*"; > else > __ESHOPTS_SAVE__[$i]=$-; > [[ $# -eq 0 ]] && return 0; > set "$@" || die "eshopts_push: bad options to set: $*"; > fi >} >esvn_clean () >{ > [[ -z $* ]] && set -- .; > find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf >} >fdo-mime_desktop_database_update () >{ > if [ -x "/usr/bin/update-desktop-database" ]; then > einfo "Updating desktop mime database ..."; > "/usr/bin/update-desktop-database" -q "${ROOT}/usr/share/applications"; > fi >} >fdo-mime_mime_database_update () >{ > if [ -x "/usr/bin/update-mime-database" ]; then > einfo "Updating shared mime info database ..."; > "/usr/bin/update-mime-database" "${ROOT}/usr/share/mime"; > fi >} >filter-flags () >{ > _filter-hardened "$@"; > _filter-var CFLAGS "$@"; > _filter-var CPPFLAGS "$@"; > _filter-var CXXFLAGS "$@"; > _filter-var FFLAGS "$@"; > _filter-var FCFLAGS "$@"; > return 0 >} >filter-ldflags () >{ > _filter-var LDFLAGS "$@"; > return 0 >} >filter-lfs-flags () >{ > [[ -n $@ ]] && die "filter-lfs-flags takes no arguments"; > filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE >} >filter-mfpmath () >{ > local orig_mfpmath new_math prune_math; > orig_mfpmath=$(get-flag -mfpmath); > new_math=$(get-flag mfpmath); > new_math=" ${new_math//,/ } "; > prune_math=""; > for prune_math in "$@"; > do > new_math=${new_math/ ${prune_math} / }; > done; > new_math=$(echo ${new_math}); > new_math=${new_math// /,}; > if [[ -z ${new_math} ]]; then > filter-flags ${orig_mfpmath}; > else > replace-flags ${orig_mfpmath} -mfpmath=${new_math}; > fi; > return 0 >} >find_unpackable_file () >{ > local src=$1; > if [[ -z ${src} ]]; then > src=${DISTDIR}/${A}; > else > if [[ -e ${DISTDIR}/${src} ]]; then > src=${DISTDIR}/${src}; > else > if [[ -e ${PWD}/${src} ]]; then > src=${PWD}/${src}; > else > if [[ -e ${src} ]]; then > src=${src}; > fi; > fi; > fi; > fi; > [[ ! -e ${src} ]] && return 1; > echo "${src}" >} >gcc-fullversion () >{ > _gcc_fullversion '$1.$2.$3' "$@" >} >gcc-major-version () >{ > _gcc_fullversion '$1' "$@" >} >gcc-micro-version () >{ > _gcc_fullversion '$3' "$@" >} >gcc-minor-version () >{ > _gcc_fullversion '$2' "$@" >} >gcc-specs-directive () >{ > local directive subdname subdirective; > directive="$(_gcc-specs-directive_raw $1)"; > while [[ ${directive} == *%\(*\)* ]]; do > subdname=${directive/*%\(}; > subdname=${subdname/\)*}; > subdirective="$(_gcc-specs-directive_raw ${subdname})"; > directive="${directive//\%(${subdname})/${subdirective}}"; > done; > echo "${directive}"; > return 0 >} >gcc-specs-nostrict () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]]) >} >gcc-specs-now () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ "${directive/\{!nonow:}" != "${directive}" ]]) >} >gcc-specs-pie () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!nopie:}" != "${directive}" ]]) >} >gcc-specs-relro () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ "${directive/\{!norelro:}" != "${directive}" ]]) >} >gcc-specs-ssp () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]]) >} >gcc-specs-ssp-to-all () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]]) >} >gcc-version () >{ > _gcc_fullversion '$1.$2' "$@" >} >gen_usr_ldscript () >{ > local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname); > [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/; > tc-is-static-only && return; > dodir /usr/${libdir}; > if [[ $1 == "-a" ]]; then > auto=true; > shift; > dodir /${libdir}; > fi; > output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); > [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; > for lib in "$@"; > do > local tlib; > if ${auto}; then > lib="lib${lib}${suffix}"; > else > [[ -r ${ED}/${libdir}/${lib} ]] || continue; > fi; > case ${CTARGET:-${CHOST}} in > *-darwin*) > if ${auto}; then > tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > else > tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib}); > fi; > [[ -z ${tlib} ]] && die "unable to read install_name from ${lib}"; > tlib=${tlib##*/}; > if ${auto}; then > mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then > mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > fi; > if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then > chmod u+w "${ED}${libdir}/${tlib}"; > local nowrite=yes; > fi; > install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed"; > [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}"; > pushd "${ED}/usr/${libdir}" > /dev/null; > ln -snf "../../${libdir}/${tlib}" "${lib}"; > popd > /dev/null > ;; > *-aix* | *-irix* | *64*-hpux* | *-interix* | *-winnt*) > if ${auto}; then > mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; > tlib=$(readlink "${ED}"/${libdir}/${lib}); > tlib=${tlib##*/}; > if [[ -z ${tlib} ]]; then > tlib=${lib}; > else > rm -f "${ED}"/${libdir}/${lib}; > fi; > else > tlib=${lib}; > fi; > pushd "${ED}/usr/${libdir}" > /dev/null; > ln -snf "../../${libdir}/${tlib}" "${lib}"; > popd > /dev/null > ;; > hppa*-hpux*) > if ${auto}; then > tlib=$(chatr "${ED}"/usr/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}'); > [[ -z ${tlib} ]] && tlib=${lib}; > tlib=${tlib##*/}; > mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib}* ]]; then > mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; > fi; > [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib}; > else > tlib=$(chatr "${ED}"/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}'); > [[ -z ${tlib} ]] && tlib=${lib}; > tlib=${tlib##*/}; > fi; > pushd "${ED}"/usr/${libdir} > /dev/null; > ln -snf "../../${libdir}/${tlib}" "${lib}"; > [[ ${tlib} != ${lib} ]] && ln -snf "../../${libdir}/${tlib}" "${tlib}"; > popd > /dev/null > ;; > *) > if ${auto}; then > tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib}); > [[ -z ${tlib} ]] && die "unable to read SONAME from ${lib}"; > mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die; > if [[ ${tlib} != ${lib}* ]]; then > mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die; > fi; > rm -f "${ED}"/${libdir}/${lib}; > else > tlib=${lib}; > fi; > cat > "${ED}/usr/${libdir}/${lib}" <<-END_LDSCRIPT >/* GNU ld script > Since Gentoo has critical dynamic libraries in /lib, and the static versions > in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we > run into linking problems. This "fake" dynamic lib is a linker script that > redirects the linker to the real lib. And yes, this works in the cross- > compiling scenario as the sysroot-ed linker will prepend the real path. > > See bug http://bugs.gentoo.org/4411 for more info. > */ >${output_format} >GROUP ( ${EPREFIX}/${libdir}/${tlib} ) >END_LDSCRIPT > > ;; > esac > fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}"; > done >} >get-flag () >{ > local f findflag="$1"; > for f in ${CFLAGS} ${CXXFLAGS} ${FFLAGS} ${FCFLAGS}; > do > if [ "${f/${findflag}}" != "${f}" ]; then > printf "%s\n" "${f/-${findflag}=}"; > return 0; > fi; > done; > return 1 >} >get_abi_ASFLAGS () >{ > get_abi_var ASFLAGS "$@" >} >get_abi_CDEFINE () >{ > get_abi_var CDEFINE "$@" >} >get_abi_CFLAGS () >{ > get_abi_var CFLAGS "$@" >} >get_abi_CHOST () >{ > get_abi_var CHOST "$@" >} >get_abi_CTARGET () >{ > get_abi_var CTARGET "$@" >} >get_abi_FAKE_TARGETS () >{ > get_abi_var FAKE_TARGETS "$@" >} >get_abi_LDFLAGS () >{ > get_abi_var LDFLAGS "$@" >} >get_abi_LIBDIR () >{ > get_abi_var LIBDIR "$@" >} >get_abi_var () >{ > local flag=$1; > local abi; > if [ $# -gt 1 ]; then > abi=${2}; > else > if [ -n "${ABI}" ]; then > abi=${ABI}; > else > if [ -n "${DEFAULT_ABI}" ]; then > abi=${DEFAULT_ABI}; > else > abi="default"; > fi; > fi; > fi; > local var="${flag}_${abi}"; > echo ${!var} >} >get_after_major_version () >{ > eshopts_push -s extglob; > echo $(get_version_component_range 2- "${1:-${PV}}" ); > eshopts_pop >} >get_all_abis () >{ > local order=""; > if [[ -z ${MULTILIB_ABIS} ]]; then > echo "default"; > return 0; > fi; > for x in ${MULTILIB_ABIS}; > do > if [[ ${x} != ${DEFAULT_ABI} ]]; then > order="${order:+${order} }${x}"; > fi; > done; > order="${order:+${order} }${DEFAULT_ABI}"; > echo ${order}; > return 0 >} >get_all_libdirs () >{ > local libdirs="lib"; > local abi; > local dir; > for abi in ${MULTILIB_ABIS}; > do > [ "$(get_abi_LIBDIR ${abi})" != "lib" ] && libdirs="${libdirs} $(get_abi_LIBDIR ${abi})"; > done; > echo "${libdirs}" >} >get_all_version_components () >{ > eshopts_push -s extglob; > local ver_str=${1:-${PV}} result result_idx=0; > 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:0:1}" in > [[:digit:]]) > result[$result_idx]="${ver_str%%[^[:digit:]]*}"; > ver_str="${ver_str##+([[:digit:]])}"; > result_idx=$(($result_idx + 1)) > ;; > [-_.]) > result[$result_idx]="${ver_str:0:1}"; > ver_str="${ver_str:1}"; > result_idx=$(($result_idx + 1)) > ;; > [[:alpha:]]) > local not_match="${ver_str##+([[:alpha:]])*([[:digit:]])}"; > result[$result_idx]=${ver_str:0:$((${#ver_str} - ${#not_match}))}; > ver_str="${not_match}"; > result_idx=$(($result_idx + 1)) > ;; > *) > result[$result_idx]="${ver_str:0:1}"; > ver_str="${ver_str:1}"; > result_idx=$(($result_idx + 1)) > ;; > esac; > done; > export VERSIONATOR_CACHE_RESULT="${result[@]}"; > echo ${result[@]}; > eshopts_pop >} >get_bmake () >{ > if [[ ${USERLAND} == *BSD ]]; then > echo make; > else > if [[ ${USERLAND} == "Darwin" ]]; then > echo bsdmake; > else > echo pmake; > fi; > fi >} >get_build_type () >{ > if [[ ${SLOT} = live || ${PV} = *9999* ]]; then > BUILD_TYPE="live"; > else > BUILD_TYPE="release"; > fi; > export BUILD_TYPE >} >get_install_abis () >{ > local order=""; > if [[ -z ${MULTILIB_ABIS} ]]; then > echo "default"; > return 0; > fi; > if [[ ${EMULTILIB_PKG} == "true" ]]; then > for x in ${MULTILIB_ABIS}; > do > if [[ ${x} != "${DEFAULT_ABI}" ]]; then > hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}"; > fi; > done; > hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}"; > if [[ -n ${ABI_ALLOW} ]]; then > local ordera=""; > for x in ${order}; > do > if hasq ${x} ${ABI_ALLOW}; then > ordera="${ordera} ${x}"; > fi; > done; > order=${ordera}; > fi; > else > order=${DEFAULT_ABI}; > fi; > if [[ -z ${order} ]]; then > 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 () >{ > eshopts_push -s extglob; > echo $(( $(get_version_component_count "${1:-${PV}}" ) - 1 )); > eshopts_pop >} >get_libdir () >{ > local CONF_LIBDIR; > if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then > echo ${CONF_LIBDIR_OVERRIDE}; > else > get_abi_LIBDIR; > fi >} >get_libdir_override () >{ > if has_multilib_profile; then > eerror "get_libdir_override called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; > exit 1; > fi; > CONF_LIBDIR="$1"; > CONF_LIBDIR_OVERRIDE="$1"; > LIBDIR_default="$1" >} >get_libname () >{ > local libname; > local ver=$1; > case ${CHOST} in > *-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 () >{ > eshopts_push -s extglob; > local c; > c=($(get_all_version_components "${1:-${PV}}" )); > echo ${c[0]}; > eshopts_pop >} >get_ml_incdir () >{ > local dir=/usr/include; > if [[ $# -gt 0 ]]; then > incdir=$1; > shift; > fi; > if [[ -z "${MULTILIB_ABIS}" ]]; then > echo ${incdir}; > return 0; > fi; > local abi=${ABI-${DEFAULT_ABI}}; > if [[ $# -gt 0 ]]; then > abi=$1; > shift; > fi; > if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then > echo ${dir}/gentoo-multilib/${abi}; > else > echo ${dir}; > fi >} >get_modname () >{ > local modname; > local ver=$1; > case ${CHOST} in > *-darwin*) > modname="bundle" > ;; > *) > modname="so" > ;; > esac; > echo ".${modname}" >} >get_mounts () >{ > local point= node= fs= opts= foo=; > if [[ $(uname -s) == "Linux" ]]; then > while read node point fs opts foo; do > echo "${point} ${node} ${fs} ${opts}"; > done < /proc/mounts; > return; > fi; > local IFS=' '; > LC_ALL=C mount -p | while read node point fs foo; do > opts=${fs#* }; > fs=${fs%% *}; > echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}"; > done >} >get_multilibdir () >{ > if has_multilib_profile; then > eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; > exit 1; > fi; > echo ${CONF_MULTILIBDIR:=lib32} >} >get_version_component_count () >{ > eshopts_push -s extglob; > local a; > a=($(get_version_components "${1:-${PV}}" )); > echo ${#a[@]}; > eshopts_pop >} >get_version_component_range () >{ > eshopts_push -s extglob; > local c v="${2:-${PV}}" range="${1}" range_start range_end 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=$(($i + 1)); > [[ $i -gt ${#c[@]} ]] && eshopts_pop && return; > [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1)); > done; > while (( j <= ${range_end} )); do > echo -n ${c[$i]}; > [[ $i -gt ${#c[@]} ]] && eshopts_pop && return; > [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1)); > i=$(($i + 1)); > done; > eshopts_pop >} >get_version_components () >{ > eshopts_push -s extglob; > local c="$(get_all_version_components "${1:-${PV}}")"; > c=(${c[@]//[-._]/ }); > echo ${c[@]}; > eshopts_pop >} >has_hardened () >{ > ewarn "has_hardened: deprecated, please use gcc-specs-{relro,now}()!" 1>&2; > test_version_info Hardened && return 0; > [[ -f ${GCC_SPECS} && ${GCC_SPECS} != ${GCC_SPECS/hardened/} ]] >} >has_m32 () >{ > [ "$(tc-arch)" = "amd64" ] && has_multilib_profile && return 0; > local temp=$(emktemp); > echo "int main() { return(0); }" > "${temp}".c; > MY_CC=$(tc-getCC); > ${MY_CC/ .*/} -m32 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1; > local ret=$?; > rm -f "${temp}".c; > [[ ${ret} != 1 ]] && return 0; > return 1 >} >has_m64 () >{ > local temp="$(emktemp)"; > echo "int main() { return(0); }" > "${temp}".c; > MY_CC=$(tc-getCC); > ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1; > local ret=$?; > rm -f "${temp}".c; > [[ ${ret} != 1 ]] && return 0; > return 1 >} >has_multilib_profile () >{ > [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] >} >has_pic () >{ > ewarn "has_pic: deprecated, please use gcc-specs-pie()!" 1>&2; > [[ ${CFLAGS/-fPIC} != ${CFLAGS} || ${CFLAGS/-fpic} != ${CFLAGS} ]] || gcc-specs-pie >} >has_pie () >{ > ewarn "has_pie: deprecated, please use gcc-specs-pie()!" 1>&2; > [[ ${CFLAGS/-fPIE} != ${CFLAGS} || ${CFLAGS/-fpie} != ${CFLAGS} ]] || gcc-specs-pie >} >has_ssp () >{ > ewarn "has_ssp: deprecated, please use gcc-specs-ssp()!" 1>&2; > [[ ${CFLAGS/-fstack-protector} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP__) ]] || gcc-specs-ssp >} >has_ssp_all () >{ > ewarn "has_ssp_all: deprecated, please use gcc-specs-ssp()!" 1>&2; > [[ ${CFLAGS/-fstack-protector-all} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP_ALL__) ]] || gcc-specs-ssp-to-all >} >helpers_die () >{ > case "${EAPI:-0}" in > 0 | 1 | 2 | 3) > echo -e "$@" 1>&2 > ;; > *) > die "$@" > ;; > esac >} >increment-qa-violations () >{ > let "JAVA_PKG_QA_VIOLATIONS+=1"; > export JAVA_PKG_QA_VIOLATIONS >} >install_library_dependencies () >{ > local depsfile="${T}/${PN}:${SLOT}"; > ebegin "Installing library dependencies as ${depsfile##*/}"; > insinto /var/lib/kde; > doins "${depsfile}" || die "Failed to install library dependencies."; > eend $? >} >is-flag () >{ > is-flagq "$@" && echo true >} >is-flagq () >{ > [[ -n $2 ]] && die "Usage: is-flag <flag>"; > _is_flagq CFLAGS $1 || _is_flagq CXXFLAGS $1 || _is_flagq FFLAGS $1 || _is_flagq FCFLAGS $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-login-disabled () >{ > shell=$(egetshell "$1"); > case ${shell} in > /bin/false | /usr/bin/false | /sbin/nologin | /usr/sbin/nologin) > return 0 > ;; > *) > return 1 > ;; > esac >} >is_final_abi () >{ > has_multilib_profile || return 0; > local ALL_ABIS=$(get_install_abis); > local LAST_ABI=${ALL_ABIS/* /}; > [[ ${LAST_ABI} == ${ABI} ]] >} >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_check-jikes () >{ > if hasq 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 () >{ > hasq $(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" 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 >} >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 () >{ > if ! built_with_use sys-devel/gcc gcj; then > ewarn; > ewarn "You must build gcc with the gcj support to build with gcj"; > ewarn; > ebeep 5; > die "No GCJ support found!"; > fi >} >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 () >{ > if hasq test ${FEATURES} && ! hasq -test ${FEATURES} && hasq test ${IUSE} && ! use test; then > eerror "You specified FEATURES=test, but USE=test is needed"; > eerror "to pull in the additional dependencies for testing"; > die "Need USE=test enabled"; > fi >} >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} $*; > 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; > 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} $*; > export LANG="C" LC_ALL="C"; > 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"; > else > if [[ "${vendor}" == "jrockit" ]]; then > addpredict "/proc/cpuinfo"; > 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 > 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."; > else > export GENTOO_VM; > fi; > 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" >} >kde4-base_pkg_postinst () >{ > debug-print-function ${FUNCNAME} "$@"; > buildsycoca; > if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then > echo; > einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"; > einfo "Use it at your own risk."; > einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"; > echo; > else > if [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then > echo; > ewarn "WARNING! You have the kdeprefix useflag enabled."; > ewarn "This setting is strongly discouraged and might lead to potential trouble"; > ewarn "with KDE update strategies."; > ewarn "You are using this setup at your own risk and the kde team does not"; > ewarn "take responsibilities for dead kittens."; > echo; > fi; > fi; > if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && ! has_version 'kde-base/kdebase-runtime-meta' && ! has_version 'kde-base/kdebase-startkde'; then > if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then > echo; > ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""; > ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."; > ewarn "With this setting you are unsupported by KDE team."; > ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."; > fi; > fi >} >kde4-base_pkg_postrm () >{ > debug-print-function ${FUNCNAME} "$@"; > buildsycoca >} >kde4-base_pkg_setup () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ ${EAPI} == 2 ]] && ! use prefix; then > EPREFIX=; > EROOT=${ROOT}; > fi; > [[ ${EROOT} = */ ]] || EROOT+="/"; > [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."; > unset KDEHOME; > if [[ ${KDEBASE} = kde-base ]]; then > if use kdeprefix; then > KDEDIR=/usr/kde/${SLOT}; > else > KDEDIR=/usr; > fi; > : ${PREFIX:=${KDEDIR}}; > else > KDEDIR=; > local kde_minimal_met; > for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; > do > [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1; > if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then > if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then > KDEDIR=/usr/kde/${slot}; > else > KDEDIR=/usr; > fi; > break; > fi; > done; > unset slot; > if [[ ${KDE_REQUIRED} = always ]] || { > [[ ${KDE_REQUIRED} = optional ]] && use kde > }; then > [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"; > else > [[ -z ${KDEDIR} ]] && KDEDIR=/usr; > fi; > : ${PREFIX:=/usr}; > fi; > EKDEDIR=${EPREFIX}${KDEDIR}; > export PKG_CONFIG_PATH="${EKDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"; > QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"; > export XDG_CONFIG_HOME="${T}" >} >kde4-base_src_compile () >{ > debug-print-function ${FUNCNAME} "$@"; > cmake-utils_src_compile "$@" >} >kde4-base_src_configure () >{ > debug-print-function ${FUNCNAME} "$@"; > local cmakeargs=(-DKDE4_BUILD_TESTS=OFF); > if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then > cmakeargs+=(-DKDE4_ENABLE_FINAL=ON); > fi; > if has debug ${IUSE//+} && use debug; then > CMAKE_BUILD_TYPE="Debugfull"; > else > append-cppflags -DQT_NO_DEBUG; > fi; > [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo); > tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}"); > QTEST_COLORED=1; > unset KDEDIRS; > if [[ ${KDEDIR} != /usr ]]; then > PATH="${EKDEDIR}/bin:${PATH}"; > append-ldflags -L"${EKDEDIR}/$(get_libdir)"; > cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF); > cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}"); > fi; > tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4); > tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/); > if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then > cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc); > fi; > if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then > mycmakeargs=(${mycmakeargs}); > fi; > mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}"); > cmake-utils_src_configure >} >kde4-base_src_install () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ ${EAPI} == 2 ]] && ! use prefix; then > ED=${D}; > fi; > if [[ -n ${KMSAVELIBS} ]]; then > install_library_dependencies; > fi; > local doc; > if ! has kde4-meta ${INHERITED}; then > for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; > do > [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && dodoc "${doc}"; > done; > for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; > do > [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"; > done; > fi; > cmake-utils_src_install >} >kde4-base_src_prepare () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ -n ${KDE_LINGUAS} ]]; then > enable_selected_linguas; > fi; > if ! has kde4-meta ${INHERITED}; then > has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas; > fi; > if [[ ${BUILD_TYPE} = live ]]; then > if has subversion ${INHERITED}; then > subversion_src_prepare; > else > if has git ${INHERITED}; then > git_src_prepare; > fi; > fi; > fi; > base_src_prepare; > if [[ -n ${KMSAVELIBS} ]]; then > save_library_dependencies; > fi; > if [[ -n ${KMLOADLIBS} ]]; then > load_library_dependencies; > fi; > find "${S}" -name CMakeLists.txt -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_TASKMANAGER_(LIBRARY|LIBS)\}/taskmanager/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWORKSPACE_(LIBRARY|LIBS)\}/kworkspace/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROLIFACES_(LIBRARY|LIBS)\}/solidcontrolifaces/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROL_(LIBRARY|LIBS)\}/solidcontrol/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PROCESSUI_(LIBRARY|LIBS)\}/processui/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_LSOFUI_(LIBRARY|LIBS)\}/lsofui/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PLASMACLOCK_(LIBRARY|LIBS)\}/plasmaclock/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERYCLIENT_(LIBRARY|LIBS)\}/nepomukqueryclient/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERY_(LIBRARY|LIBS)\}/nepomukquery/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSCREENSAVER_(LIBRARY|LIBS)\}/kscreensaver/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_WEATHERION_(LIBRARY|LIBS)\}/weather_ion/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWINEFFECTS_(LIBRARY|LIBS)\}/kwineffects/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KDECORATIONS_(LIBRARY|LIBS)\}/kdecorations/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSGRD_(LIBRARY|LIBS)\}/ksgrd/g' {} + -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KEPHAL_(LIBRARY|LIBS)\}/kephal/g' {} + || die 'failed to replace KDE4Workspace library targets'; > if [[ -z ${KDEBASE} ]]; then > find "${S}" -name "*.docbook" -exec sed -i -r -e 's:-//KDE//DTD DocBook XML V4\.1(\..)?-Based Variant V1\.[01]//EN:-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN:g' {} + || die 'failed to fix DocBook variant version'; > fi >} >kde4-base_src_test () >{ > debug-print-function ${FUNCNAME} "$@"; > mycmakeargs+=(-DKDE4_BUILD_TESTS=ON); > cmake-utils_src_configure; > kde4-base_src_compile; > if [[ ${VIRTUALX_REQUIRED} == always ]] || ( [[ ${VIRTUALX_REQUIRED} != manual ]] && use test ); then > if [[ -n ${maketype} ]]; then > ewarn "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."; > ewarn " You may NOT set maketype or call virtualmake from the ebuild. Applying workaround."; > cmake-utils_src_test; > else > export maketype="cmake-utils_src_test"; > virtualmake; > fi; > else > cmake-utils_src_test; > fi >} >kde4-base_src_unpack () >{ > debug-print-function ${FUNCNAME} "$@"; > if [[ ${BUILD_TYPE} = live ]]; then > if has subversion ${INHERITED}; then > migrate_store_dir; > subversion_src_unpack; > else > if has git ${INHERITED}; then > git_src_unpack; > fi; > fi; > else > if [[ ${EAPI} == 2 ]]; then > local file; > for file in ${A}; > do > case ${file} in > *.tar.xz) > echo ">>> Unpacking ${file} to ${PWD}"; > xz -dc "${DISTDIR}"/${file} | tar xof -; > assert "failed unpacking ${file}" > ;; > *) > unpack ${file} > ;; > esac; > done; > else > unpack ${A}; > fi; > fi >} >load_library_dependencies () >{ > local pn i depsfile; > ebegin "Injecting library dependencies from '${KMLOADLIBS}'"; > i=0; > for pn in ${KMLOADLIBS}; > do > ((i++)); > depsfile="${EPREFIX}/var/lib/kde/${pn}:${SLOT}"; > [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}."; > sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || die "Failed to include library dependencies for ${pn}"; > done; > eend $? >} >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=Accessibility > ;; > admin) > type=System > ;; > antivirus) > type=System > ;; > arch) > type=Archiving > ;; > backup) > type=Archiving > ;; > cdr) > type=DiscBurning > ;; > dicts) > type=Dictionary > ;; > doc) > type=Documentation > ;; > editors) > type=TextEditor > ;; > emacs) > type=TextEditor > ;; > emulation) > type=Emulator > ;; > laptop) > type=HardwareSettings > ;; > office) > type=Office > ;; > pda) > type=PDA > ;; > vim) > type=TextEditor > ;; > xemacs) > type=TextEditor > ;; > esac > ;; > dev) > type="Development" > ;; > games) > case ${catmin} in > action | fps) > type=ActionGame > ;; > arcade) > type=ArcadeGame > ;; > board) > type=BoardGame > ;; > emulation) > type=Emulator > ;; > kids) > type=KidsGame > ;; > puzzle) > type=LogicGame > ;; > roguelike) > type=RolePlaying > ;; > rpg) > type=RolePlaying > ;; > simulation) > type=Simulation > ;; > sports) > type=SportsGame > ;; > strategy) > type=StrategyGame > ;; > esac; > type="Game;${type}" > ;; > gnome) > type="Gnome;GTK" > ;; > kde) > type="KDE;Qt" > ;; > mail) > type="Network;Email" > ;; > media) > case ${catmin} in > gfx) > type=Graphics > ;; > *) > case ${catmin} in > radio) > type=Tuner > ;; > sound) > type=Audio > ;; > tv) > type=TV > ;; > video) > type=Video > ;; > esac; > type="AudioVideo;${type}" > ;; > esac > ;; > net) > case ${catmin} in > dialup) > type=Dialup > ;; > ftp) > type=FileTransfer > ;; > im) > type=InstantMessaging > ;; > irc) > type=IRCClient > ;; > mail) > type=Email > ;; > news) > type=News > ;; > nntp) > type=News > ;; > p2p) > type=FileTransfer > ;; > voip) > type=Telephony > ;; > esac; > type="Network;${type}" > ;; > sci) > case ${catmin} in > astro*) > type=Astronomy > ;; > bio*) > type=Biology > ;; > calc*) > type=Calculator > ;; > chem*) > type=Chemistry > ;; > elec*) > type=Electronics > ;; > geo*) > type=Geology > ;; > math*) > type=Math > ;; > physics) > type=Physics > ;; > visual*) > type=DataVisualization > ;; > esac; > type="Education;Science;${type}" > ;; > sys) > type="System" > ;; > www) > case ${catmin} in > client) > type=WebBrowser > ;; > esac; > type="Network;${type}" > ;; > *) > type= > ;; > esac; > fi; > if [ "${SLOT}" == "0" ]; then > local desktop_name="${PN}"; > else > local desktop_name="${PN}-${SLOT}"; > fi; > local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; > type=${type%;}${type:+;}; > eshopts_push -s extglob; > if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then > ewarn "As described in the Icon Theme Specification, icon file extensions are not"; > ewarn "allowed in .desktop files if the value is not an absolute path."; > icon=${icon%.@(xpm|png|svg)}; > fi; > eshopts_pop; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Name=${name} >Type=Application >Comment=${DESCRIPTION} >Exec=${exec} >TryExec=${exec%% *} >Icon=${icon} >Categories=${type} >EOF > > if [[ ${fields:-=} != *=* ]]; then > ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}"; > fields="Path=${fields}"; > fi; > [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}"; > ( insinto /usr/share/applications; > doins "${desktop}" ) || die "installing desktop file failed" >} >make_session_desktop () >{ > [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1; > [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1; > local title=$1; > local command=$2; > local desktop=${T}/${wm:-${PN}}.desktop; > shift 2; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Name=${title} >Comment=This session logs you into ${title} >Exec=${command} $* >TryExec=${command} >Type=XSession >EOF > > ( insinto /usr/share/xsessions; > doins "${desktop}" ) >} >make_wrapper () >{ > local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; > local tmpwrapper=$(emktemp); > cat > "${tmpwrapper}" <<EOF >#!/bin/sh >cd "${chdir:-.}" >if [ -n "${libdir}" ] ; then > if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then > export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${libdir}" > else > export LD_LIBRARY_PATH="${libdir}" > fi >fi >exec ${bin} "\$@" >EOF > > chmod go+rx "${tmpwrapper}"; > if [[ -n ${path} ]]; then > ( exeinto "${path}"; > newexe "${tmpwrapper}" "${wrapper}" ) || die; > else > newbin "${tmpwrapper}" "${wrapper}" || die; > fi >} >migrate_store_dir () >{ > local cleandir="${ESVN_STORE_DIR}/KDE"; > if [[ -d "${cleandir}" ]]; then > ewarn "'${cleandir}' has been found. Moving contents to new location."; > addwrite "${ESVN_STORE_DIR}"; > local module; > if pushd "${cleandir}"/kdebase/kdebase > /dev/null; then > for module in `find . -maxdepth 1 -type d -name [a-z0-9]\*`; > do > module="${module#./}"; > mkdir -p "${ESVN_STORE_DIR}/kdebase-${module}" && mv -f "${module}" "${ESVN_STORE_DIR}/kdebase-${module}" || die "Failed to move to '${ESVN_STORE_DIR}/kdebase-${module}'."; > done; > popd > /dev/null; > rm -fr "${cleandir}/kdebase" || die "Failed to remove ${cleandir}/kdebase. You need to remove it manually."; > fi; > local pkg; > for pkg in "${cleandir}"/*; > do > mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "Failed to move '${pkg}'"; > done; > rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue."; > fi; > if ! hasq kde4-meta ${INHERITED}; then > case ${KMNAME} in > extragear* | playground*) > local svnlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}"; > if [[ -d "${svnlocalpath}" ]]; then > local destdir="${ESVN_STORE_DIR}"/"${ESVN_PROJECT}"/"`basename "${ESVN_REPO_URI}"`"; > ewarn "'${svnlocalpath}' has been found."; > ewarn "Moving contents to new location: ${destdir}"; > addwrite "${ESVN_STORE_DIR}"; > mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${svnlocalpath}" "${destdir}" || die "Failed to move to '${svnlocalpath}'"; > rmdir "`dirname "${svnlocalpath}"`" 2> /dev/null; > fi > ;; > esac; > fi >} >multilib_env () >{ > local CTARGET=${1:-${CTARGET}}; > case ${CTARGET} in > x86_64*) > export CFLAGS_x86=${CFLAGS_x86--m32}; > export CHOST_x86=${CTARGET/x86_64/i686}; > export CTARGET_x86=${CHOST_x86}; > export CDEFINE_x86="__i386__"; > export LIBDIR_x86="lib"; > export CFLAGS_amd64=${CFLAGS_amd64--m64}; > export CHOST_amd64=${CTARGET}; > export CTARGET_amd64=${CHOST_amd64}; > export CDEFINE_amd64="__x86_64__"; > export LIBDIR_amd64="lib64"; > export MULTILIB_ABIS="amd64 x86"; > export DEFAULT_ABI="amd64" > ;; > mips64*) > export CFLAGS_o32=${CFLAGS_o32--mabi=32}; > export CHOST_o32=${CTARGET/mips64/mips}; > export CTARGET_o32=${CHOST_o32}; > export CDEFINE_o32="_MIPS_SIM == _ABIO32"; > export LIBDIR_o32="lib"; > export CFLAGS_n32=${CFLAGS_n32--mabi=n32}; > export CHOST_n32=${CTARGET}; > export CTARGET_n32=${CHOST_n32}; > export CDEFINE_n32="_MIPS_SIM == _ABIN32"; > export LIBDIR_n32="lib32"; > export CFLAGS_n64=${CFLAGS_n64--mabi=64}; > export CHOST_n64=${CTARGET}; > export CTARGET_n64=${CHOST_n64}; > export CDEFINE_n64="_MIPS_SIM == _ABI64"; > export LIBDIR_n64="lib64"; > export MULTILIB_ABIS="n64 n32 o32"; > export DEFAULT_ABI="n32" > ;; > powerpc64*) > export CFLAGS_ppc=${CFLAGS_ppc--m32}; > export CHOST_ppc=${CTARGET/powerpc64/powerpc}; > export CTARGET_ppc=${CHOST_ppc}; > export CDEFINE_ppc="!__powerpc64__"; > export LIBDIR_ppc="lib"; > export CFLAGS_ppc64=${CFLAGS_ppc64--m64}; > export CHOST_ppc64=${CTARGET}; > export CTARGET_ppc64=${CHOST_ppc64}; > export CDEFINE_ppc64="__powerpc64__"; > export LIBDIR_ppc64="lib64"; > export MULTILIB_ABIS="ppc64 ppc"; > export DEFAULT_ABI="ppc64" > ;; > s390x*) > export CFLAGS_s390=${CFLAGS_s390--m31}; > export CHOST_s390=${CTARGET/s390x/s390}; > export CTARGET_s390=${CHOST_s390}; > export CDEFINE_s390="!__s390x__"; > export LIBDIR_s390="lib"; > export CFLAGS_s390x=${CFLAGS_s390x--m64}; > export CHOST_s390x=${CTARGET}; > export CTARGET_s390x=${CHOST_s390x}; > export CDEFINE_s390x="__s390x__"; > export LIBDIR_s390x="lib64"; > export MULTILIB_ABIS="s390x s390"; > export DEFAULT_ABI="s390x" > ;; > sparc*) > export CFLAGS_sparc32=${CFLAGS_sparc32}; > export CHOST_sparc32=${CTARGET/sparc64/sparc}; > export CTARGET_sparc32=${CHOST_sparc32}; > export CDEFINE_sparc32="!__arch64__"; > export LIBDIR_sparc32="lib"; > export CFLAGS_sparc64=${CFLAGS_sparc64--m64}; > export CHOST_sparc64=${CTARGET}; > export CTARGET_sparc64=${CHOST_sparc64}; > export CDEFINE_sparc64="__arch64__"; > export LIBDIR_sparc64="lib64"; > export MULTILIB_ABIS="${MULTILIB_ABIS-sparc64 sparc32}"; > export DEFAULT_ABI="${DEFAULT_ABI-sparc64}" > ;; > *) > export MULTILIB_ABIS="default"; > export DEFAULT_ABI="default" > ;; > esac >} >multilib_toolchain_setup () >{ > local v vv; > export ABI=$1; > if [[ ${ABI} != ${DEFAULT_ABI} ]]; then > if [[ ${DEFAULT_ABI_SAVED} != "true" ]]; then > for v in CHOST CBUILD AS CC CXX LD; > do > export __abi_saved_${v}="${!v}"; > done; > export DEFAULT_ABI_SAVED="true"; > fi; > export CHOST=$(get_abi_CHOST ${DEFAULT_ABI}); > export AS="$(tc-getAS) $(get_abi_ASFLAGS)"; > 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); > else > if [[ ${DEFAULT_ABI_SAVED} == "true" ]]; then > for v in CHOST CBUILD AS CC CXX LD; > do > vv="__abi_saved_${v}"; > export ${v}="${!vv}"; > done; > fi; > fi >} >newicon () >{ > ( insinto /usr/share/pixmaps; > newins "$@" ) >} >newmenu () >{ > ( insinto /usr/share/applications; > newins "$@" ) >} >no-as-needed () >{ > case $($(tc-getLD) -v 2>&1 </dev/null) in > *GNU*) > echo "-Wl,--no-as-needed" > ;; > esac >} >nonfatal () >{ > if has "${EAPI:-0}" 0 1 2 3 3_pre2; then > die "$FUNCNAME() not supported in this EAPI"; > fi; > if [[ $# -lt 1 ]]; then > die "$FUNCNAME(): Missing argument"; > fi; > PORTAGE_NONFATAL=1 "$@" >} >number_abis () >{ > get_install_abis | wc -w >} >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 () >{ > fdo-mime_desktop_database_update; > fdo-mime_mime_database_update; > BASHCOMPLETION_NAME=ooffice && bash-completion_pkg_postinst; > ( [[ -x /sbin/chpax ]] || [[ -x /sbin/paxctl ]] ) && [[ -e /usr/$(get_libdir)/${PN}/program/soffice.bin ]] && scanelf -Xzm /usr/$(get_libdir)/${PN}/program/soffice.bin; > use java && /usr/$(get_libdir)/${PN}/${BASIS}/program/java-set-classpath $(java-config --classpath=jdbc-mysql 2>/dev/null) > /dev/null; > kde4-base_pkg_postinst >} >pkg_postrm () >{ > kde4-base_pkg_postrm "$@" >} >pkg_preinst () >{ > java-pkg-opt-2_pkg_preinst "$@" >} >pkg_setup () >{ > ewarn; > ewarn " It is important to note that LibreOffice is a very fragile "; > ewarn " build when it comes to CFLAGS. A number of flags have already "; > ewarn " been filtered out. If you experience difficulty merging this "; > ewarn " package and use aggressive CFLAGS, lower the CFLAGS and try to "; > ewarn " merge again. "; > ewarn; > ewarn " Also if you experience a build break, please make sure to retry "; > ewarn " with MAKEOPTS="-j1" before filing a bug. "; > ewarn; > CHECKREQS_MEMORY="512"; > use debug && CHECKREQS_DISK_BUILD="12288" || CHECKREQS_DISK_BUILD="6144"; > check_reqs; > strip-linguas ${LANGS}; > export LINGUAS_TEMP=$(echo ${LINGUAS} | sed -e 's/\ben_US\b//g;s/en//g;s/_GB/en_GB/g;s/_ZA/en_ZA/g'); > if [[ -z "${LINGUAS_TEMP}" ]] || [[ ${LINGUAS_TEMP} == " " ]]; then > export LINGUAS_OOO=""; > else > export LINGUAS_OOO="en-US ${LINGUAS_TEMP//_/-}"; > fi; > if use !java; then > ewarn " You are building with java-support disabled, this results in some "; > ewarn " of the LibreOffice functionality being disabled. "; > ewarn " If something you need does not work for you, rebuild with "; > ewarn " java in your USE-flags. "; > ewarn; > fi; > if use !gtk && use !gnome; then > ewarn " If you want the LibreOffice systray quickstarter to work "; > ewarn " activate either the 'gtk' or 'gnome' use flags. "; > ewarn; > fi; > if is-flagq -ffast-math; then > eerror " You are using -ffast-math, which is known to cause problems. "; > eerror " Please remove it from your CFLAGS, using this globally causes "; > eerror " all sorts of problems. "; > eerror " After that you will also have to - at least - rebuild python otherwise "; > eerror " the LibreOffice build will break. "; > die; > fi; > java-pkg-opt-2_pkg_setup; > local db_ver=$(db_findver '>=sys-libs/db-4.3'); > kde4-base_pkg_setup; > python_set_active_version 2; > python_pkg_setup >} >prep_ml_includes () >{ > if [[ $(number_abis) -gt 1 ]]; then > local dir; > local dirs; > local base; > if [[ $# -eq 0 ]]; then > dirs=/usr/include; > else > dirs="$@"; > fi; > for dir in ${dirs}; > do > base=${T}/gentoo-multilib/${dir}/gentoo-multilib; > mkdir -p "${base}"; > [[ -d ${base}/${ABI} ]] && rm -rf "${base}/${ABI}"; > mv "${D}/${dir}" "${base}/${ABI}"; > done; > if is_final_abi; then > base=${T}/gentoo-multilib; > pushd "${base}"; > find . | tar -c -T - -f - | tar -x --no-same-owner -f - -C "${D}"; > popd; > set --; > for dir in ${dirs}; > do > set -- "$@" "${dir}"; > local abi; > for abi in $(get_install_abis); > do > set -- "$@" "$(get_abi_CDEFINE ${abi}):${dir}/gentoo-multilib/${abi}"; > done; > create_ml_includes "$@"; > done; > fi; > fi >} >preserve_old_lib () >{ > if [[ ${EBUILD_PHASE} != "preinst" ]]; then > eerror "preserve_old_lib() must be called from pkg_preinst() only"; > die "Invalid preserve_old_lib() usage"; > fi; > [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]"; > has preserve-libs ${FEATURES} && return 0; > local lib dir; > for lib in "$@"; > do > [[ -e ${ROOT}/${lib} ]] || continue; > dir=${lib%/*}; > dodir ${dir} || die "dodir ${dir} failed"; > cp "${ROOT}"/${lib} "${D}"/${lib} || die "cp ${lib} failed"; > touch "${D}"/${lib}; > done >} >preserve_old_lib_notify () >{ > if [[ ${EBUILD_PHASE} != "postinst" ]]; then > eerror "preserve_old_lib_notify() must be called from pkg_postinst() only"; > die "Invalid preserve_old_lib_notify() usage"; > fi; > has preserve-libs ${FEATURES} && return 0; > local lib notice=0; > for lib in "$@"; > do > [[ -e ${ROOT}/${lib} ]] || continue; > if [[ ${notice} -eq 0 ]]; then > notice=1; > ewarn "Old versions of installed libraries were detected on your system."; > ewarn "In order to avoid breaking packages that depend on these old libs,"; > ewarn "the libraries are not being removed. You need to run revdep-rebuild"; > ewarn "in order to remove these old dependencies. If you do not have this"; > ewarn "helper program, simply emerge the 'gentoolkit' package."; > ewarn; > fi; > ewarn " # revdep-rebuild --library '${lib}'"; > done; > if [[ ${notice} -eq 1 ]]; then > ewarn; > ewarn "Once you've finished running revdep-rebuild, it should be safe to"; > ewarn "delete the old libraries. Here is a copy & paste for the lazy:"; > for lib in "$@"; > do > ewarn " # rm '${lib}'"; > done; > fi >} >python_clean_installation_image () >{ > _python_check_python_pkg_setup_execution; > _python_initialize_prefix_variables; > local file files=() quiet="0"; > [[ "${EBUILD_PHASE}" != "install" ]] && die "${FUNCNAME}() can be used only in src_install() phase"; > while (($#)); do > case "$1" in > -q | --quiet) > quiet="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > while read -d '' -r file; do > files+=("${file}"); > done < <(find "${ED}" "(" -name "*.py[co]" -o -name "*\$py.class" ")" -type f -print0); > if [[ "${#files[@]}" -gt 0 ]]; then > if [[ "${quiet}" == "0" ]]; then > ewarn "Deleting byte-compiled Python modules needlessly generated by build system:"; > fi; > for file in "${files[@]}"; > do > if [[ "${quiet}" == "0" ]]; then > ewarn " ${file}"; > fi; > rm -f "${file}"; > if [[ "${file%/*}" == *"/__pycache__" ]]; then > rmdir "${file%/*}" 2> /dev/null; > fi; > done; > fi; > function python_clean_sitedirs () > { > if [[ -d "${ED}$(python_get_sitedir)" ]]; then > find "${ED}$(python_get_sitedir)" "(" -name "*.c" -o -name "*.h" -o -name "*.la" ")" -type f -print0 | xargs -0 rm -f; > fi > }; > if _python_package_supporting_installation_for_multiple_python_abis; then > python_execute_function -q python_clean_sitedirs; > else > python_clean_sitedirs; > fi; > unset -f python_clean_sitedirs >} >python_convert_shebangs () >{ > _python_check_python_pkg_setup_execution; > local argument file files=() only_executables="0" python_interpreter quiet="0" recursive="0"; > while (($#)); do > case "$1" in > -r | --recursive) > recursive="1" > ;; > -q | --quiet) > quiet="1" > ;; > -x | --only-executables) > only_executables="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing Python version and files or directories"; > else > if [[ "$#" -eq 1 ]]; then > die "${FUNCNAME}(): Missing files or directories"; > fi; > fi; > if [[ -n "$(_python_get_implementation --ignore-invalid "$1")" ]]; then > python_interpreter="$(PYTHON "$1")"; > else > python_interpreter="python$1"; > fi; > shift; > for argument in "$@"; > do > if [[ ! -e "${argument}" ]]; then > die "${FUNCNAME}(): '${argument}' does not exist"; > else > if [[ -f "${argument}" ]]; then > files+=("${argument}"); > else > if [[ -d "${argument}" ]]; then > if [[ "${recursive}" == "1" ]]; then > while read -d '' -r file; do > files+=("${file}"); > done < <(find "${argument}" $([[ "${only_executables}" == "1" ]] && echo -perm /111) -type f -print0); > else > die "${FUNCNAME}(): '${argument}' is not a regular file"; > fi; > else > die "${FUNCNAME}(): '${argument}' is not a regular file or a directory"; > fi; > fi; > fi; > done; > for file in "${files[@]}"; > do > file="${file#./}"; > [[ "${only_executables}" == "1" && ! -x "${file}" ]] && continue; > if [[ "$(head -n1 "${file}")" =~ ${_PYTHON_SHEBANG_BASE_PART_REGEX} ]]; then > [[ "$(sed -ne "2p" "${file}")" =~ ^"# Gentoo '".*"' wrapper script generated by python_generate_wrapper_scripts()"$ ]] && continue; > if [[ "${quiet}" == "0" ]]; then > einfo "Converting shebang in '${file}'"; > fi; > sed -e "1s:^#![[:space:]]*\([^[:space:]]*/usr/bin/env[[:space:]]\)\?[[:space:]]*\([^[:space:]]*/\)\?\(jython\|python\)\([[:digit:]]\+\(\.[[:digit:]]\+\)\?\)\?\(\$\|[[:space:]].*\):#!\1\2${python_interpreter}\6:" -i "${file}" || die "Conversion of shebang in '${file}' failed"; > fi; > done >} >python_copy_sources () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > local dir dirs=() PYTHON_ABI; > if [[ "$#" -eq 0 ]]; then > if [[ "${WORKDIR}" == "${S}" ]]; then > die "${FUNCNAME}() cannot be used with current value of S variable"; > fi; > dirs=("${S%/}"); > else > dirs=("$@"); > fi; > _python_calculate_PYTHON_ABIS; > for PYTHON_ABI in ${PYTHON_ABIS}; > do > for dir in "${dirs[@]}"; > do > cp -pr "${dir}" "${dir}-${PYTHON_ABI}" > /dev/null || die "Copying of sources failed"; > done; > done >} >python_disable_pyc () >{ > _python_check_python_pkg_setup_execution; > if [[ "$#" -ne 0 ]]; then > die "${FUNCNAME}() does not accept arguments"; > fi; > export PYTHONDONTWRITEBYTECODE="1" >} >python_enable_pyc () >{ > _python_check_python_pkg_setup_execution; > if [[ "$#" -ne 0 ]]; then > die "${FUNCNAME}() does not accept arguments"; > fi; > unset PYTHONDONTWRITEBYTECODE >} >python_execute_function () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > _python_set_color_variables; > local action action_message action_message_template= default_function="0" failure_message failure_message_template= final_ABI="0" function iterated_PYTHON_ABIS nonfatal="0" previous_directory previous_directory_stack previous_directory_stack_length PYTHON_ABI quiet="0" return_code separate_build_dirs="0" source_dir=; > while (($#)); do > case "$1" in > --action-message) > action_message_template="$2"; > shift > ;; > -d | --default-function) > default_function="1" > ;; > --failure-message) > failure_message_template="$2"; > shift > ;; > -f | --final-ABI) > final_ABI="1" > ;; > --nonfatal) > nonfatal="1" > ;; > -q | --quiet) > quiet="1" > ;; > -s | --separate-build-dirs) > separate_build_dirs="1" > ;; > --source-dir) > source_dir="$2"; > shift > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ -n "${source_dir}" && "${separate_build_dirs}" == 0 ]]; then > die "${FUNCNAME}(): '--source-dir' option can be specified only with '--separate-build-dirs' option"; > fi; > if [[ "${default_function}" == "0" ]]; then > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing function name"; > fi; > function="$1"; > shift; > if [[ -z "$(type -t "${function}")" ]]; then > die "${FUNCNAME}(): '${function}' function is not defined"; > fi; > else > if has "${EAPI:-0}" 0 1; then > die "${FUNCNAME}(): '--default-function' option cannot be used in this EAPI"; > fi; > if [[ "${EBUILD_PHASE}" == "configure" ]]; then > if has "${EAPI}" 2 3; then > function python_default_function () > { > econf "$@" > }; > else > function python_default_function () > { > nonfatal econf "$@" > }; > fi; > else > if [[ "${EBUILD_PHASE}" == "compile" ]]; then > function python_default_function () > { > emake "$@" > }; > else > if [[ "${EBUILD_PHASE}" == "test" ]]; then > function python_default_function () > { > if emake -j1 -n check &>/dev/null; then > emake -j1 check "$@"; > else > if emake -j1 -n test &>/dev/null; then > emake -j1 test "$@"; > fi; > fi > }; > else > if [[ "${EBUILD_PHASE}" == "install" ]]; then > function python_default_function () > { > emake DESTDIR="${D}" install "$@" > }; > else > die "${FUNCNAME}(): '--default-function' option cannot be used in this ebuild phase"; > fi; > fi; > fi; > fi; > function="python_default_function"; > fi; > if _python_abi-specific_local_scope; then > die "${FUNCNAME}(): Invalid call stack"; > fi; > if [[ "${quiet}" == "0" ]]; then > [[ "${EBUILD_PHASE}" == "setup" ]] && action="Setting up"; > [[ "${EBUILD_PHASE}" == "unpack" ]] && action="Unpacking"; > [[ "${EBUILD_PHASE}" == "prepare" ]] && action="Preparation"; > [[ "${EBUILD_PHASE}" == "configure" ]] && action="Configuration"; > [[ "${EBUILD_PHASE}" == "compile" ]] && action="Building"; > [[ "${EBUILD_PHASE}" == "test" ]] && action="Testing"; > [[ "${EBUILD_PHASE}" == "install" ]] && action="Installation"; > [[ "${EBUILD_PHASE}" == "preinst" ]] && action="Preinstallation"; > [[ "${EBUILD_PHASE}" == "postinst" ]] && action="Postinstallation"; > [[ "${EBUILD_PHASE}" == "prerm" ]] && action="Preuninstallation"; > [[ "${EBUILD_PHASE}" == "postrm" ]] && action="Postuninstallation"; > fi; > _python_calculate_PYTHON_ABIS; > if [[ "${final_ABI}" == "1" ]]; then > iterated_PYTHON_ABIS="$(PYTHON -f --ABI)"; > else > iterated_PYTHON_ABIS="${PYTHON_ABIS}"; > fi; > for PYTHON_ABI in ${iterated_PYTHON_ABIS}; > do > _python_prepare_flags; > if [[ "${quiet}" == "0" ]]; then > if [[ -n "${action_message_template}" ]]; then > eval "action_message=\"${action_message_template}\""; > else > action_message="${action} of ${CATEGORY}/${PF} with $(python_get_implementation) $(python_get_version)..."; > fi; > echo " ${_GREEN}*${_NORMAL} ${_BLUE}${action_message}${_NORMAL}"; > fi; > if [[ "${separate_build_dirs}" == "1" ]]; then > if [[ -n "${source_dir}" ]]; then > export BUILDDIR="${S}/${source_dir}-${PYTHON_ABI}"; > else > export BUILDDIR="${S}-${PYTHON_ABI}"; > fi; > pushd "${BUILDDIR}" > /dev/null || die "pushd failed"; > else > export BUILDDIR="${S}"; > fi; > previous_directory="$(pwd)"; > previous_directory_stack="$(dirs -p)"; > previous_directory_stack_length="$(dirs -p | wc -l)"; > if ! has "${EAPI}" 0 1 2 3 && has "${PYTHON_ABI}" ${FAILURE_TOLERANT_PYTHON_ABIS}; then > EPYTHON="$(PYTHON)" nonfatal "${function}" "$@"; > else > EPYTHON="$(PYTHON)" "${function}" "$@"; > fi; > return_code="$?"; > _python_restore_flags; > if [[ "${return_code}" -ne 0 ]]; then > if [[ -n "${failure_message_template}" ]]; then > eval "failure_message=\"${failure_message_template}\""; > else > failure_message="${action} failed with $(python_get_implementation) $(python_get_version) in ${function}() function"; > fi; > if [[ "${nonfatal}" == "1" ]]; then > if [[ "${quiet}" == "0" ]]; then > ewarn "${failure_message}"; > fi; > else > if [[ "${final_ABI}" == "0" ]] && has "${PYTHON_ABI}" ${FAILURE_TOLERANT_PYTHON_ABIS}; then > if [[ "${EBUILD_PHASE}" != "test" ]] || ! has test-fail-continue ${FEATURES}; then > local enabled_PYTHON_ABIS= other_PYTHON_ABI; > for other_PYTHON_ABI in ${PYTHON_ABIS}; > do > [[ "${other_PYTHON_ABI}" != "${PYTHON_ABI}" ]] && enabled_PYTHON_ABIS+="${enabled_PYTHON_ABIS:+ }${other_PYTHON_ABI}"; > done; > export PYTHON_ABIS="${enabled_PYTHON_ABIS}"; > fi; > if [[ "${quiet}" == "0" ]]; then > ewarn "${failure_message}"; > fi; > if [[ -z "${PYTHON_ABIS}" ]]; then > die "${function}() function failed with all enabled Python ABIs"; > fi; > else > die "${failure_message}"; > fi; > fi; > fi; > if [[ "$(dirs -p | wc -l)" -lt "${previous_directory_stack_length}" ]]; then > die "Directory stack decreased illegally"; > fi; > while [[ "$(dirs -p | wc -l)" -gt "${previous_directory_stack_length}" ]]; do > popd > /dev/null || die "popd failed"; > done; > cd "${previous_directory}"; > if [[ "$(dirs -p)" != "${previous_directory_stack}" ]]; then > die "Directory stack changed illegally"; > fi; > if [[ "${separate_build_dirs}" == "1" ]]; then > popd > /dev/null || die "popd failed"; > fi; > unset BUILDDIR; > done; > if [[ "${default_function}" == "1" ]]; then > unset -f python_default_function; > fi >} >python_execute_nosetests () >{ > _python_check_python_pkg_setup_execution; > _python_set_color_variables; > local PYTHONPATH_template= separate_build_dirs=; > while (($#)); do > case "$1" in > -P | --PYTHONPATH) > PYTHONPATH_template="$2"; > shift > ;; > -s | --separate-build-dirs) > separate_build_dirs="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > function python_test_function () > { > local evaluated_PYTHONPATH; > eval "evaluated_PYTHONPATH=\"${PYTHONPATH_template}\""; > _python_test_hook pre; > if [[ -n "${evaluated_PYTHONPATH}" ]]; then > echo ${_BOLD}PYTHONPATH="${evaluated_PYTHONPATH}" nosetests --verbosity="${PYTHON_TEST_VERBOSITY}" "$@"${_NORMAL}; > PYTHONPATH="${evaluated_PYTHONPATH}" nosetests --verbosity="${PYTHON_TEST_VERBOSITY}" "$@" || return "$?"; > else > echo ${_BOLD}nosetests --verbosity="${PYTHON_TEST_VERBOSITY}" "$@"${_NORMAL}; > nosetests --verbosity="${PYTHON_TEST_VERBOSITY}" "$@" || return "$?"; > fi; > _python_test_hook post > }; > if _python_package_supporting_installation_for_multiple_python_abis; then > python_execute_function ${separate_build_dirs:+-s} python_test_function "$@"; > else > if [[ -n "${separate_build_dirs}" ]]; then > die "${FUNCNAME}(): Invalid usage"; > fi; > python_test_function "$@" || die "Testing failed"; > fi; > unset -f python_test_function >} >python_execute_py.test () >{ > _python_check_python_pkg_setup_execution; > _python_set_color_variables; > local PYTHONPATH_template= separate_build_dirs=; > while (($#)); do > case "$1" in > -P | --PYTHONPATH) > PYTHONPATH_template="$2"; > shift > ;; > -s | --separate-build-dirs) > separate_build_dirs="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > function python_test_function () > { > local evaluated_PYTHONPATH; > eval "evaluated_PYTHONPATH=\"${PYTHONPATH_template}\""; > _python_test_hook pre; > if [[ -n "${evaluated_PYTHONPATH}" ]]; then > echo ${_BOLD}PYTHONPATH="${evaluated_PYTHONPATH}" py.test $([[ "${PYTHON_TEST_VERBOSITY}" -ge 2 ]] && echo -v) "$@"${_NORMAL}; > PYTHONPATH="${evaluated_PYTHONPATH}" py.test $([[ "${PYTHON_TEST_VERBOSITY}" -ge 2 ]] && echo -v) "$@" || return "$?"; > else > echo ${_BOLD}py.test $([[ "${PYTHON_TEST_VERBOSITY}" -gt 1 ]] && echo -v) "$@"${_NORMAL}; > py.test $([[ "${PYTHON_TEST_VERBOSITY}" -gt 1 ]] && echo -v) "$@" || return "$?"; > fi; > _python_test_hook post > }; > if _python_package_supporting_installation_for_multiple_python_abis; then > python_execute_function ${separate_build_dirs:+-s} python_test_function "$@"; > else > if [[ -n "${separate_build_dirs}" ]]; then > die "${FUNCNAME}(): Invalid usage"; > fi; > python_test_function "$@" || die "Testing failed"; > fi; > unset -f python_test_function >} >python_execute_trial () >{ > _python_check_python_pkg_setup_execution; > _python_set_color_variables; > local PYTHONPATH_template= separate_build_dirs=; > while (($#)); do > case "$1" in > -P | --PYTHONPATH) > PYTHONPATH_template="$2"; > shift > ;; > -s | --separate-build-dirs) > separate_build_dirs="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > function python_test_function () > { > local evaluated_PYTHONPATH; > eval "evaluated_PYTHONPATH=\"${PYTHONPATH_template}\""; > _python_test_hook pre; > if [[ -n "${evaluated_PYTHONPATH}" ]]; then > echo ${_BOLD}PYTHONPATH="${evaluated_PYTHONPATH}" trial $([[ "${PYTHON_TEST_VERBOSITY}" -ge 4 ]] && echo --spew) "$@"${_NORMAL}; > PYTHONPATH="${evaluated_PYTHONPATH}" trial $([[ "${PYTHON_TEST_VERBOSITY}" -ge 4 ]] && echo --spew) "$@" || return "$?"; > else > echo ${_BOLD}trial $([[ "${PYTHON_TEST_VERBOSITY}" -ge 4 ]] && echo --spew) "$@"${_NORMAL}; > trial $([[ "${PYTHON_TEST_VERBOSITY}" -ge 4 ]] && echo --spew) "$@" || return "$?"; > fi; > _python_test_hook post > }; > if _python_package_supporting_installation_for_multiple_python_abis; then > python_execute_function ${separate_build_dirs:+-s} python_test_function "$@"; > else > if [[ -n "${separate_build_dirs}" ]]; then > die "${FUNCNAME}(): Invalid usage"; > fi; > python_test_function "$@" || die "Testing failed"; > fi; > unset -f python_test_function >} >python_generate_wrapper_scripts () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > _python_initialize_prefix_variables; > local eselect_python_option file force="0" quiet="0" PYTHON_ABI PYTHON_ABIS_list python2_enabled="0" python3_enabled="0" respect_EPYTHON="0"; > while (($#)); do > case "$1" in > -E | --respect-EPYTHON) > respect_EPYTHON="1" > ;; > -f | --force) > force="1" > ;; > -q | --quiet) > quiet="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing arguments"; > fi; > _python_calculate_PYTHON_ABIS; > for PYTHON_ABI in "${_CPYTHON2_GLOBALLY_SUPPORTED_ABIS[@]}"; > do > if has "${PYTHON_ABI}" ${PYTHON_ABIS}; then > python2_enabled="1"; > fi; > done; > for PYTHON_ABI in "${_CPYTHON3_GLOBALLY_SUPPORTED_ABIS[@]}"; > do > if has "${PYTHON_ABI}" ${PYTHON_ABIS}; then > python3_enabled="1"; > fi; > done; > if [[ "${python2_enabled}" == "1" && "${python3_enabled}" == "1" ]]; then > eselect_python_option=; > else > if [[ "${python2_enabled}" == "1" && "${python3_enabled}" == "0" ]]; then > eselect_python_option="--python2"; > else > if [[ "${python2_enabled}" == "0" && "${python3_enabled}" == "1" ]]; then > eselect_python_option="--python3"; > else > die "${FUNCNAME}(): Unsupported environment"; > fi; > fi; > fi; > PYTHON_ABIS_list="$("$(PYTHON -f)" -c "print(', '.join('\"%s\"' % x for x in reversed('${PYTHON_ABIS}'.split())))")"; > for file in "$@"; > do > if [[ -f "${file}" && "${force}" == "0" ]]; then > die "${FUNCNAME}(): '${file}' already exists"; > fi; > if [[ "${quiet}" == "0" ]]; then > einfo "Generating '${file#${ED%/}}' wrapper script"; > fi; > cat > "${file}" <<EOF >#!/usr/bin/env python ># Gentoo '${file##*/}' wrapper script generated by python_generate_wrapper_scripts() > >import os >import re >import subprocess >import sys > >cpython_re = re.compile(r"^python(\d+\.\d+)$") >jython_re = re.compile(r"^jython(\d+\.\d+)$") >python_shebang_re = re.compile(r"^#! *(${EPREFIX}/usr/bin/python|(${EPREFIX})?/usr/bin/env +(${EPREFIX}/usr/bin/)?python)") >python_verification_output_re = re.compile("^GENTOO_PYTHON_TARGET_SCRIPT_PATH supported\n$") > >def get_PYTHON_ABI(EPYTHON): > cpython_matched = cpython_re.match(EPYTHON) > jython_matched = jython_re.match(EPYTHON) > if cpython_matched is not None: > PYTHON_ABI = cpython_matched.group(1) > elif jython_matched is not None: > PYTHON_ABI = jython_matched.group(1) + "-jython" > else: > PYTHON_ABI = None > return PYTHON_ABI > >EOF > > if [[ "$?" != "0" ]]; then > die "${FUNCNAME}(): Generation of '$1' failed"; > fi; > if [[ "${respect_EPYTHON}" == "1" ]]; then > cat >> "${file}" <<EOF >EPYTHON = os.environ.get("EPYTHON") >if EPYTHON: > PYTHON_ABI = get_PYTHON_ABI(EPYTHON) > if PYTHON_ABI is None: > sys.stderr.write("EPYTHON variable has unrecognized value '%s'\n" % EPYTHON) > sys.exit(1) >else: > try: > eselect_process = subprocess.Popen(["${EPREFIX}/usr/bin/eselect", "python", "show"${eselect_python_option:+, $(echo "\"")}${eselect_python_option}${eselect_python_option:+$(echo "\"")}], stdout=subprocess.PIPE) > if eselect_process.wait() != 0: > raise ValueError > except (OSError, ValueError): > sys.stderr.write("Execution of 'eselect python show${eselect_python_option:+ }${eselect_python_option}' failed\n") > sys.exit(1) > > EPYTHON = eselect_process.stdout.read() > if not isinstance(EPYTHON, str): > # Python 3 > EPYTHON = EPYTHON.decode() > EPYTHON = EPYTHON.rstrip("\n") > > PYTHON_ABI = get_PYTHON_ABI(EPYTHON) > if PYTHON_ABI is None: > sys.stderr.write("'eselect python show${eselect_python_option:+ }${eselect_python_option}' printed unrecognized value '%s'\n" % EPYTHON) > sys.exit(1) > >wrapper_script_path = os.path.realpath(sys.argv[0]) >target_executable_path = "%s-%s" % (wrapper_script_path, PYTHON_ABI) >if not os.path.exists(target_executable_path): > sys.stderr.write("'%s' does not exist\n" % target_executable_path) > sys.exit(1) >EOF > > if [[ "$?" != "0" ]]; then > die "${FUNCNAME}(): Generation of '$1' failed"; > fi; > else > cat >> "${file}" <<EOF >try: > eselect_process = subprocess.Popen(["${EPREFIX}/usr/bin/eselect", "python", "show"${eselect_python_option:+, $(echo "\"")}${eselect_python_option}${eselect_python_option:+$(echo "\"")}], stdout=subprocess.PIPE) > if eselect_process.wait() != 0: > raise ValueError >except (OSError, ValueError): > sys.stderr.write("Execution of 'eselect python show${eselect_python_option:+ }${eselect_python_option}' failed\n") > sys.exit(1) > >EPYTHON = eselect_process.stdout.read() >if not isinstance(EPYTHON, str): > # Python 3 > EPYTHON = EPYTHON.decode() >EPYTHON = EPYTHON.rstrip("\n") > >PYTHON_ABI = get_PYTHON_ABI(EPYTHON) >if PYTHON_ABI is None: > sys.stderr.write("'eselect python show${eselect_python_option:+ }${eselect_python_option}' printed unrecognized value '%s'\n" % EPYTHON) > sys.exit(1) > >wrapper_script_path = os.path.realpath(sys.argv[0]) >for PYTHON_ABI in [PYTHON_ABI, ${PYTHON_ABIS_list}]: > target_executable_path = "%s-%s" % (wrapper_script_path, PYTHON_ABI) > if os.path.exists(target_executable_path): > break >else: > sys.stderr.write("No target script exists for '%s'\n" % wrapper_script_path) > sys.exit(1) >EOF > > if [[ "$?" != "0" ]]; then > die "${FUNCNAME}(): Generation of '$1' failed"; > fi; > fi > cat >> "${file}" <<EOF > >target_executable = open(target_executable_path, "rb") >target_executable_first_line = target_executable.readline() >if not isinstance(target_executable_first_line, str): > # Python 3 > target_executable_first_line = target_executable_first_line.decode("utf_8", "replace") > >python_shebang_matched = python_shebang_re.match(target_executable_first_line) >target_executable.close() > >if python_shebang_matched is not None: > try: > python_interpreter_path = "${EPREFIX}/usr/bin/%s" % EPYTHON > os.environ["GENTOO_PYTHON_TARGET_SCRIPT_PATH_VERIFICATION"] = "1" > python_verification_process = subprocess.Popen([python_interpreter_path, "-c", "pass"], stdout=subprocess.PIPE) > del os.environ["GENTOO_PYTHON_TARGET_SCRIPT_PATH_VERIFICATION"] > if python_verification_process.wait() != 0: > raise ValueError > > python_verification_output = python_verification_process.stdout.read() > if not isinstance(python_verification_output, str): > # Python 3 > python_verification_output = python_verification_output.decode() > > if not python_verification_output_re.match(python_verification_output): > raise ValueError > > if cpython_re.match(EPYTHON) is not None: > os.environ["GENTOO_PYTHON_PROCESS_NAME"] = os.path.basename(sys.argv[0]) > os.environ["GENTOO_PYTHON_WRAPPER_SCRIPT_PATH"] = sys.argv[0] > os.environ["GENTOO_PYTHON_TARGET_SCRIPT_PATH"] = target_executable_path > > if hasattr(os, "execv"): > os.execv(python_interpreter_path, [python_interpreter_path] + sys.argv) > else: > sys.exit(subprocess.Popen([python_interpreter_path] + sys.argv).wait()) > except (KeyboardInterrupt, SystemExit): > raise > except: > pass > for variable in ("GENTOO_PYTHON_PROCESS_NAME", "GENTOO_PYTHON_WRAPPER_SCRIPT_PATH", "GENTOO_PYTHON_TARGET_SCRIPT_PATH", "GENTOO_PYTHON_TARGET_SCRIPT_PATH_VERIFICATION"): > if variable in os.environ: > del os.environ[variable] > >if hasattr(os, "execv"): > os.execv(target_executable_path, sys.argv) >else: > sys.exit(subprocess.Popen([target_executable_path] + sys.argv[1:]).wait()) >EOF > > if [[ "$?" != "0" ]]; then > die "${FUNCNAME}(): Generation of '$1' failed"; > fi; > fperms +x "${file#${ED%/}}" || die "fperms '${file}' failed"; > done >} >python_get_implementation () >{ > _python_check_python_pkg_setup_execution; > local final_ABI="0" PYTHON_ABI="${PYTHON_ABI}"; > while (($#)); do > case "$1" in > -f | --final-ABI) > final_ABI="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > PYTHON_ABI="$(PYTHON -f --ABI)"; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > fi; > echo "$(_python_get_implementation "${PYTHON_ABI}")" >} >python_get_implementational_package () >{ > _python_check_python_pkg_setup_execution; > local final_ABI="0" PYTHON_ABI="${PYTHON_ABI}"; > while (($#)); do > case "$1" in > -f | --final-ABI) > final_ABI="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > PYTHON_ABI="$(PYTHON -f --ABI)"; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > fi; > if [[ "${EAPI:-0}" == "0" ]]; then > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > echo "=dev-lang/python-${PYTHON_ABI}*"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > echo "=dev-java/jython-${PYTHON_ABI%-jython}*"; > fi; > fi; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > echo "dev-lang/python:${PYTHON_ABI}"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > echo "dev-java/jython:${PYTHON_ABI%-jython}"; > fi; > fi; > fi >} >python_get_includedir () >{ > _python_check_python_pkg_setup_execution; > local base_path="0" final_ABI="0" prefix PYTHON_ABI="${PYTHON_ABI}"; > while (($#)); do > case "$1" in > -b | --base-path) > base_path="1" > ;; > -f | --final-ABI) > final_ABI="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${base_path}" == "0" ]]; then > prefix="/"; > fi; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > PYTHON_ABI="$(PYTHON -f --ABI)"; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > fi; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > echo "${prefix}usr/include/python${PYTHON_ABI}"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > echo "${prefix}usr/share/jython-${PYTHON_ABI%-jython}/Include"; > fi; > fi >} >python_get_libdir () >{ > _python_check_python_pkg_setup_execution; > local base_path="0" final_ABI="0" prefix PYTHON_ABI="${PYTHON_ABI}"; > while (($#)); do > case "$1" in > -b | --base-path) > base_path="1" > ;; > -f | --final-ABI) > final_ABI="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${base_path}" == "0" ]]; then > prefix="/"; > fi; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > PYTHON_ABI="$(PYTHON -f --ABI)"; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > fi; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > echo "${prefix}usr/$(get_libdir)/python${PYTHON_ABI}"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > echo "${prefix}usr/share/jython-${PYTHON_ABI%-jython}/Lib"; > fi; > fi >} >python_get_library () >{ > _python_check_python_pkg_setup_execution; > local base_path="0" final_ABI="0" linker_option="0" prefix PYTHON_ABI="${PYTHON_ABI}"; > while (($#)); do > case "$1" in > -b | --base-path) > base_path="1" > ;; > -f | --final-ABI) > final_ABI="1" > ;; > -l | --linker-option) > linker_option="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${base_path}" == "0" ]]; then > prefix="/"; > fi; > if [[ "${base_path}" == "1" && "${linker_option}" == "1" ]]; then > die "${FUNCNAME}(): '--base-path' and '--linker-option' options cannot be specified simultaneously"; > fi; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > PYTHON_ABI="$(PYTHON -f --ABI)"; > else > if _python_package_supporting_installation_for_multiple_python_abis; then > if ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > fi; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > if [[ "${linker_option}" == "1" ]]; then > echo "-lpython${PYTHON_ABI}"; > else > echo "${prefix}usr/$(get_libdir)/libpython${PYTHON_ABI}$(get_libname)"; > fi; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > die "${FUNCNAME}(): Jython does not have shared library"; > fi; > fi >} >python_get_sitedir () >{ > _python_check_python_pkg_setup_execution; > local final_ABI="0" options=(); > while (($#)); do > case "$1" in > -b | --base-path) > options+=("$1") > ;; > -f | --final-ABI) > final_ABI="1"; > options+=("$1") > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > else > if _python_package_supporting_installation_for_multiple_python_abis && ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > fi; > echo "$(python_get_libdir "${options[@]}")/site-packages" >} >python_get_version () >{ > _python_check_python_pkg_setup_execution; > local final_ABI="0" full="0" major="0" minor="0" micro="0" python_command; > while (($#)); do > case "$1" in > -f | --final-ABI) > final_ABI="1" > ;; > --full) > full="1" > ;; > --major) > major="1" > ;; > --minor) > minor="1" > ;; > --micro) > micro="1" > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > die "${FUNCNAME}(): Invalid usage" > ;; > esac; > shift; > done; > if [[ "$((${full} + ${major} + ${minor} + ${micro}))" -gt 1 ]]; then > die "${FUNCNAME}(): '--full', '--major', '--minor' or '--micro' options cannot be specified simultaneously"; > fi; > if [[ "${full}" == "1" ]]; then > python_command="from sys import version_info; print('.'.join(str(x) for x in version_info[:3]))"; > else > if [[ "${major}" == "1" ]]; then > python_command="from sys import version_info; print(version_info[0])"; > else > if [[ "${minor}" == "1" ]]; then > python_command="from sys import version_info; print(version_info[1])"; > else > if [[ "${micro}" == "1" ]]; then > python_command="from sys import version_info; print(version_info[2])"; > else > if [[ -n "${PYTHON_ABI}" && "${final_ABI}" == "0" ]]; then > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "CPython" ]]; then > echo "${PYTHON_ABI}"; > else > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" == "Jython" ]]; then > echo "${PYTHON_ABI%-jython}"; > fi; > fi; > return; > fi; > python_command="from sys import version_info; print('.'.join(str(x) for x in version_info[:2]))"; > fi; > fi; > fi; > fi; > if [[ "${final_ABI}" == "1" ]]; then > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--final-ABI' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > "$(PYTHON -f)" -c "${python_command}"; > else > if _python_package_supporting_installation_for_multiple_python_abis && ! _python_abi-specific_local_scope; then > die "${FUNCNAME}() should be used in ABI-specific local scope"; > fi; > "$(PYTHON ${PYTHON_ABI})" -c "${python_command}"; > fi >} >python_merge_intermediate_installation_images () >{ > _python_check_python_pkg_setup_execution; > _python_initialize_prefix_variables; > local b file files=() intermediate_installation_images_directory PYTHON_ABI quiet="0" regex shebang version_executable wrapper_scripts=() wrapper_scripts_set=(); > [[ "${EBUILD_PHASE}" != "install" ]] && die "${FUNCNAME}() can be used only in src_install() phase"; > while (($#)); do > case "$1" in > -q | --quiet) > quiet="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "$#" -ne 1 ]]; then > die "${FUNCNAME}() requires 1 argument"; > fi; > intermediate_installation_images_directory="$1"; > if [[ ! -d "${intermediate_installation_images_directory}" ]]; then > die "${FUNCNAME}(): Intermediate installation images directory '${intermediate_installation_images_directory}' does not exist"; > fi; > _python_calculate_PYTHON_ABIS; > if [[ "$(PYTHON -f --ABI)" == 3.* ]]; then > b="b"; > fi; > while read -d '' -r file; do > files+=("${file}"); > done < <("$(PYTHON -f)" -c "import os >import sys > >if hasattr(sys.stdout, 'buffer'): > # Python 3 > stdout = sys.stdout.buffer >else: > # Python 2 > stdout = sys.stdout > >files_set = set() > >os.chdir(${b}'${intermediate_installation_images_directory}') > >for PYTHON_ABI in ${b}'${PYTHON_ABIS}'.split(): > for root, dirs, files in os.walk(PYTHON_ABI + ${b}'${EPREFIX}'): > root = root[len(PYTHON_ABI + ${b}'${EPREFIX}')+1:] > files_set.update(root + ${b}'/' + file for file in files) > >for file in sorted(files_set): > stdout.write(file) > stdout.write(${b}'\x00')" || die "${FUNCNAME}(): Failure of extraction of files in intermediate installation images"); > for PYTHON_ABI in ${PYTHON_ABIS}; > do > if [[ ! -d "${intermediate_installation_images_directory}/${PYTHON_ABI}" ]]; then > die "${FUNCNAME}(): Intermediate installation image for Python ABI '${PYTHON_ABI}' does not exist"; > fi; > pushd "${intermediate_installation_images_directory}/${PYTHON_ABI}${EPREFIX}" > /dev/null || die "pushd failed"; > for file in "${files[@]}"; > do > version_executable="0"; > for regex in "/usr/bin/.*" "/usr/sbin/.*" "${PYTHON_VERSIONED_SCRIPTS[@]}"; > do > if [[ "/${file}" =~ ^${regex}$ ]]; then > version_executable="1"; > break; > fi; > done; > for regex in "${PYTHON_VERSIONED_EXECUTABLES[@]}"; > do > if [[ "/${file}" =~ ^${regex}$ ]]; then > version_executable="2"; > break; > fi; > done; > if [[ "${version_executable}" != "0" ]]; then > for regex in "${PYTHON_NONVERSIONED_EXECUTABLES[@]}"; > do > if [[ "/${file}" =~ ^${regex}$ ]]; then > version_executable="0"; > break; > fi; > done; > fi; > [[ "${version_executable}" == "0" || ! -x "${file}" ]] && continue; > shebang="$(head -n1 "${file}")" || die "Extraction of shebang from '${file}' failed"; > if [[ "${version_executable}" == "2" ]]; then > wrapper_scripts+=("${ED}${file}"); > else > if [[ "${version_executable}" == "1" ]]; then > if [[ "${shebang}" =~ ${_PYTHON_SHEBANG_BASE_PART_REGEX}([[:digit:]]+(\.[[:digit:]]+)?)?($|[[:space:]]+) ]]; then > wrapper_scripts+=("${ED}${file}"); > else > version_executable="0"; > fi; > fi; > fi; > [[ "${version_executable}" == "0" ]] && continue; > if [[ -e "${file}-${PYTHON_ABI}" ]]; then > die "${FUNCNAME}(): '${EPREFIX}/${file}-${PYTHON_ABI}' already exists"; > fi; > mv "${file}" "${file}-${PYTHON_ABI}" || die "Renaming of '${file}' failed"; > if [[ "${shebang}" =~ ${_PYTHON_SHEBANG_BASE_PART_REGEX}[[:digit:]]*($|[[:space:]]+) ]]; then > python_convert_shebangs $([[ "${quiet}" == "1" ]] && echo --quiet) "${PYTHON_ABI}" "${file}-${PYTHON_ABI}"; > fi; > done; > popd > /dev/null || die "popd failed"; > cp -fr --preserve=all "${intermediate_installation_images_directory}/${PYTHON_ABI}/"* "${D}" || die "Merging of intermediate installation image for Python ABI '${PYTHON_ABI} into installation image failed"; > done; > rm -fr "${intermediate_installation_images_directory}"; > if [[ "${#wrapper_scripts[@]}" -ge 1 ]]; then > rm -f "${T}/python_wrapper_scripts"; > for file in "${wrapper_scripts[@]}"; > do > echo -n "${file}" >> "${T}/python_wrapper_scripts"; > echo -en "\x00" >> "${T}/python_wrapper_scripts"; > done; > while read -d '' -r file; do > wrapper_scripts_set+=("${file}"); > done < <("$(PYTHON -f)" -c "import sys > >if hasattr(sys.stdout, 'buffer'): > # Python 3 > stdout = sys.stdout.buffer >else: > # Python 2 > stdout = sys.stdout > >files = set(open('${T}/python_wrapper_scripts', 'rb').read().rstrip(${b}'\x00').split(${b}'\x00')) > >for file in sorted(files): > stdout.write(file) > stdout.write(${b}'\x00')" || die "${FUNCNAME}(): Failure of extraction of set of wrapper scripts"); > python_generate_wrapper_scripts $([[ "${quiet}" == "1" ]] && echo --quiet) "${wrapper_scripts_set[@]}"; > fi >} >python_mod_cleanup () >{ > _python_check_python_pkg_setup_execution; > _python_initialize_prefix_variables; > local allow_evaluated_non_sitedir_paths="0" dir iterated_PYTHON_ABIS PYTHON_ABI="${PYTHON_ABI}" root search_paths=() sitedir; > [[ "${EBUILD_PHASE}" != "postrm" ]] && die "${FUNCNAME}() can be used only in pkg_postrm() phase"; > if _python_package_supporting_installation_for_multiple_python_abis; then > if has "${EAPI:-0}" 0 1 2 3 && [[ -z "${PYTHON_ABIS}" ]]; then > die "${FUNCNAME}(): python_pkg_setup() or python_execute_function() not called"; > fi; > iterated_PYTHON_ABIS="${PYTHON_ABIS}"; > else > if has "${EAPI:-0}" 0 1 2 3; then > iterated_PYTHON_ABIS="${PYTHON_ABI:-$(PYTHON --ABI)}"; > else > iterated_PYTHON_ABIS="${PYTHON_ABI}"; > fi; > fi; > root="${EROOT%/}"; > while (($#)); do > case "$1" in > --allow-evaluated-non-sitedir-paths) > allow_evaluated_non_sitedir_paths="1" > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "${allow_evaluated_non_sitedir_paths}" == "1" ]] && ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--allow-evaluated-non-sitedir-paths' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing files or directories"; > fi; > if ! has "${EAPI:-0}" 0 1 2 || _python_package_supporting_installation_for_multiple_python_abis || _python_implementation || [[ "${CATEGORY}/${PN}" == "sys-apps/portage" ]]; then > while (($#)); do > if [[ "$1" =~ ^($|(\.|\.\.|/)($|/)) ]]; then > die "${FUNCNAME}(): Invalid argument '$1'"; > else > if ! _python_implementation && [[ "$1" =~ ^/usr/lib(32|64)?/python[[:digit:]]+\.[[:digit:]]+ ]]; then > die "${FUNCNAME}(): Paths of directories / files in site-packages directories must be relative to site-packages directories"; > else > if [[ "$1" =~ ^/ ]]; then > if _python_package_supporting_installation_for_multiple_python_abis; then > if [[ "${allow_evaluated_non_sitedir_paths}" != "1" ]]; then > die "${FUNCNAME}(): Absolute paths cannot be used in ebuilds of packages supporting installation for multiple Python ABIs"; > fi; > if [[ "$1" != *\$* ]]; then > die "${FUNCNAME}(): '$1' has invalid syntax"; > fi; > for PYTHON_ABI in ${iterated_PYTHON_ABIS}; > do > eval "search_paths+=(\"\${root}$1\")"; > done; > else > search_paths+=("${root}$1"); > fi; > else > for PYTHON_ABI in ${iterated_PYTHON_ABIS}; > do > search_paths+=("${root}$(python_get_sitedir)/$1"); > done; > fi; > fi; > fi; > shift; > done; > else > search_paths=("${@#/}"); > search_paths=("${search_paths[@]/#/${root}/}"); > fi; > _python_clean_compiled_modules "${search_paths[@]}" >} >python_mod_compile () >{ > eerror "Use python_mod_optimize() instead of ${FUNCNAME}()."; > die "${FUNCNAME}() is banned" >} >python_mod_exists () >{ > eerror "Use USE dependencies and/or has_version() instead of ${FUNCNAME}()."; > die "${FUNCNAME}() is banned" >} >python_mod_optimize () >{ > _python_check_python_pkg_setup_execution; > _python_initialize_prefix_variables; > [[ "${EBUILD_PHASE}" != "postinst" ]] && die "${FUNCNAME}() can be used only in pkg_postinst() phase"; > if ! has "${EAPI:-0}" 0 1 2 || _python_package_supporting_installation_for_multiple_python_abis || _python_implementation || [[ "${CATEGORY}/${PN}" == "sys-apps/portage" ]]; then > local allow_evaluated_non_sitedir_paths="0" dir dirs=() evaluated_dirs=() evaluated_files=() file files=() iterated_PYTHON_ABIS options=() other_dirs=() other_files=() previous_PYTHON_ABI="${PYTHON_ABI}" return_code root site_packages_dirs=() site_packages_files=(); > if _python_package_supporting_installation_for_multiple_python_abis; then > if has "${EAPI:-0}" 0 1 2 3 && [[ -z "${PYTHON_ABIS}" ]]; then > die "${FUNCNAME}(): python_pkg_setup() or python_execute_function() not called"; > fi; > iterated_PYTHON_ABIS="${PYTHON_ABIS}"; > else > if has "${EAPI:-0}" 0 1 2 3; then > iterated_PYTHON_ABIS="${PYTHON_ABI:=$(PYTHON --ABI)}"; > else > iterated_PYTHON_ABIS="${PYTHON_ABI}"; > fi; > fi; > root="${EROOT%/}"; > while (($#)); do > case "$1" in > --allow-evaluated-non-sitedir-paths) > allow_evaluated_non_sitedir_paths="1" > ;; > -l | -f | -q) > options+=("$1") > ;; > -d | -x) > options+=("$1" "$2"); > shift > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "${allow_evaluated_non_sitedir_paths}" == "1" ]] && ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}(): '--allow-evaluated-non-sitedir-paths' option cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing files or directories"; > fi; > while (($#)); do > if [[ "$1" =~ ^($|(\.|\.\.|/)($|/)) ]]; then > die "${FUNCNAME}(): Invalid argument '$1'"; > else > if ! _python_implementation && [[ "$1" =~ ^/usr/lib(32|64)?/python[[:digit:]]+\.[[:digit:]]+ ]]; then > die "${FUNCNAME}(): Paths of directories / files in site-packages directories must be relative to site-packages directories"; > else > if [[ "$1" =~ ^/ ]]; then > if _python_package_supporting_installation_for_multiple_python_abis; then > if [[ "${allow_evaluated_non_sitedir_paths}" != "1" ]]; then > die "${FUNCNAME}(): Absolute paths cannot be used in ebuilds of packages supporting installation for multiple Python ABIs"; > fi; > if [[ "$1" != *\$* ]]; then > die "${FUNCNAME}(): '$1' has invalid syntax"; > fi; > if [[ "$1" == *.py ]]; then > evaluated_files+=("$1"); > else > evaluated_dirs+=("$1"); > fi; > else > if [[ -d "${root}$1" ]]; then > other_dirs+=("${root}$1"); > else > if [[ -f "${root}$1" ]]; then > other_files+=("${root}$1"); > else > if [[ -e "${root}$1" ]]; then > eerror "${FUNCNAME}(): '${root}$1' is not a regular file or a directory"; > else > eerror "${FUNCNAME}(): '${root}$1' does not exist"; > fi; > fi; > fi; > fi; > else > for PYTHON_ABI in ${iterated_PYTHON_ABIS}; > do > if [[ -d "${root}$(python_get_sitedir)/$1" ]]; then > site_packages_dirs+=("$1"); > break; > else > if [[ -f "${root}$(python_get_sitedir)/$1" ]]; then > site_packages_files+=("$1"); > break; > else > if [[ -e "${root}$(python_get_sitedir)/$1" ]]; then > eerror "${FUNCNAME}(): '$1' is not a regular file or a directory"; > else > eerror "${FUNCNAME}(): '$1' does not exist"; > fi; > fi; > fi; > done; > fi; > fi; > fi; > shift; > done; > options+=("-q"); > for PYTHON_ABI in ${iterated_PYTHON_ABIS}; > do > if ((${#site_packages_dirs[@]})) || ((${#site_packages_files[@]})) || ((${#evaluated_dirs[@]})) || ((${#evaluated_files[@]})); then > return_code="0"; > ebegin "Compilation and optimization of Python modules for $(python_get_implementation) $(python_get_version)"; > if ((${#site_packages_dirs[@]})) || ((${#evaluated_dirs[@]})); then > for dir in "${site_packages_dirs[@]}"; > do > dirs+=("${root}$(python_get_sitedir)/${dir}"); > done; > for dir in "${evaluated_dirs[@]}"; > do > eval "dirs+=(\"\${root}${dir}\")"; > done; > "$(PYTHON)" "${root}$(python_get_libdir)/compileall.py" "${options[@]}" "${dirs[@]}" || return_code="1"; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" != "Jython" ]]; then > "$(PYTHON)" -O "${root}$(python_get_libdir)/compileall.py" "${options[@]}" "${dirs[@]}" &>/dev/null || return_code="1"; > fi; > _python_clean_compiled_modules "${dirs[@]}"; > fi; > if ((${#site_packages_files[@]})) || ((${#evaluated_files[@]})); then > for file in "${site_packages_files[@]}"; > do > files+=("${root}$(python_get_sitedir)/${file}"); > done; > for file in "${evaluated_files[@]}"; > do > eval "files+=(\"\${root}${file}\")"; > done; > "$(PYTHON)" "${root}$(python_get_libdir)/py_compile.py" "${files[@]}" || return_code="1"; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" != "Jython" ]]; then > "$(PYTHON)" -O "${root}$(python_get_libdir)/py_compile.py" "${files[@]}" &>/dev/null || return_code="1"; > fi; > _python_clean_compiled_modules "${files[@]}"; > fi; > eend "${return_code}"; > fi; > unset dirs files; > done; > if _python_package_supporting_installation_for_multiple_python_abis; then > if [[ -n "${previous_PYTHON_ABI}" ]]; then > PYTHON_ABI="${previous_PYTHON_ABI}"; > else > unset PYTHON_ABI; > fi; > fi; > if ((${#other_dirs[@]})) || ((${#other_files[@]})); then > return_code="0"; > ebegin "Compilation and optimization of Python modules placed outside of site-packages directories for $(python_get_implementation) $(python_get_version)"; > if ((${#other_dirs[@]})); then > "$(PYTHON ${PYTHON_ABI})" "${root}$(python_get_libdir)/compileall.py" "${options[@]}" "${other_dirs[@]}" || return_code="1"; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" != "Jython" ]]; then > "$(PYTHON ${PYTHON_ABI})" -O "${root}$(python_get_libdir)/compileall.py" "${options[@]}" "${other_dirs[@]}" &>/dev/null || return_code="1"; > fi; > _python_clean_compiled_modules "${other_dirs[@]}"; > fi; > if ((${#other_files[@]})); then > "$(PYTHON ${PYTHON_ABI})" "${root}$(python_get_libdir)/py_compile.py" "${other_files[@]}" || return_code="1"; > if [[ "$(_python_get_implementation "${PYTHON_ABI}")" != "Jython" ]]; then > "$(PYTHON ${PYTHON_ABI})" -O "${root}$(python_get_libdir)/py_compile.py" "${other_files[@]}" &>/dev/null || return_code="1"; > fi; > _python_clean_compiled_modules "${other_files[@]}"; > fi; > eend "${return_code}"; > fi; > else > local myroot mydirs=() myfiles=() myopts=() return_code="0"; > myroot="${EROOT%/}"; > while (($#)); do > case "$1" in > -l | -f | -q) > myopts+=("$1") > ;; > -d | -x) > myopts+=("$1" "$2"); > shift > ;; > --) > shift; > break > ;; > -*) > die "${FUNCNAME}(): Unrecognized option '$1'" > ;; > *) > break > ;; > esac; > shift; > done; > if [[ "$#" -eq 0 ]]; then > die "${FUNCNAME}(): Missing files or directories"; > fi; > while (($#)); do > if [[ "$1" =~ ^($|(\.|\.\.|/)($|/)) ]]; then > die "${FUNCNAME}(): Invalid argument '$1'"; > else > if [[ -d "${myroot}/${1#/}" ]]; then > mydirs+=("${myroot}/${1#/}"); > else > if [[ -f "${myroot}/${1#/}" ]]; then > myfiles+=("${myroot}/${1#/}"); > else > if [[ -e "${myroot}/${1#/}" ]]; then > eerror "${FUNCNAME}(): ${myroot}/${1#/} is not a regular file or directory"; > else > eerror "${FUNCNAME}(): ${myroot}/${1#/} does not exist"; > fi; > fi; > fi; > fi; > shift; > done; > myopts+=(-q); > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > ebegin "Compilation and optimization of Python modules for $(python_get_implementation) $(python_get_version)"; > if ((${#mydirs[@]})); then > "$(PYTHON ${PYTHON_ABI})" "${myroot}$(python_get_libdir)/compileall.py" "${myopts[@]}" "${mydirs[@]}" || return_code="1"; > "$(PYTHON ${PYTHON_ABI})" -O "${myroot}$(python_get_libdir)/compileall.py" "${myopts[@]}" "${mydirs[@]}" &>/dev/null || return_code="1"; > _python_clean_compiled_modules "${mydirs[@]}"; > fi; > if ((${#myfiles[@]})); then > "$(PYTHON ${PYTHON_ABI})" "${myroot}$(python_get_libdir)/py_compile.py" "${myfiles[@]}" || return_code="1"; > "$(PYTHON ${PYTHON_ABI})" -O "${myroot}$(python_get_libdir)/py_compile.py" "${myfiles[@]}" &>/dev/null || return_code="1"; > _python_clean_compiled_modules "${myfiles[@]}"; > fi; > eend "${return_code}"; > fi >} >python_need_rebuild () >{ > _python_check_python_pkg_setup_execution; > if _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages supporting installation for multiple Python ABIs"; > fi; > if [[ "$#" -ne 0 ]]; then > die "${FUNCNAME}() does not accept arguments"; > fi; > export PYTHON_NEED_REBUILD="$(PYTHON --ABI)" >} >python_pkg_setup () >{ > [[ "${EBUILD_PHASE}" != "setup" ]] && die "${FUNCNAME}() can be used only in pkg_setup() phase"; > if [[ "$#" -ne 0 ]]; then > die "${FUNCNAME}() does not accept arguments"; > fi; > export JYTHON_SYSTEM_CACHEDIR="1"; > addwrite "${EPREFIX}/var/cache/jython"; > if _python_package_supporting_installation_for_multiple_python_abis; then > _python_calculate_PYTHON_ABIS; > export EPYTHON="$(PYTHON -f)"; > else > PYTHON_ABI="${PYTHON_ABI:-$(PYTHON --ABI)}"; > fi; > if ! has "${EAPI:-0}" 0 1 && [[ -n "${PYTHON_USE_WITH}" || -n "${PYTHON_USE_WITH_OR}" ]]; then > if [[ -n "${PYTHON_USE_WITH_OPT}" ]]; then > if [[ "${PYTHON_USE_WITH_OPT}" == !* ]]; then > use ${PYTHON_USE_WITH_OPT#!} && return; > else > use !${PYTHON_USE_WITH_OPT} && return; > fi; > fi; > function python_pkg_setup_check_USE_flags () > { > local python_atom USE_flag; > python_atom="$(python_get_implementational_package)"; > for USE_flag in ${PYTHON_USE_WITH}; > do > if ! has_version "${python_atom}[${USE_flag}]"; then > eerror "Please rebuild ${python_atom} with the following USE flags enabled: ${PYTHON_USE_WITH}"; > die "Please rebuild ${python_atom} with the following USE flags enabled: ${PYTHON_USE_WITH}"; > fi; > done; > for USE_flag in ${PYTHON_USE_WITH_OR}; > do > if has_version "${python_atom}[${USE_flag}]"; then > return; > fi; > done; > if [[ -n ${PYTHON_USE_WITH_OR} ]]; then > eerror "Please rebuild ${python_atom} with at least one of the following USE flags enabled: ${PYTHON_USE_WITH_OR}"; > die "Please rebuild ${python_atom} with at least one of the following USE flags enabled: ${PYTHON_USE_WITH_OR}"; > fi > }; > if _python_package_supporting_installation_for_multiple_python_abis; then > PYTHON_SKIP_SANITY_CHECKS="1" python_execute_function -q python_pkg_setup_check_USE_flags; > else > python_pkg_setup_check_USE_flags; > fi; > unset -f python_pkg_setup_check_USE_flags; > fi; > PYTHON_PKG_SETUP_EXECUTED="1" >} >python_set_active_version () >{ > [[ "${EBUILD_PHASE}" != "setup" ]] && die "${FUNCNAME}() can be used only in pkg_setup() phase"; > if _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages supporting installation for multiple Python ABIs"; > fi; > if [[ "$#" -ne 1 ]]; then > die "${FUNCNAME}() requires 1 argument"; > fi; > _python_initial_sanity_checks; > if [[ -z "${PYTHON_ABI}" ]]; then > if [[ -n "$(_python_get_implementation --ignore-invalid "$1")" ]]; then > PYTHON_ABI="$1"; > if ! _python_implementation && ! has_version "$(python_get_implementational_package)"; then > die "${FUNCNAME}(): '$(python_get_implementational_package)' is not installed"; > fi; > export EPYTHON="$(PYTHON "$1")"; > else > if [[ "$1" == "2" ]]; then > if ! _python_implementation && ! has_version "=dev-lang/python-2*"; then > die "${FUNCNAME}(): '=dev-lang/python-2*' is not installed"; > fi; > export EPYTHON="$(PYTHON -2)"; > PYTHON_ABI="${EPYTHON#python}"; > PYTHON_ABI="${PYTHON_ABI%%-*}"; > else > if [[ "$1" == "3" ]]; then > if ! _python_implementation && ! has_version "=dev-lang/python-3*"; then > die "${FUNCNAME}(): '=dev-lang/python-3*' is not installed"; > fi; > export EPYTHON="$(PYTHON -3)"; > PYTHON_ABI="${EPYTHON#python}"; > PYTHON_ABI="${PYTHON_ABI%%-*}"; > else > die "${FUNCNAME}(): Unrecognized argument '$1'"; > fi; > fi; > fi; > fi; > _python_final_sanity_checks; > PYTHON_REQUESTED_ACTIVE_VERSION="$1" >} >python_src_compile () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > python_execute_function -d -s -- "$@" >} >python_src_configure () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > python_execute_function -d -s -- "$@" >} >python_src_install () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > python_execute_function -d -s -- "$@" >} >python_src_prepare () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > if [[ "$#" -ne 0 ]]; then > die "${FUNCNAME}() does not accept arguments"; > fi; > python_copy_sources >} >python_src_test () >{ > _python_check_python_pkg_setup_execution; > if ! _python_package_supporting_installation_for_multiple_python_abis; then > die "${FUNCNAME}() cannot be used in ebuilds of packages not supporting installation for multiple Python ABIs"; > fi; > python_execute_function -d -s -- "$@" >} >python_tkinter_exists () >{ > eerror "Use PYTHON_USE_WITH=\"xml\" and python_pkg_setup() instead of ${FUNCNAME}()."; > die "${FUNCNAME}() is banned" >} >python_version () >{ > eerror "Use PYTHON() instead of python variable. Use python_get_*() instead of PYVER* variables."; > die "${FUNCNAME}() is banned" >} >raw-ldflags () >{ > local x input="$@"; > [[ -z ${input} ]] && input=${LDFLAGS}; > set --; > for x in ${input}; > do > x=${x#-Wl,}; > set -- "$@" ${x//,/ }; > done; > echo "$@" >} >register_success_hook () >{ > local x; > for x in $*; > do > hasq $x $EBUILD_SUCCESS_HOOKS || export EBUILD_SUCCESS_HOOKS="$EBUILD_SUCCESS_HOOKS $x"; > done >} >replace-cpu-flags () >{ > local newcpu="$#"; > newcpu="${!newcpu}"; > while [ $# -gt 1 ]; do > replace-flags "-march=${1}" "-march=${newcpu}"; > replace-flags "-mcpu=${1}" "-mcpu=${newcpu}"; > replace-flags "-mtune=${1}" "-mtune=${newcpu}"; > shift; > done; > return 0 >} >replace-flags () >{ > [[ $# != 2 ]] && echo && eerror "Usage: replace-flags <old flag> <new flag>" && die "replace-flags takes 2 arguments, not $#"; > local f fset; > declare -a new_CFLAGS new_CXXFLAGS new_FFLAGS new_FCFLAGS; > for fset in CFLAGS CXXFLAGS FFLAGS FCFLAGS; > do > for f in ${!fset}; > do > [[ ${f} == ${1} ]] && f=${2}; > eval new_${fset}\[\${\#new_${fset}\[@]}]=\${f}; > done; > eval export ${fset}=\${new_${fset}\[*]}; > done; > return 0 >} >replace-sparc64-flags () >{ > local SPARC64_CPUS="ultrasparc3 ultrasparc v9"; > if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}"; > done; > else > for x in ${SPARC64_CPUS}; > do > CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}"; > done; > fi; > export CFLAGS CXXFLAGS >} >replace_all_version_separators () >{ > eshopts_push -s extglob; > local c; > c=($(get_all_version_components "${2:-${PV}}" )); > c="${c[@]//[-._]/$1}"; > echo ${c// }; > eshopts_pop >} >replace_version_separator () >{ > eshopts_push -s extglob; > local w i c found=0 v="${3:-${PV}}"; > w=${1:-1}; > c=($(get_all_version_components ${v} )); > if [[ "${w//[[:digit:]]/}" == "${w}" ]]; then > for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 )) > do > if [[ "${c[${i}]}" == "${w}" ]]; then > c[${i}]="${2}"; > break; > fi; > done; > else > for ((i = 0 ; i < ${#c[@]} ; i = $i + 1 )) > do > if [[ -n "${c[${i}]//[^-._]}" ]]; then > found=$(($found + 1)); > if [[ "$found" == "${w}" ]]; then > c[${i}]="${2}"; > break; > fi; > fi; > done; > fi; > c=${c[@]}; > echo ${c// }; > eshopts_pop >} >save_library_dependencies () >{ > local depsfile="${T}/${PN}:${SLOT}"; > ebegin "Saving library dependencies in ${depsfile##*/}"; > echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || die "Failed to save the library dependencies."; > eend $? >} >seq () >{ > local p=$(type -P seq); > if [[ -n ${p} ]]; then > "${p}" "$@"; > return $?; > fi; > case $# in > 1) > min=1 max=$1 step=1 > ;; > 2) > min=$1 max=$2 step=1 > ;; > 3) > min=$1 max=$3 step=$2 > ;; > *) > die "seq called with wrong number of arguments" > ;; > esac; > p=$(type -P jot); > if [[ -n ${p} ]]; then > local reps; > if [[ ${step} != 0 ]]; then > reps=$(( (max - min) / step + 1 )); > else > reps=0; > fi; > jot $reps $min $max $step; > return $?; > fi; > while :; do > [[ $max < $min && $step > 0 ]] && break; > [[ $min < $max && $step < 0 ]] && break; > echo $min; > : $(( min += step )); > done; > return 0 >} >setup-allowed-flags () >{ > if [[ -z ${ALLOWED_FLAGS} ]]; then > export ALLOWED_FLAGS="-pipe"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -mcpu -march -mtune"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking -fno-strict-overflow"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w"; > fi; > ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all -fno-strict-aliasing -fno-bounds-checking -fstrict-overflow -fno-omit-frame-pointer"; > ALLOWED_FLAGS="${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 -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt -m*-toc -D* -U*"; > ALLOWED_FLAGS="${ALLOWED_FLAGS} -mno-fma4 -mno-movbe -mno-xop -mno-lwp"; > export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks"; > return 0 >} >slot_is_at_least () >{ > [[ "${2}" > "${1}" || "${2}" = "${1}" ]] >} >src_compile () >{ > make || die "Build failed" >} >src_configure () >{ > use kde && export KDE4DIR="${KDEDIR}"; > use kde && export QT4LIB="/usr/$(get_libdir)/qt4"; > export JOBS=$(echo "${MAKEOPTS}" | sed -e "s/.*-j\([0-9]\+\).*/\1/"); > filter-flags "-funroll-loops"; > filter-flags "-fprefetch-loop-arrays"; > filter-flags "-fno-default-inline"; > filter-flags "-ftracer"; > filter-flags "-fforce-addr"; > filter-flags "-O[s2-9]"; > if [[ $(gcc-major-version) -lt 4 ]]; then > filter-flags "-fstack-protector"; > filter-flags "-fstack-protector-all"; > replace-flags "-fomit-frame-pointer" "-momit-leaf-frame-pointer"; > fi; > use opengl && append-flags "-DGL_GLEXT_PROTOTYPES"; > export ARCH_FLAGS="${CXXFLAGS}"; > use debug || export LINKFLAGSOPTIMIZE="${LDFLAGS}"; > local GTKFLAG="--disable-gtk --disable-cairo --without-system-cairo"; > { > use gtk || use gnome > } && GTKFLAG="--enable-gtk --enable-cairo --with-system-cairo"; > cd "${S}"; > ./configure --with-distro="Gentoo" --with-arch="${ARCH}" --with-srcdir="${DISTDIR}" --with-lang="${LINGUAS_OOO}" --with-num-cpus="${JOBS}" --without-binsuffix --with-installed-ooo-dirname="libreoffice" --with-tag="${MST}" --with-drink="True Blood" --without-git --with-split ${GTKFLAG} --disable-mono --disable-kde $(use_enable kde kde4) $(use_enable !debug strip) $(use_enable odk) $(use_enable pam) $(use_with java) $(use_with templates sun-templates) --disable-access --disable-post-install-scripts --enable-extensions --without-system-libwpd --without-system-libwpg --mandir=/usr/share/man --libdir=/usr/$(get_libdir) || die "Configuration failed!" >} >src_install () >{ > export PYTHONPATH=""; > einfo "Preparing Installation"; > make DESTDIR="${D}" install || die "Installation failed!"; > chown -RP root:0 "${D}"; > if use java; then > java-pkg_regjar "${D}"/usr/$(get_libdir)/${PN}/${BASIS}/program/classes/*.jar; > java-pkg_regjar "${D}"/usr/$(get_libdir)/${PN}/ure/share/java/*.jar; > fi; > dobashcompletion "${D}"/etc/bash_completion.d/ooffice.sh ooffice; > rm -rf "${D}"/etc/bash_completion.d/ || die "rm failed" >} >src_prepare () >{ > cd "${S}"; > epatch "${FILESDIR}/gentoo-${PV}.diff"; > epatch "${FILESDIR}/gentoo-pythonpath.diff"; > epatch "${FILESDIR}/env_log.diff"; > epatch "${FILESDIR}/fix-ooo-collision.diff"; > epatch "${FILESDIR}/scrap-pixmap-links.diff"; > epatch "${FILESDIR}/enable-startup-notification.diff"; > cp -f "${FILESDIR}/sdext-presenter.diff" "${S}/patches/hotfixes" || die; > if use java; then > echo "--with-ant-home=${ANT_HOME}" >> ${CONFFILE}; > echo "--with-jdk-home=$(java-config --jdk-home 2>/dev/null)" >> ${CONFFILE}; > echo "--with-java-target-version=$(java-pkg_get-target)" >> ${CONFFILE}; > echo "--with-jvm-path=/usr/$(get_libdir)/" >> ${CONFFILE}; > echo "--with-system-beanshell" >> ${CONFFILE}; > echo "--with-system-lucene" >> ${CONFFILE}; > echo "--with-system-rhino" >> ${CONFFILE}; > echo "--with-beanshell-jar=$(java-pkg_getjar bsh bsh.jar)" >> ${CONFFILE}; > echo "--with-lucene-core-jar=$(java-pkg_getjar lucene-2.3 lucene-core.jar)" >> ${CONFFILE}; > echo "--with-lucene-analyzers-jar=$(java-pkg_getjar lucene-analyzers-2.3 lucene-analyzers.jar)" >> ${CONFFILE}; > echo "--with-rhino-jar=$(java-pkg_getjar rhino-1.5 js.jar)" >> ${CONFFILE}; > fi; > echo $(use_enable nsplugin mozilla) >> ${CONFFILE}; > echo $(use_with nsplugin system-mozilla libxul) >> ${CONFFILE}; > echo $(use_enable binfilter) >> ${CONFFILE}; > echo $(use_enable cups) >> ${CONFFILE}; > echo $(use_enable dbus) >> ${CONFFILE}; > echo $(use_enable eds evolution2) >> ${CONFFILE}; > echo $(use_enable gnome gconf) >> ${CONFFILE}; > echo $(use_enable gnome gio) >> ${CONFFILE}; > echo "--disable-gnome-vfs" >> ${CONFFILE}; > echo $(use_enable gnome lockdown) >> ${CONFFILE}; > echo $(use_enable gstreamer) >> ${CONFFILE}; > echo $(use_enable gtk systray) >> ${CONFFILE}; > echo $(use_enable ldap) >> ${CONFFILE}; > echo $(use_enable opengl) >> ${CONFFILE}; > echo $(use_with ldap openldap) >> ${CONFFILE}; > echo $(use_enable debug crashdump) >> ${CONFFILE}; > echo $(use_enable debug strip-solver) >> ${CONFFILE}; > echo "--with-extension-integration" >> ${CONFFILE}; > echo "--enable-pdfimport" >> ${CONFFILE}; > echo "--enable-minimizer" >> ${CONFFILE}; > echo "--enable-presenter-console" >> ${CONFFILE}; > echo "--enable-presenter-extra-ui" >> ${CONFFILE}; > echo "--enable-presenter-screen" >> ${CONFFILE}; > echo "--disable-graphite" >> ${CONFFILE}; > echo "--with-system-cppunit" >> ${CONFFILE}; > echo "--with-system-openssl" >> ${CONFFILE}; > echo "--with-system-redland" >> ${CONFFILE}; > echo "--without-writer2latex" >> ${CONFFILE}; > echo "--without-junit" >> ${CONFFILE}; > eautoreconf >} >src_test () >{ > _eapi0_src_test "$@" >} >src_unpack () >{ > unpack ${MY_P}.tar.gz >} >strip-flags () >{ > local x y flag NEW_CFLAGS NEW_CXXFLAGS NEW_FFLAGS NEW_FCFLAGS; > setup-allowed-flags; > local NEW_CFLAGS=""; > local NEW_CXXFLAGS=""; > local NEW_FFLAGS=""; > local NEW_FCFLAGS=""; > if has "~$(tc-arch)" ${ACCEPT_KEYWORDS}; then > ALLOWED_FLAGS="${ALLOWED_FLAGS} ${UNSTABLE_FLAGS}"; > fi; > set -f; > for x in ${CFLAGS}; > do > for y in ${ALLOWED_FLAGS}; > do > flag=${x%%=*}; > if [ "${flag%%${y}}" = "" ]; then > NEW_CFLAGS="${NEW_CFLAGS} ${x}"; > break; > fi; > done; > done; > for x in ${CXXFLAGS}; > do > for y in ${ALLOWED_FLAGS}; > do > flag=${x%%=*}; > if [ "${flag%%${y}}" = "" ]; then > NEW_CXXFLAGS="${NEW_CXXFLAGS} ${x}"; > break; > fi; > done; > done; > for x in ${FFLAGS}; > do > for y in ${ALLOWED_FLAGS}; > do > flag=${x%%=*}; > if [ "${flag%%${y}}" = "" ]; then > NEW_FFLAGS="${NEW_FFLAGS} ${x}"; > break; > fi; > done; > done; > for x in ${FCFLAGS}; > do > for y in ${ALLOWED_FLAGS}; > do > flag=${x%%=*}; > if [ "${flag%%${y}}" = "" ]; then > NEW_FCFLAGS="${NEW_FCFLAGS} ${x}"; > break; > fi; > done; > done; > if [ "${CFLAGS/-O}" != "${CFLAGS}" -a "${NEW_CFLAGS/-O}" = "${NEW_CFLAGS}" ]; then > NEW_CFLAGS="${NEW_CFLAGS} -O2"; > fi; > if [ "${CXXFLAGS/-O}" != "${CXXFLAGS}" -a "${NEW_CXXFLAGS/-O}" = "${NEW_CXXFLAGS}" ]; then > NEW_CXXFLAGS="${NEW_CXXFLAGS} -O2"; > fi; > if [ "${FFLAGS/-O}" != "${FFLAGS}" -a "${NEW_FFLAGS/-O}" = "${NEW_FFLAGS}" ]; then > NEW_FFLAGS="${NEW_FFLAGS} -O2"; > fi; > if [ "${FCFLAGS/-O}" != "${FCFLAGS}" -a "${NEW_FCFLAGS/-O}" = "${NEW_FCFLAGS}" ]; then > NEW_FCFLAGS="${NEW_FCFLAGS} -O2"; > fi; > set +f; > export CFLAGS="${NEW_CFLAGS}"; > export CXXFLAGS="${NEW_CXXFLAGS}"; > export FFLAGS="${NEW_FFLAGS}"; > export FCFLAGS="${NEW_FCFLAGS}"; > return 0 >} >strip-linguas () >{ > local ls newls nols; > if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then > local op=$1; > shift; > ls=$(find "$1" -name '*.po' -exec basename {} .po ';'); > shift; > local d f; > for d in "$@"; > do > if [[ ${op} == "-u" ]]; then > newls=${ls}; > else > newls=""; > fi; > for f in $(find "$d" -name '*.po' -exec basename {} .po ';'); > do > if [[ ${op} == "-i" ]]; then > hasq ${f} ${ls} && newls="${newls} ${f}"; > else > hasq ${f} ${ls} || newls="${newls} ${f}"; > fi; > done; > ls=${newls}; > done; > else > ls="$@"; > fi; > nols=""; > newls=""; > for f in ${LINGUAS}; > do > if hasq ${f} ${ls}; then > newls="${newls} ${f}"; > else > nols="${nols} ${f}"; > fi; > done; > [[ -n ${nols} ]] && ewarn "Sorry, but ${PN} does not support the LINGUAS:" ${nols}; > export LINGUAS=${newls:1} >} >strip-unsupported-flags () >{ > export CFLAGS=$(test-flags-CC ${CFLAGS}); > export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS}); > export FFLAGS=$(test-flags-F77 ${FFLAGS}); > export FCFLAGS=$(test-flags-FC ${FCFLAGS}) >} >tc-arch () >{ > tc-ninja_magic_to_arch portage "$@" >} >tc-arch-kernel () >{ > tc-ninja_magic_to_arch kern "$@" >} >tc-endian () >{ > local host=$1; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > host=${host%%-*}; > case ${host} in > alpha*) > echo big > ;; > arm*b*) > echo big > ;; > arm*) > echo little > ;; > cris*) > echo little > ;; > hppa*) > echo big > ;; > i?86*) > echo little > ;; > ia64*) > echo little > ;; > m68*) > echo big > ;; > mips*l*) > echo little > ;; > mips*) > echo big > ;; > powerpc*) > echo big > ;; > s390*) > echo big > ;; > sh*b*) > echo big > ;; > sh*) > echo little > ;; > sparc*) > echo big > ;; > x86_64*) > echo little > ;; > *) > echo wtf > ;; > esac >} >tc-export () >{ > local var; > for var in "$@"; > do > [[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'"; > eval tc-get${var} > /dev/null; > done >} >tc-getAR () >{ > tc-getPROG AR ar "$@" >} >tc-getAS () >{ > tc-getPROG AS as "$@" >} >tc-getBUILD_CC () >{ > local v; > for v in CC_FOR_BUILD BUILD_CC HOSTCC; > do > if [[ -n ${!v} ]]; then > export BUILD_CC=${!v}; > echo "${!v}"; > return 0; > fi; > done; > local search=; > if [[ -n ${CBUILD} ]]; then > search=$(type -p ${CBUILD}-gcc); > search=${search##*/}; > fi; > search=${search:-gcc}; > export BUILD_CC=${search}; > echo "${search}" >} >tc-getCC () >{ > tc-getPROG CC gcc "$@" >} >tc-getCPP () >{ > tc-getPROG CPP cpp "$@" >} >tc-getCXX () >{ > tc-getPROG CXX g++ "$@" >} >tc-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 () >{ > local var=$1; > local prog=$2; > if [[ -n ${!var} ]]; then > echo "${!var}"; > return 0; > fi; > local search=; > [[ -n $3 ]] && search=$(type -p "$3-${prog}"); > [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}"); > [[ -n ${search} ]] && prog=${search##*/}; > export ${var}=${prog}; > echo "${!var}" >} >tc-getRANLIB () >{ > tc-getPROG RANLIB ranlib "$@" >} >tc-getRC () >{ > tc-getPROG RC windres "$@" >} >tc-getSTRIP () >{ > tc-getPROG STRIP strip "$@" >} >tc-has-openmp () >{ > local base="${T}/test-tc-openmp"; > cat > "${base}.c" <<-EOF >#include <omp.h> >int main() { >int nthreads, tid, ret = 0; >#pragma omp parallel private(nthreads, tid) >{ >tid = omp_get_thread_num(); >nthreads = omp_get_num_threads(); ret += tid + nthreads; >} >return ret; >} >EOF > > $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &>/dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-has-tls () >{ > local base="${T}/test-tc-tls"; > cat > "${base}.c" <<-EOF >int foo(int *i) { >static __thread int j = 0; >return *i ? j : *i; >} >EOF > > local flags; > case $1 in > -s) > flags="-S" > ;; > -c) > flags="-c" > ;; > -l) > > ;; > -*) > die "Usage: tc-has-tls [-c|-l] [toolchain prefix]" > ;; > esac; > : ${flags:=-fPIC -shared -Wl,-z,defs}; > [[ $1 == -* ]] && shift; > $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null; > local ret=$?; > rm -f "${base}"*; > return ${ret} >} >tc-is-cross-compiler () >{ > return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]]) >} >tc-is-hardfloat () >{ > [[ ${CTARGET//_/-} == *-hardfloat-* ]] && echo "yes" || echo "no" >} >tc-is-softfloat () >{ > case ${CTARGET} in > bfin* | h8300*) > echo "only" > ;; > *) > [[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no" > ;; > esac >} >tc-is-static-only () >{ > local host=${CTARGET:-${CHOST}}; > return $([[ ${host} == *-mint* ]]) >} >tc-ninja_magic_to_arch () >{ > function ninj () > { > [[ ${type} == "kern" ]] && echo $1 || echo $2 > }; > local type=$1; > local host=$2; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > case ${host} in > alpha*) > echo alpha > ;; > arm*) > echo arm > ;; > avr*) > ninj avr32 avr > ;; > bfin*) > ninj blackfin bfin > ;; > cris*) > echo cris > ;; > hppa*) > ninj parisc hppa > ;; > i?86*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then > echo i386; > else > echo x86; > fi > ;; > ia64*) > echo ia64 > ;; > m68*) > echo m68k > ;; > mips*) > echo mips > ;; > nios2*) > echo nios2 > ;; > nios*) > echo nios > ;; > powerpc*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then > echo powerpc; > else > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then > if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then > echo powerpc; > else > echo ppc; > fi; > else > if [[ ${host} == powerpc64* ]]; then > echo ppc64; > else > if [[ ${PROFILE_ARCH} == "ppc64" ]]; then > ninj ppc64 ppc; > else > echo ppc; > fi; > fi; > fi; > fi > ;; > s390*) > echo s390 > ;; > sh64*) > ninj sh64 sh > ;; > sh*) > echo sh > ;; > sparc64*) > ninj sparc64 sparc > ;; > sparc*) > [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc > ;; > vax*) > echo vax > ;; > x86_64*) > if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then > echo x86; > else > ninj x86_64 amd64; > fi > ;; > *) > echo unknown > ;; > esac >} >test-flag-CC () >{ > test-flag-PROG "CC" "$1" >} >test-flag-CXX () >{ > test-flag-PROG "CXX" "$1" >} >test-flag-F77 () >{ > test-flag-PROG "F77" "$1" >} >test-flag-FC () >{ > test-flag-PROG "FC" "$1" >} >test-flag-PROG () >{ > local comp=$1; > local flags="$2"; > [[ -z ${comp} || -z ${flags} ]] && return 1; > local PROG=$(tc-get${comp}); > ${PROG} ${flags} -S -o /dev/null -xc /dev/null > /dev/null 2>&1 >} >test-flags () >{ > test-flags-CC "$@" >} >test-flags-CC () >{ > test-flags-PROG "CC" "$@" >} >test-flags-CXX () >{ > test-flags-PROG "CXX" "$@" >} >test-flags-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; > x=""; > for x in "$@"; > do > test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}"; > done; > echo "${flags}"; > [[ -n ${flags} ]] >} >test_flag () >{ > ewarn "test_flag: deprecated, please use test-flags()!" 1>&2; > test-flags-CC "$@" >} >test_version_info () >{ > if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then > return 0; > else > return 1; > fi >} >treecopy () >{ > dest=${!#}; > files_count=$#; > while (( $# > 1 )); do > dirstruct=$(dirname "$1"); > mkdir -p "${dest}/${dirstruct}"; > cp -pPR "$1" "${dest}/${dirstruct}"; > shift; > done >} >uclibctoolize () >{ > die "Use elibtoolize" >} >unpack_makeself () >{ > local src_input=${1:-${A}}; > local src=$(find_unpackable_file "${src_input}"); > local skip=$2; > local exe=$3; > [[ -z ${src} ]] && die "Could not locate source for '${src_input}'"; > local shrtsrc=$(basename "${src}"); > echo ">>> Unpacking ${shrtsrc} to ${PWD}"; > if [[ -z ${skip} ]]; then > local ver=$(grep -m1 -a '#.*Makeself' "${src}" | awk '{print $NF}'); > local skip=0; > exe=tail; > case ${ver} in > 1.5.* | 1.6.0-nv) > skip=$(grep -a ^skip= "${src}" | cut -d= -f2) > ;; > 2.0 | 2.0.1) > skip=$(grep -a ^' 'tail "${src}" | awk '{print $2}' | cut -b2-) > ;; > 2.1.1) > skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-); > (( skip++ )) > ;; > 2.1.2) > skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1); > (( skip++ )) > ;; > 2.1.3) > skip=`grep -a ^offset= "${src}" | awk '{print $3}'`; > (( skip++ )) > ;; > 2.1.4 | 2.1.5) > skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1); > skip=$(head -n ${skip} "${src}" | wc -c); > exe="dd" > ;; > *) > eerror "I'm sorry, but I was unable to support the Makeself file."; > eerror "The version I detected was '${ver}'."; > eerror "Please file a bug about the file ${shrtsrc} at"; > eerror "http://bugs.gentoo.org/ so that support can be added."; > die "makeself version '${ver}' not supported" > ;; > esac; > debug-print "Detected Makeself version ${ver} ... using ${skip} as offset"; > fi; > case ${exe} in > tail) > exe="tail -n +${skip} '${src}'" > ;; > dd) > exe="dd ibs=${skip} skip=1 if='${src}'" > ;; > *) > die "makeself cant handle exe '${exe}'" > ;; > esac; > local tmpfile=$(emktemp); > eval ${exe} 2> /dev/null | head -c 512 > "${tmpfile}"; > local filetype=$(file -b "${tmpfile}"); > case ${filetype} in > *tar\ archive*) > eval ${exe} | tar --no-same-owner -xf - > ;; > bzip2*) > eval ${exe} | bzip2 -dc | tar --no-same-owner -xf - > ;; > gzip*) > eval ${exe} | tar --no-same-owner -xzf - > ;; > compress*) > eval ${exe} | gunzip | tar --no-same-owner -xf - > ;; > *) > eerror "Unknown filetype \"${filetype}\" ?"; > false > ;; > esac; > assert "failure unpacking (${filetype}) makeself ${shrtsrc} ('${ver}' +${skip})" >} >unpack_pdv () >{ > local src=$(find_unpackable_file "$1"); > local sizeoff_t=$2; > [[ -z ${src} ]] && die "Could not locate source for '$1'"; > [[ -z ${sizeoff_t} ]] && die "No idea what off_t size was used for this pdv :("; > local shrtsrc=$(basename "${src}"); > echo ">>> Unpacking ${shrtsrc} to ${PWD}"; > local metaskip=$(tail -c ${sizeoff_t} "${src}" | hexdump -e \"%i\"); > local tailskip=$(tail -c $((${sizeoff_t}*2)) "${src}" | head -c ${sizeoff_t} | hexdump -e \"%i\"); > local metafile=$(emktemp); > tail -c +$((${metaskip}+1)) "${src}" > "${metafile}"; > local datafile=$(tail -c +$((${metaskip}+1)) "${src}" | strings | head -n 1); > datafile=$(basename "${datafile}"); > local tmpfile=$(emktemp); > tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c 512 > ${tmpfile}; > local iscompressed=$(file -b "${tmpfile}"); > if [[ ${iscompressed:0:8} == "compress" ]]; then > iscompressed=1; > mv ${tmpfile}{,.Z}; > gunzip ${tmpfile}; > else > iscompressed=0; > fi; > local istar=$(file -b "${tmpfile}"); > if [[ ${istar:0:9} == "POSIX tar" ]]; then > istar=1; > else > istar=0; > fi; > if [ ${iscompressed} -eq 1 ]; then > if [ ${istar} -eq 1 ]; then > tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar -xzf -; > else > tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | gzip -dc > ${datafile}; > fi; > else > if [ ${istar} -eq 1 ]; then > tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) | tar --no-same-owner -xf -; > else > tail -c +$((${tailskip}+1)) ${src} 2> /dev/null | head -c $((${metaskip}-${tailskip})) > ${datafile}; > fi; > fi; > true >} >use_doc () >{ > use doc && echo ${@:-javadoc} >} >validate_desktop_entries () >{ > if [[ -x /usr/bin/desktop-file-validate ]]; then > einfo "Checking desktop entry validity"; > local directories=""; > for d in /usr/share/applications $@; > do > [[ -d ${D}${d} ]] && directories="${directories} ${D}${d}"; > done; > if [[ -n ${directories} ]]; then > for FILE in $(find ${directories} -name "*\.desktop" -not -path '*.hidden*' | sort -u 2>/dev/null); > do > local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | sed -e "s|error: ||" -e "s|${FILE}:|--|g" ); > [[ -n $temp ]] && elog ${temp/--/${FILE/${D}/}:}; > done; > fi; > echo ""; > else > einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo."; > fi >} >version_compare () >{ > eshopts_push -s extglob; > local ver_a=${1} ver_b=${2} parts_a parts_b cur_idx_a=0 cur_idx_b=0; > parts_a=($(get_all_version_components "${ver_a}" )); > parts_b=($(get_all_version_components "${ver_b}" )); > local inf_loop=0; > while true; do > inf_loop=$(( ${inf_loop} + 1 )); > [[ ${inf_loop} -gt 20 ]] && die "versionator compare bug [numbers, ${ver_a}, ${ver_b}]"; > local cur_tok_a=${parts_a[${cur_idx_a}]}; > local cur_tok_b=${parts_b[${cur_idx_b}]}; > if [[ -n ${cur_tok_a} ]] && [[ -z ${cur_tok_a//[[:digit:]]} ]]; then > cur_idx_a=$(( ${cur_idx_a} + 1 )); > [[ ${parts_a[${cur_idx_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=$(( ${cur_idx_b} + 1 )); > [[ ${parts_b[${cur_idx_b}]} == "." ]] && cur_idx_b=$(( ${cur_idx_b} + 1 )); > else > cur_tok_b=""; > fi; > [[ -z ${cur_tok_a} ]] && [[ -z ${cur_tok_b} ]] && break; > cur_tok_a=${cur_tok_a##+(0)}; > cur_tok_b=${cur_tok_b##+(0)}; > [[ -z ${cur_tok_a} ]] && cur_tok_a=0; > [[ -z ${cur_tok_b} ]] && cur_tok_b=0; > [[ ${cur_tok_a} -lt ${cur_tok_b} ]] && eshopts_pop && return 1; > [[ ${cur_tok_a} -gt ${cur_tok_b} ]] && eshopts_pop && return 3; > 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=$(( ${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=$(( ${cur_idx_b} + 1 )); > else > letter_b="@"; > fi; > [[ ${letter_a} < ${letter_b} ]] && eshopts_pop && return 1; > [[ ${letter_a} > ${letter_b} ]] && eshopts_pop && return 3; > local suffix rule part r_lt r_gt; > for rule in "alpha=1" "beta=1" "pre=1" "rc=1" "p=3" "r=3"; > do > suffix=${rule%%=*}; > r_lt=${rule##*=}; > [[ ${r_lt} -eq 1 ]] && r_gt=3 || r_gt=1; > local suffix_a=; > for part in ${parts_a[@]}; > do > [[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_a=${part#${suffix}}0; > done; > local suffix_b=; > for part in ${parts_b[@]}; > do > [[ ${part#${suffix}} != ${part} ]] && [[ -z ${part##${suffix}*([[:digit:]])} ]] && suffix_b=${part#${suffix}}0; > done; > [[ -z ${suffix_a} ]] && [[ -z ${suffix_b} ]] && continue; > [[ -z ${suffix_a} ]] && eshopts_pop && return ${r_gt}; > [[ -z ${suffix_b} ]] && eshopts_pop && return ${r_lt}; > suffix_a=${suffix_a##+(0)}; > suffix_a=${suffix_a:-0}; > suffix_b=${suffix_b##+(0)}; > suffix_b=${suffix_b:-0}; > [[ ${suffix_a} -lt ${suffix_b} ]] && eshopts_pop && return 1; > [[ ${suffix_a} -gt ${suffix_b} ]] && eshopts_pop && return 3; > done; > eshopts_pop; > return 2 >} >version_format_string () >{ > local fstr=$1; > shift; > set -- $(get_version_components "$@"); > eval echo "${fstr}" >} >version_is_at_least () >{ > eshopts_push -s extglob; > local want_s="$1" have_s="${2:-${PVR}}" r; > version_compare "${want_s}" "${have_s}"; > r=$?; > case $r in > 1 | 2) > eshopts_pop; > return 0 > ;; > 3) > eshopts_pop; > return 1 > ;; > *) > eshopts_pop; > die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]" > ;; > esac; > eshopts_pop >} >version_sort () >{ > eshopts_push -s extglob; > local items= left=0; > items=($@); > while [[ ${left} -lt ${#items[@]} ]]; do > local lowest_idx=${left}; > local idx=$(( ${lowest_idx} + 1 )); > while [[ ${idx} -lt ${#items[@]} ]]; do > version_compare "${items[${lowest_idx}]}" "${items[${idx}]}"; > [[ $? -eq 3 ]] && lowest_idx=${idx}; > idx=$(( ${idx} + 1 )); > done; > local tmp=${items[${lowest_idx}]}; > items[${lowest_idx}]=${items[${left}]}; > items[${left}]=${tmp}; > left=$(( ${left} + 1 )); > done; > echo ${items[@]}; > eshopts_pop >} >virtualmake () >{ > local retval=0; > local OLD_SANDBOX_ON="${SANDBOX_ON}"; > local XVFB=$(type -p Xvfb); > local XHOST=$(type -p xhost); > if [[ -n ${XVFB} && -n ${XHOST} ]] && ( [[ -z ${DISPLAY} ]] || ! ( ${XHOST} &>/dev/null ) ); then > export XAUTHORITY=; > einfo "Scanning for an open DISPLAY to start Xvfb ..."; > export SANDBOX_ON="0"; > local i=0; > XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo ${i}); > ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24 &>/dev/null & sleep 2; > local start=${XDISPLAY}; > while [[ ! -f /tmp/.X${XDISPLAY}-lock ]]; do > if ((XDISPLAY - start > 15)); then > eerror ""; > eerror "Unable to start Xvfb."; > eerror ""; > eerror "'${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24' returns:"; > eerror ""; > ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24; > eerror ""; > eerror "If possible, correct the above error and try your emerge again."; > eerror ""; > die; > fi; > ((XDISPLAY++)); > ${XVFB} :${XDISPLAY} -fp built-ins -screen 0 800x600x24 &>/dev/null & sleep 2; > done; > export SANDBOX_ON="${OLD_SANDBOX_ON}"; > einfo "Starting Xvfb on \$DISPLAY=${XDISPLAY} ..."; > export DISPLAY=:${XDISPLAY}; > ${maketype} "$@"; > retval=$?; > kill $(cat /tmp/.X${XDISPLAY}-lock); > else > ${maketype} "$@"; > retval=$?; > fi; > return ${retval} >}
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 352678
: 260661