Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 159896 Details for
Bug 231015
dev-lang/php-5.2.6-r2 - configure: error: `FFLAGS' has changed since the previous run
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
environment
environment (text/plain), 184.94 KB, created by
Jeroen Roovers (RETIRED)
on 2008-07-08 18:17:30 UTC
(
hide
)
Description:
environment
Filename:
MIME Type:
Creator:
Jeroen Roovers (RETIRED)
Created:
2008-07-08 18:17:30 UTC
Size:
184.94 KB
patch
obsolete
>ALSA_CARDS= >ALSA_PCM_PLUGINS='adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol' >APACHE2_2_DEPEND='=www-servers/apache-2.2*' >APACHE2_DEPEND='=www-servers/apache-2*' >APACHE2_MODULES='actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias' >APACHE2_SAPI_USE='concurrentmodphp threads' >APACHE_BASEDIR=/usr/lib/apache2 >APACHE_BIN=/usr/sbin/apache2 >APACHE_CONFDIR=/etc/apache2 >APACHE_CTL=/usr/sbin/apache2ctl >APACHE_DEPEND=www-servers/apache >APACHE_INCLUDEDIR=/usr/include/apache2 >APACHE_MODULESDIR=/usr/lib/apache2/modules >APACHE_MODULES_CONFDIR=/etc/apache2/modules.d >APACHE_VERSION=2 >APACHE_VHOSTS_CONFDIR=/etc/apache2/vhosts.d >APXS=/usr/sbin/apxs2 >ARCH=hppa >AT_GNUCONF_UPDATE=no >AT_M4DIR= >CBUILD=hppa2.0-unknown-linux-gnu >CDEFINE_default=__unix__ >CFLAGS='-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall' >CFLAGS_default= >CGI_SAPI_USE='discard-path force-cgi-redirect' >CHOST=hppa2.0-unknown-linux-gnu >CHOST_default=hppa2.0-unknown-linux-gnu >CONCURRENTMODPHP_PATCH=5.2.6/opt/concurrent_apache_modules.patch >COUNTER=1181268958 >CROSSCOMPILE_OPTS= >CTARGET_default=hppa2.0-unknown-linux-gnu >CVS_RSH=ssh >CXXFLAGS='-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall' >DCCC_PATH=/usr/lib/distcc/bin >DEFAULT_ABI=default >DEPEND=$'app-admin/php-toolkit\n\t\tkolab? ( >=net-libs/c-client-2004g-r1 ) apache2? ( =www-servers/apache-2* ) =sys-devel/automake-1.10*\n\t>=sys-devel/autoconf-2.61\n\tsys-devel/libtool adabas? ( >=dev-db/unixODBC-1.8.13 )\n\t\tberkdb? ( =sys-libs/db-4* )\n\t\tbirdstep? ( >=dev-db/unixODBC-1.8.13 )\n\t\tbzip2? ( app-arch/bzip2 )\n\t\tcdb? ( || ( dev-db/cdb dev-db/tinycdb ) )\n\t\tcjk? ( !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\tcrypt? ( >=dev-libs/libmcrypt-2.4 )\n\t\tcurl? ( >=net-misc/curl-7.10.5 )\n\t\tdb2? ( >=dev-db/unixODBC-1.8.13 )\n\t\tdbmaker? ( >=dev-db/unixODBC-1.8.13 )\n\t\tempress? ( >=dev-db/unixODBC-1.8.13 )\n\t\tempress-bcs? ( >=dev-db/unixODBC-1.8.13 )\n\t\tesoob? ( >=dev-db/unixODBC-1.8.13 )\n\t\texif? ( !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\tfdftk? ( app-text/fdftk )\n\t\tfirebird? ( dev-db/firebird )\n\t\tgd? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib )\n\t\tgd-external? ( media-libs/gd )\n\t\tgdbm? ( >=sys-libs/gdbm-1.8.0 )\n\t\tgmp? ( >=dev-libs/gmp-4.1.2 )\n\t\ticonv? ( virtual/libiconv )\n\t\timap? ( virtual/imap-c-client )\n\t\tiodbc? ( dev-db/libiodbc >=dev-db/unixODBC-1.8.13 )\n\t\tkerberos? ( virtual/krb5 )\n\t\tldap? ( !oci8? ( >=net-nds/openldap-1.2.11 ) )\n\t\tldap-sasl? ( !oci8? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) )\n\t\tlibedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )\n\t\tmcve? ( >=dev-libs/openssl-0.9.7 )\n\t\tmhash? ( app-crypt/mhash )\n\t\tmssql? ( dev-db/freetds )\n\t\tmysql? ( virtual/mysql )\n\t\tmysqli? ( >=virtual/mysql-4.1 )\n\t\tncurses? ( sys-libs/ncurses )\n\t\tnls? ( sys-devel/gettext )\n\t\toci8-instant-client? ( dev-db/oracle-instantclient-basic )\n\t\todbc? ( >=dev-db/unixODBC-1.8.13 )\n\t\tpostgres? ( || ( >=dev-db/libpq-7.1 ( app-admin/eselect-postgresql\n\t\t\t>=dev-db/postgresql-base-7.1 ) ) )\n\t\tqdbm? ( dev-db/qdbm )\n\t\treadline? ( sys-libs/readline )\n\t\trecode? ( app-text/recode )\n\t\tsapdb? ( >=dev-db/unixODBC-1.8.13 )\n\t\tsharedmem? ( dev-libs/mm )\n\t\tsimplexml? ( >=dev-libs/libxml2-2.6.8 )\n\t\tsnmp? ( >=net-analyzer/net-snmp-5.2 )\n\t\tsoap? ( >=dev-libs/libxml2-2.6.8 )\n\t\tsolid? ( >=dev-db/unixODBC-1.8.13 )\n\t\tspell? ( >=app-text/aspell-0.50 )\n\t\tsqlite? ( =dev-db/sqlite-2* pdo? ( =dev-db/sqlite-3* ) )\n\t\tssl? ( >=dev-libs/openssl-0.9.7 )\n\t\tsybase? ( dev-db/freetds )\n\t\ttidy? ( app-text/htmltidy )\n\t\ttruetype? ( =media-libs/freetype-2* >=media-libs/t1lib-5.0.0 !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\twddx? ( >=dev-libs/libxml2-2.6.8 )\n\t\txml? ( >=dev-libs/libxml2-2.6.8 )\n\t\txmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )\n\t\txmlreader? ( >=dev-libs/libxml2-2.6.8 )\n\t\txmlwriter? ( >=dev-libs/libxml2-2.6.8 )\n\t\txpm? ( x11-libs/libXpm >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib )\n\t\txsl? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )\n\t\tzip? ( sys-libs/zlib )\n\t\tzlib? ( sys-libs/zlib )\n\t\tvirtual/mta\n\t\t!media-libs/libswf\n\t\t>=sys-devel/m4-1.4.3\n\t\t>=sys-devel/libtool-1.5.18' >DESCRIPTION='The PHP language runtime engine: CLI, CGI and Apache2 SAPIs.' >DESTTREE=/usr >DIROPTIONS=-m0755 >EAPI= >ELIBC=glibc >ELIBTOOL_VERSION=2.0.2 >ELT_APPLIED_PATCHES=' 1.5.10 1.5.6' >ELT_LTMAIN_SH=/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/work/php-5.2.6/ltmain.sh >ELT_PATCH_DIR=/keeps/gentoo/portage/eclass/ELT-patches >EPATCH_EXCLUDE= >EPATCH_FORCE=no >EPATCH_MULTI_MSG='Applying various patches (bugfixes/updates) ...' >EPATCH_OPTS='-g0 -E --no-backup-if-mismatch' >EPATCH_SINGLE_MSG= >EPATCH_SOURCE=/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/work/patch >EPATCH_SUFFIX=patch.bz2 >EPAUSE_IGNORE=true >EXEOPTIONS=-m0755 >FASTBUILD_PATCH=5.2.6/opt/fastbuild.patch >FEATURES='autoaddcvs buildpkg cvs distlocks fixpackages notitles parallel-fetch preserve-libs sandbox sfperms splitdebug strict unmerge-orphans userfetch' >FFLAGS='-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall' >FLTK_DOCDIR=/usr/share/doc/fltk-1.1.7-r2/html >GCC_SPECS= >GDK_USE_XFT=1 >GUILE_LOAD_PATH=/usr/share/guile/1.8 >HOMEPAGE=http://www.php.net/ >INHERITED='apache-module autotools toolchain-funcs php5_2-sapi portability flag-o-matic versionator multilib libtool phpconfutils db-use depend.apache eutils php-common-r1' >INPUT_DEVICES= >INSDESTTREE= >INSOPTIONS=-m0644 >IUSE='cli cgi discard-path force-cgi-redirect concurrentmodphp threads fastbuild kolab apache2 adabas bcmath berkdb birdstep bzip2 calendar cdb cjk crypt ctype curl curlwrappers db2 dbase dbmaker debug doc empress empress-bcs esoob exif frontbase fdftk filter firebird flatfile ftp gd gd-external gdbm gmp hash iconv imap inifile interbase iodbc ipv6 java-external json kerberos ldap ldap-sasl libedit mcve mhash msql mssql mysql mysqli ncurses nls oci8 oci8-instant-client odbc pcntl pcre pdo pic posix postgres qdbm readline reflection recode sapdb session sharedext sharedmem simplexml snmp soap sockets solid spell spl sqlite ssl suhosin sybase sybase-ct sysvipc tidy tokenizer truetype unicode wddx xml xmlreader xmlwriter xmlrpc xpm xsl yaz zip zip-external zlib' >KDEDIRS=/usr:/usr/local:/usr/kde/3.5 >KERNEL=linux >KERNEL_ABI=default >KEYWORDS='~alpha amd64 ~arm ~hppa ~ia64 ppc ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd' >KOLAB_PATCH=5.2.6/opt/kolab-imap-annotations.patch >KV=2.6.25-gentoo-r6-JeR >LADSPA_PATH=/usr/lib/ladspa >LCD_DEVICES= >LC_ALL=en_US.UTF-8 >LDFLAGS= >LDFLAGS_default= >LIBDIR_default=lib >LIBOPTIONS=-m0644 >LICENSE=PHP-3 >LINGUAS='en nl he' >MAKEOPTS=-j4 >MULTILIB_ABIS=default >MULTILIB_PATCH=5.2.6/opt/multilib-search-path.patch >MY_PHP_P=php-5.2.6 >MY_PHP_PV=5.2.6 >OPENGL_PROFILE=xorg-x11 >PBS_SERVER_HOME=/var/spool/torque >PDEPEND=$' doc? ( app-doc/php-docs )\n\t\tfilter? ( !dev-php5/pecl-filter )\n\t\tjava-external? ( dev-php5/php-java-bridge )\n\t\tjson? ( !dev-php5/pecl-json )\n\t\tmcve? ( dev-php5/pecl-mcve )\n\t\tpdo? ( !dev-php5/pecl-pdo )\n\t\tsuhosin? ( dev-php5/suhosin )\n\t\tyaz? ( dev-php5/pecl-yaz )\n\t\tzip? ( !dev-php5/pecl-zip )\n\t\tzip-external? ( dev-php5/pecl-zip )' >PHPCONFUTILS_AUTO_USE= >PHPCONFUTILS_MISSING_DEPS='adabas birdstep db2 dbmaker empress empress-bcs esoob frontbase interbase msql oci8 sapdb solid sybase sybase-ct' >PHPPR=2 >PHP_EXTRA_BRANDING= >PHP_INI_FILE=php.ini >PHP_INI_UPSTREAM=php.ini-dist >PHP_PACKAGE=1 >PHP_PATCHSET_REV=2 >PKG_CONFIG_PATH=/usr/qt/3/lib/pkgconfig >PORTAGE_NICENESS=10 >PROVIDE='virtual/php virtual/httpd-php' >QMAKESPEC=linux-g++ >QTDIR=/usr/qt/3 >RDEPEND=$'app-admin/php-toolkit apache2? ( =www-servers/apache-2* ) adabas? ( >=dev-db/unixODBC-1.8.13 )\n\t\tberkdb? ( =sys-libs/db-4* )\n\t\tbirdstep? ( >=dev-db/unixODBC-1.8.13 )\n\t\tbzip2? ( app-arch/bzip2 )\n\t\tcdb? ( || ( dev-db/cdb dev-db/tinycdb ) )\n\t\tcjk? ( !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\tcrypt? ( >=dev-libs/libmcrypt-2.4 )\n\t\tcurl? ( >=net-misc/curl-7.10.5 )\n\t\tdb2? ( >=dev-db/unixODBC-1.8.13 )\n\t\tdbmaker? ( >=dev-db/unixODBC-1.8.13 )\n\t\tempress? ( >=dev-db/unixODBC-1.8.13 )\n\t\tempress-bcs? ( >=dev-db/unixODBC-1.8.13 )\n\t\tesoob? ( >=dev-db/unixODBC-1.8.13 )\n\t\texif? ( !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\tfdftk? ( app-text/fdftk )\n\t\tfirebird? ( dev-db/firebird )\n\t\tgd? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib )\n\t\tgd-external? ( media-libs/gd )\n\t\tgdbm? ( >=sys-libs/gdbm-1.8.0 )\n\t\tgmp? ( >=dev-libs/gmp-4.1.2 )\n\t\ticonv? ( virtual/libiconv )\n\t\timap? ( virtual/imap-c-client )\n\t\tiodbc? ( dev-db/libiodbc >=dev-db/unixODBC-1.8.13 )\n\t\tkerberos? ( virtual/krb5 )\n\t\tldap? ( !oci8? ( >=net-nds/openldap-1.2.11 ) )\n\t\tldap-sasl? ( !oci8? ( dev-libs/cyrus-sasl >=net-nds/openldap-1.2.11 ) )\n\t\tlibedit? ( || ( sys-freebsd/freebsd-lib dev-libs/libedit ) )\n\t\tmcve? ( >=dev-libs/openssl-0.9.7 )\n\t\tmhash? ( app-crypt/mhash )\n\t\tmssql? ( dev-db/freetds )\n\t\tmysql? ( virtual/mysql )\n\t\tmysqli? ( >=virtual/mysql-4.1 )\n\t\tncurses? ( sys-libs/ncurses )\n\t\tnls? ( sys-devel/gettext )\n\t\toci8-instant-client? ( dev-db/oracle-instantclient-basic )\n\t\todbc? ( >=dev-db/unixODBC-1.8.13 )\n\t\tpostgres? ( || ( >=dev-db/libpq-7.1 ( app-admin/eselect-postgresql\n\t\t\t>=dev-db/postgresql-base-7.1 ) ) )\n\t\tqdbm? ( dev-db/qdbm )\n\t\treadline? ( sys-libs/readline )\n\t\trecode? ( app-text/recode )\n\t\tsapdb? ( >=dev-db/unixODBC-1.8.13 )\n\t\tsharedmem? ( dev-libs/mm )\n\t\tsimplexml? ( >=dev-libs/libxml2-2.6.8 )\n\t\tsnmp? ( >=net-analyzer/net-snmp-5.2 )\n\t\tsoap? ( >=dev-libs/libxml2-2.6.8 )\n\t\tsolid? ( >=dev-db/unixODBC-1.8.13 )\n\t\tspell? ( >=app-text/aspell-0.50 )\n\t\tsqlite? ( =dev-db/sqlite-2* pdo? ( =dev-db/sqlite-3* ) )\n\t\tssl? ( >=dev-libs/openssl-0.9.7 )\n\t\tsybase? ( dev-db/freetds )\n\t\ttidy? ( app-text/htmltidy )\n\t\ttruetype? ( =media-libs/freetype-2* >=media-libs/t1lib-5.0.0 !gd? ( !gd-external? ( >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib ) ) )\n\t\twddx? ( >=dev-libs/libxml2-2.6.8 )\n\t\txml? ( >=dev-libs/libxml2-2.6.8 )\n\t\txmlrpc? ( >=dev-libs/libxml2-2.6.8 virtual/libiconv )\n\t\txmlreader? ( >=dev-libs/libxml2-2.6.8 )\n\t\txmlwriter? ( >=dev-libs/libxml2-2.6.8 )\n\t\txpm? ( x11-libs/libXpm >=media-libs/jpeg-6b media-libs/libpng sys-libs/zlib )\n\t\txsl? ( dev-libs/libxslt >=dev-libs/libxml2-2.6.8 )\n\t\tzip? ( sys-libs/zlib )\n\t\tzlib? ( sys-libs/zlib )\n\t\tvirtual/mta\n\t\t!media-libs/libswf' >RESTRICT= >RSYNC_TIMEOUT=600 >RUBYOPT=-rauto_gem >R_HOME=/usr/lib/R >S=/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/work/php-5.2.6 >SANDBOX_DENY=/etc/ld.so.preload >SANDBOX_PREDICT=:/dev/console:/dev/random:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.:/proc/self/maps:/usr/lib/python2.0/:/usr/lib/python2.1/:/usr/lib/python2.2/:/usr/lib/python2.3/:/usr/lib/python2.4/:/usr/lib/python2.5/:/usr/lib/python3.0/:/var/db/aliases.db:/var/db/ethers.db:/var/db/group.db:/var/db/hosts.db:/var/db/netgroup.db:/var/db/netmasks.db:/var/db/networks.db:/var/db/passwd.db:/var/db/protocols.db:/var/db/rpc.db:/var/db/services.db: >SANDBOX_READ=:/:/dev/shm:/dev/stdin:/mnt/alt/portage-tmp: >SANDBOX_WRITE=:/dev/console:/dev/fd:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/shm/ngpt:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/mnt/alt/portage-tmp:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.bash_history:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.gconfd/lock:/proc/self/fd:/tmp:/tmp/:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/lib/cf:/usr/lib/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/log/scrollkeeper.log:/var/tmp:/var/tmp/: >SANE_CONFIG_DIR=/etc/sane.d >SGML_CATALOG_FILES=/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/xml-simple-docbook-4.1.2.4.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/sgml-docbook-4.1.cat:/etc/sgml/sgml-docbook-4.0.cat:/etc/sgml/xml-simple-docbook-1.0.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-docbook-4.2.cat:/etc/sgml/sgml-ent.cat:/etc/sgml/sgml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat >SLOT=5 >SRC_URI='http://www.php.net/distributions/php-5.2.6.tar.bz2 http://gentoo.longitekk.com/php-patchset-5.2.6-r2.tar.bz2 suhosin? ( http://gentoo.longitekk.com/suhosin-patch-5.2.6-0.9.6.2.patch.gz ) suhosin? ( http://gentoo.longitekk.com/suhosin-patch-5.2.6-0.9.6.2.patch.gz )' >STAGE1_USE='nptl nptlonly' >SUHOSIN_PATCH=suhosin-patch-5.2.6-0.9.6.2.patch.gz >TEXINPUTS=/usr/lib/ocaml/ocamldoc: >USB_DEVFS_PATH=/dev/bus/usb >USE='apache2 berkdb bzip2 calendar cdb cgi cjk cli crypt ctype curl elibc_glibc exif filter ftp gd gmp hppa iconv imap iodbc ipv6 kerberos kernel_linux ldap mcve mhash mssql mysql mysqli ncurses nls odbc pcre pdo pic postgres qdbm readline reflection session snmp sockets spell spl sqlite ssl suhosin threads tidy tokenizer truetype unicode userland_GNU xml xpm xsl zip-external zlib' >USERLAND=GNU >VIDEO_CARDS= >WANT_AUTOCONF=2.5 >WANT_AUTOMAKE=1.10 >XDG_DATA_DIRS=/usr/share:/usr/kde/3.5/share:/usr/local/share >XERCESC_NLS_HOME=/usr/share/xerces-c/msg >_=PKG_INSTALL_MASK >_E_DOCDESTTREE_= >_E_EXEDESTTREE_= >___ECLASS_RECUR_MULTILIB=yes >___ECLASS_RECUR_TOOLCHAIN_FUNCS=yes >_pipestatus='0 0' >conf=php-5.2.6-r2 >i=sapi/apache2handler/config.m4 >str='has_apache_threads: entering function' >ELT_find_ltmain_sh () >{ > local x=; > local dirlist=; > for x in $(find "${S}" -name 'ltmain.sh'); > do > dirlist="${dirlist} ${x%/*}"; > done; > echo "${dirlist}" >} >ELT_libtool_version () >{ > local ltmain_sh=$1; > local version=; > version=$(eval $(grep -e '^[[:space:]]*VERSION=' "${ltmain_sh}"); echo "${VERSION}"); > [[ -z ${version} ]] && version="0"; > echo "${version}" >} >ELT_try_and_apply_patch () >{ > local ret=0; > local file=$1; > local patch=$2; > if patch -p0 --dry-run "${file}" "${patch}" >&"${T}/elibtool.log"; then > einfo " Applying $(basename "$(dirname "${patch}")")-${patch##*/}.patch ..."; > patch -p0 -g0 --no-backup-if-mismatch "${file}" "${patch}" >&"${T}/elibtool.log"; > ret=$?; > export ELT_APPLIED_PATCHES="${ELT_APPLIED_PATCHES} ${patch##*/}"; > else > ret=1; > fi; > return "${ret}" >} >ELT_walk_patches () >{ > local x=; > local y=; > local ret=1; > local file=$1; > local patch_set=$2; > local patch_dir=; > local rem_int_dep=$3; > if [[ -n ${patch_set} ]]; then > if [[ -d ${ELT_PATCH_DIR}/${patch_set} ]]; then > patch_dir="${ELT_PATCH_DIR}/${patch_set}"; > else > return "${ret}"; > fi; > for x in $(ls -d "${patch_dir}"/* 2> /dev/null | grep -v 'CVS' | sort -r); > do > if [[ -n ${x} && -f ${x} ]]; then > if [[ -n ${rem_int_dep} ]]; then > sed -e "s|@REM_INT_DEP@|${rem_int_dep}|g" ${x} > "${T}/$$.rem_int_deps.patch"; > x="${T}/$$.rem_int_deps.patch"; > fi; > if ELT_try_and_apply_patch "${file}" "${x}"; then > ret=0; > break; > fi; > fi; > done; > fi; > return "${ret}" >} >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 >} >__versionator__test_version_compare () >{ > __versionator_shopt_toggle on; > 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; > __versionator_shopt_toggle off >} >__versionator_shopt_toggle () >{ > VERSIONATOR_RECURSION=${VERSIONATOR_RECURSION:-0}; > case "$1" in > "on") > if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then > VERSIONATOR_OLD_EXTGLOB=$(shopt -p extglob); > shopt -s extglob; > fi; > VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION + 1 )) > ;; > "off") > VERSIONATOR_RECURSION=$(( $VERSIONATOR_RECURSION - 1 )); > if [[ $VERSIONATOR_RECURSION -lt 1 ]]; then > eval $VERSIONATOR_OLD_EXTGLOB; > fi > ;; > esac; > return 0 >} >_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 >} >_elibtoolize () >{ > local opts; > [[ -n $(autotools_check_macro AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT) ]] || return 0; > [[ -f GNUmakefile.am || -f Makefile.am ]] && opts="--automake"; > [[ "${USERLAND}" == "Darwin" ]] && LIBTOOLIZE="glibtoolize"; > autotools_run_tool ${LIBTOOLIZE:-libtoolize} "$@" ${opts}; > eaclocal >} >_epatch_assert () >{ > local _pipestatus=${PIPESTATUS[*]}; > [[ ${_pipestatus// /} -eq 0 ]] >} >_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 -fno-stack-protector > ;; > -fstack-protector-all) > gcc-specs-ssp-to-all || continue; > is-flagq -fno-stack-protector-all || append-flags -fno-stack-protector-all > ;; > esac; > done >} >_filter-var () >{ > local f x VAR VAL; > declare -a new; > VAR=$1; > shift; > eval VAL=\${${VAR}}; > for f in ${VAL}; > do > for x in "$@"; > do > [[ ${f} == ${x} ]] && continue 2; > done; > eval new\[\${\#new\[@]}]=\${f}; > done; > eval export ${VAR}=\${new\[*]} >} >_gcc-install-dir () >{ > echo "$(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 ]] >} >_init_apache2 () >{ > debug-print-function $FUNCNAME $*; > APACHE_VERSION="2"; > APXS="/usr/sbin/apxs2"; > APACHE_BIN="/usr/sbin/apache2"; > APACHE_CTL="/usr/sbin/apache2ctl"; > APACHE_INCLUDEDIR="/usr/include/apache2"; > APACHE_BASEDIR="/usr/$(get_libdir)/apache2"; > APACHE_CONFDIR="/etc/apache2"; > APACHE_MODULES_CONFDIR="${APACHE_CONFDIR}/modules.d"; > APACHE_VHOSTS_CONFDIR="${APACHE_CONFDIR}/vhosts.d"; > APACHE_MODULESDIR="${APACHE_BASEDIR}/modules" >} >_init_no_apache () >{ > debug-print-function $FUNCNAME $*; > APACHE_VERSION="0" >} >_is_flagq () >{ > local x; > for x in ${!1}; > do > [[ ${x} == $2 ]] && return 0; > done; > return 1 >} >apache-module_pkg_postinst () >{ > debug-print-function $FUNCNAME $*; > if [[ -n "${APACHE2_MOD_DEFINE}" ]]; then > local my_opts="-D ${APACHE2_MOD_DEFINE// / -D }"; > einfo; > einfo "To enable ${PN}, you need to edit your /etc/conf.d/apache2 file and"; > einfo "add '${my_opts}' to APACHE2_OPTS."; > einfo; > fi; > if [[ -n "${APACHE2_MOD_CONF}" ]]; then > set -- ${APACHE2_MOD_CONF}; > einfo; > einfo "Configuration file installed as"; > einfo " ${APACHE_MODULES_CONFDIR}/$(basename $1).conf"; > einfo "You may want to edit it before turning the module on in /etc/conf.d/apache2"; > einfo; > fi >} >apache-module_src_compile () >{ > debug-print-function $FUNCNAME $*; > local CD_DIR=$(apache_cd_dir); > cd "${CD_DIR}" || die "cd ${CD_DIR} failed"; > APXS2_ARGS="${APXS2_ARGS:--c ${PN}.c}"; > ${APXS} ${APXS2_ARGS} || die "${APXS} ${APXS2_ARGS} failed" >} >apache-module_src_install () >{ > debug-print-function $FUNCNAME $*; > local CD_DIR=$(apache_cd_dir); > cd "${CD_DIR}" || die "cd ${CD_DIR} failed"; > local MOD_FILE=$(apache_mod_file); > exeinto "${APACHE_MODULESDIR}"; > doexe ${MOD_FILE} || die "internal ebuild error: '${MOD_FILE}' not found"; > [[ -n "${APACHE2_EXECFILES}" ]] && doexe ${APACHE2_EXECFILES}; > if [[ -n "${APACHE2_MOD_CONF}" ]]; then > insinto "${APACHE_MODULES_CONFDIR}"; > set -- ${APACHE2_MOD_CONF}; > newins "${FILESDIR}/${1}.conf" "$(basename ${2:-$1}).conf" || die "internal ebuild error: '${FILESDIR}/${1}.conf' not found"; > fi; > if [[ -n "${APACHE2_VHOST_CONF}" ]]; then > insinto "${APACHE_VHOSTS_CONFDIR}"; > set -- ${APACHE2_VHOST_CONF}; > newins "${FILESDIR}/${1}.conf" "$(basename ${2:-$1}).conf " || die "internal ebuild error: '${FILESDIR}/${1}.conf' not found"; > fi; > cd "${S}"; > if [[ -n "${DOCFILES}" ]]; then > local OTHER_DOCS=$(apache_doc_magic); > local HTML_DOCS=$(apache_doc_magic html); > [[ -n "${OTHER_DOCS}" ]] && dodoc ${OTHER_DOCS}; > [[ -n "${HTML_DOCS}" ]] && dohtml ${HTML_DOCS}; > fi >} >apache_cd_dir () >{ > debug-print-function $FUNCNAME $*; > local CD_DIR="${APXS2_S}"; > if [[ -z "${CD_DIR}" ]]; then > if [[ -d "${S}/src" ]]; then > CD_DIR="${S}/src"; > else > CD_DIR="${S}"; > fi; > fi; > debug-print $FUNCNAME "CD_DIR=${CD_DIR}"; > echo "${CD_DIR}" >} >apache_doc_magic () >{ > debug-print-function $FUNCNAME $*; > local DOCS=; > if [[ -n "${DOCFILES}" ]]; then > if [[ "x$1" == "xhtml" ]]; then > DOCS="`echo ${DOCFILES} | sed -e 's/ /\n/g' | sed -e '/^[^ ]*.html$/ !d'`"; > else > DOCS="`echo ${DOCFILES} | sed 's, *[^ ]*\+.html, ,g'`"; > fi; > fi; > debug-print $FUNCNAME "DOCS=${DOCS}"; > echo "${DOCS}" >} >apache_mod_file () >{ > debug-print-function $FUNCNAME $*; > local MOD_FILE="${APACHE2_MOD_FILE:-$(apache_cd_dir)/.libs/${PN}.so}"; > debug-print $FUNCNAME "MOD_FILE=${MOD_FILE}"; > echo "${MOD_FILE}" >} >append-cppflags () >{ > [[ -z $* ]] && return 0; > export CPPFLAGS="${CPPFLAGS} $*"; > return 0 >} >append-fflags () >{ > [[ -z $* ]] && return 0; > export FFLAGS="${FFLAGS} $*"; > export FCFLAGS="${FCFLAGS} $*"; > return 0 >} >append-flags () >{ > [[ -z $* ]] && return 0; > export CFLAGS="${CFLAGS} $*"; > export CXXFLAGS="${CXXFLAGS} $*"; > export FFLAGS="${FFLAGS} $*"; > export FCFLAGS="${FCFLAGS} $*"; > 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 >} >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" ]]; then > ewarn "QA Warning: running $1 in ${EBUILD_PHASE} phase"; > fi; > local STDERR_TARGET="${T}/$$.out"; > local ris; > printf "***** $1 *****\n***** $*\n\n" > "${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}"; > ebegin "Running $@"; > "$@" >> "${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}" 2>&1; > ris=$?; > eend ${ris}; > if [[ ${ris} != 0 && ${NO_FAIL} != 1 ]]; then > echo; > eerror "Failed Running $1 !"; > eerror; > eerror "Include in your bugreport the contents of:"; > eerror; > eerror " ${STDERR_TARGET%/*}/$1-${STDERR_TARGET##*/}"; > echo; > die "Failed Running $1 !"; > fi >} >bindnow-flags () >{ > ewarn "QA: stop using the bindnow-flags function ... simply drop it from your ebuild" 1>&2; > case $($(tc-getLD) -v 2>&1 </dev/null) in > *GNU* | *'with BFD'*) > echo "-Wl,-z,now" > ;; > *Apple*) > echo "-bind_at_load" > ;; > *) > case $($(tc-getLD) -V 2>&1 </dev/null) in > *Solaris*) > echo "-Wl,-z,now" > ;; > esac > ;; > esac >} >built_with_use () >{ > local hidden="no"; > if [[ $1 == "--hidden" ]]; then > hidden="yes"; > shift; > fi; > local missing_action="die"; > if [[ $1 == "--missing" ]]; then > missing_action=$2; > shift; > shift; > case ${missing_action} in > true | false | die) > > ;; > *) > die "unknown action '${missing_action}'" > ;; > esac; > fi; > local opt=$1; > [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; > local PKG=$(best_version $1); > [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package"; > shift; > local USEFILE=${ROOT}/var/db/pkg/${PKG}/USE; > local IUSEFILE=${ROOT}/var/db/pkg/${PKG}/IUSE; > if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "Unable to determine what USE flags $PKG was built with" > ;; > esac; > fi; > if [[ ${hidden} == "no" ]]; then > local IUSE_BUILT=($(<"${IUSEFILE}")); > local expand; > for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]'); > do > if [[ $1 == ${expand}_* ]]; then > expand=""; > break; > fi; > done; > if [[ -n ${expand} ]]; then > if ! has $1 ${IUSE_BUILT[@]#[-+]}; then > case ${missing_action} in > true) > return 0 > ;; > false) > return 1 > ;; > die) > die "$PKG does not actually support the $1 USE flag!" > ;; > esac; > fi; > fi; > fi; > local USE_BUILT=$(<${USEFILE}); > while [[ $# -gt 0 ]]; do > if [[ ${opt} = "-o" ]]; then > has $1 ${USE_BUILT} && return 0; > else > has $1 ${USE_BUILT} || return 1; > fi; > shift; > done; > [[ ${opt} = "-a" ]] >} >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 ${CD_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_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; > [ ! -f "${lic}" ] && die "Could not find requested license ${lic}"; > local l="`basename ${lic}`"; > local shopts=$-; > local alic; > set -o noglob; > for alic in ${ACCEPT_LICENSE}; > do > if [[ ${alic} == ${l} ]]; then > set +o noglob; > set -${shopts}; > return 0; > fi; > done; > set +o noglob; > set -$shopts; > local licmsg=$(emktemp); > cat > ${licmsg} <<-EOF >********************************************************** >The following license outlines the terms of use of this >package. You MUST accept this license for installation to >continue. When you are done viewing, hit 'q'. If you >CTRL+C out of this, the install will not run! >********************************************************** > >EOF > > cat ${lic} >> ${licmsg}; > ${PAGER:-less} ${licmsg} || 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 >} >create_ml_includes () >{ > local dest=$1; > shift; > local basedirs=$(create_ml_includes-listdirs "$@"); > create_ml_includes-makedestdirs ${dest} ${basedirs}; > local file; > for file in $(create_ml_includes-allfiles ${basedirs}); > do > ( echo "/* Autogenerated by create_ml_includes() in multilib.eclass */"; > local dir; > for dir in ${basedirs}; > do > if [[ -f ${D}/${dir}/${file} ]]; then > echo ""; > local sym=$(create_ml_includes-sym_for_dir ${dir} "$@"); > if [[ ${sym/=} != "${sym}" ]]; then > echo "#if ${sym}"; > else > if [[ ${sym::1} == "!" ]]; then > echo "#ifndef ${sym:1}"; > else > echo "#ifdef ${sym}"; > fi; > fi; > echo "# include <$(create_ml_includes-absolute ${dir}/${file})>"; > echo "#endif /* ${sym} */"; > fi; > done ) > "${D}/${dest}/${file}"; > done >} >create_ml_includes-absolute () >{ > local dst="$(create_ml_includes-tidy_path $1)"; > dst=(${dst//\// }); > local i; > for ((i=0; i<${#dst[*]}; i++)) > do > [ "${dst[i]}" == "include" ] && break; > done; > local strip_upto=$i; > for ((i=strip_upto+1; i<${#dst[*]}-1; i++)) > do > echo -n ${dst[i]}/; > done; > echo -n ${dst[i]} >} >create_ml_includes-allfiles () >{ > local basedir file; > for basedir in "$@"; > do > for file in $(find "${D}"/${basedir} -type f); > do > echo ${file/${D}\/${basedir}\//}; > done; > done | sort | uniq >} >create_ml_includes-listdirs () >{ > local dirs; > local data; > for data in "$@"; > do > dirs="${dirs} ${data/*:/}"; > done; > echo ${dirs:1} >} >create_ml_includes-makedestdirs () >{ > local dest=$1; > shift; > local basedirs=$@; > dodir ${dest}; > local basedir; > for basedir in ${basedirs}; > do > local dir; > for dir in $(find ${D}/${basedir} -type d); > do > dodir ${dest}/${dir/${D}\/${basedir}/}; > done; > done >} >create_ml_includes-sym_for_dir () >{ > local dir=$1; > shift; > local data; > for data in "$@"; > do > if [[ ${data} == *:${dir} ]]; then > echo ${data/:*/}; > return 0; > fi; > done; > echo "Shouldn't be here -- create_ml_includes-sym_for_dir $1 $@"; > exit 1 >} >create_ml_includes-tidy_path () >{ > local removed=$1; > if [ -n "${removed}" ]; then > while [ "${removed}" != "${removed/\/\//\/}" ]; do > removed=${removed/\/\//\/}; > done; > while [ "${removed}" != "${removed//\/.\//\/}" ]; do > removed=${removed//\/.\//\/}; > done; > [ "${removed##*/}" = "." ] && removed=${removed%/*}; > while [ "${removed}" != "${removed//\/..\/}" ]; do > local p1="${removed%%\/..\/*}"; > local p2="${removed#*\/..\/}"; > removed="${p1%\/*}/${p2}"; > done; > [ "${removed##*/}" = ".." ] && removed=${removed%/*/*}; > [ "${removed##*/}" = "" ] && removed=${removed%/*}; > echo ${removed}; > fi >} >darwintoolize () >{ > ewarn "darwintoolize() is deprecated, please just use elibtoolize()!"; > elibtoolize >} >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 > einfo "Found db version ${VER}" 1>&2; > 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/.0/}" >} >delete_all_version_separators () >{ > __versionator_shopt_toggle on; > replace_all_version_separators "" "${1}"; > __versionator_shopt_toggle off >} >delete_version_separator () >{ > __versionator_shopt_toggle on; > replace_version_separator "${1}" "" "${2}"; > __versionator_shopt_toggle off >} >dlopen_lib () >{ > if [[ ${ELIBC} != *BSD ]]; then > echo "-ldl"; > 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} ) >} >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} >} >eautoconf () >{ > if [[ ! -f configure.ac && ! -f configure.in ]]; then > echo; > eerror "No configure.{ac,in} present in '$(pwd | sed -e 's:.*/::')'!"; > 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; > if [[ -f GNUmakefile.am ]]; then > makefile_name="GNUmakefile"; > else > if [[ -f Makefile.am ]]; then > makefile_name="Makefile"; > else > return 0; > fi; > fi; > if [[ -z ${FROM_EAUTORECONF} && -f ${makefile_name}.in ]]; then > local used_automake; > local installed_automake; > installed_automake=$(automake --version | head -n 1 | sed -e 's:.*(GNU automake) ::'); > used_automake=$(head -n 1 < ${makefile_name}.in | sed -e 's:.*by automake \(.*\) from .*:\1:'); > if [[ ${installed_automake} != ${used_automake} ]]; then > einfo "Automake used for the package (${used_automake}) differs from"; > einfo "the installed version (${installed_automake})."; > eautoreconf; > return 0; > fi; > fi; > [[ -f INSTALL && -f AUTHORS && -f ChangeLog && -f NEWS ]] || extra_opts="${extra_opts} --foreign"; > autotools_run_tool automake --add-missing --copy ${extra_opts} "$@" >} >eautoreconf () >{ > local pwd=$(pwd) x auxdir; > if [[ -z ${AT_NO_RECURSIVE} ]]; then > for x in $(autotools_get_subdirs); > do > if [[ -d ${x} ]]; then > cd "${x}"; > AT_NOELIBTOOLIZE="yes" eautoreconf; > cd "${pwd}"; > fi; > done; > fi; > auxdir=$(autotools_get_auxdir); > einfo "Running eautoreconf in '$(pwd)' ..."; > [[ -n ${auxdir} ]] && mkdir -p ${auxdir}; > eaclocal; > if ${LIBTOOLIZE:-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; > elibtoolize; > return 0 >} >ebeep () >{ > local n; > if [[ -z ${EBEEP_IGNORE} ]]; then > for ((n=1 ; n <= ${1:-5} ; n++)) > do > echo -ne "\a"; > sleep 0.1 >&/dev/null; > sleep 0,1 >&/dev/null; > echo -ne "\a"; > sleep 1; > done; > fi >} >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*) > case "$2" in > *[!0-9]*) > nidump $1 . | awk -F":" "{ if (\$1 ~ /^$2$/) {print \$0;exit;} }" > ;; > *) > nidump $1 . | awk -F":" "{ if (\$3 == $2) {print \$0;exit;} }" > ;; > esac > ;; > *-freebsd* | *-dragonfly*) > local opts action="user"; > [[ $1 == "passwd" ]] || action="group"; > if [[ $2 == [[:digit:]]* ]]; then > [[ ${action} == "user" ]] && opts="-u" || opts="-g"; > fi; > pw show ${action} ${opts} "$2" -q > ;; > *-netbsd* | *-openbsd*) > grep "$2:\*:" /etc/$1 > ;; > *) > type -p nscd >&/dev/null && nscd -i "$1"; > getent "$1" "$2" > ;; > esac >} >egethome () >{ > ent=$(egetent passwd $1); > case ${CHOST} in > *-darwin* | *-freebsd* | *-dragonfly*) > echo ${ent} | cut -d: -f9 > ;; > *) > echo ${ent} | cut -d: -f6 > ;; > esac >} >egetshell () >{ > ent=$(egetent passwd "$1"); > case ${CHOST} in > *-darwin* | *-freebsd* | *-dragonfly*) > echo ${ent} | cut -d: -f10 > ;; > *) > echo ${ent} cut -d: -f7 > ;; > esac >} >elibtoolize () >{ > local x=; > local y=; > local do_portage="no"; > local do_reversedeps="no"; > local do_only_patches="no"; > local do_uclibc="yes"; > local deptoremove=; > local my_dirlist=; > local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp"; > local start_dir=${PWD}; > my_dirlist=$(ELT_find_ltmain_sh); > for x in "$@"; > do > case "${x}" in > "--portage") > do_portage="yes" > ;; > "--reverse-deps") > do_reversedeps="yes"; > elt_patches="${elt_patches} fix-relink" > ;; > "--patch-only") > do_only_patches="yes" > ;; > "^--remove-internal-dep="*) > deptoremove=$(echo "${x}" | sed -e 's|--remove-internal-dep=||'); > [[ -n ${deptoremove} ]] && elt_patches="${elt_patches} rem-int-dep" > ;; > "--shallow") > if [[ -f ${S}/ltmain.sh ]]; then > my_dirlist=${S}; > else > my_dirlist=; > fi > ;; > "--no-uclibc") > do_uclibc="no" > ;; > *) > eerror "Invalid elibtoolize option: ${x}"; > die "elibtoolize called with ${x} ??" > ;; > esac; > done; > [[ ${do_uclibc} == "yes" ]] && elt_patches="${elt_patches} uclibc-conf uclibc-ltconf"; > [[ ${CHOST} == *"-freebsd"* ]] && elt_patches="${elt_patches} fbsd-conf fbsd-ltconf"; > [[ ${CHOST} == *"-darwin"* ]] && elt_patches="${elt_patches} darwin-ltconf darwin-ltmain"; > for x in ${my_dirlist}; > do > local tmp=$(echo "${x}" | sed -e "s|${WORKDIR}||"); > export ELT_APPLIED_PATCHES=; > export ELT_LTMAIN_SH="${x}/ltmain.sh"; > [[ -f ${x}/.elibtoolized ]] && continue; > cd ${x}; > einfo "Running elibtoolize in: $(echo "/${tmp}" | sed -e 's|//|/|g; s|^/||')"; > for y in ${elt_patches}; > do > local ret=0; > case "${y}" in > "portage") > if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then > ELT_walk_patches "${x}/ltmain.sh" "${y}"; > ret=$?; > fi > ;; > "rem-int-dep") > ELT_walk_patches "${x}/ltmain.sh" "${y}" "${deptoremove}"; > ret=$? > ;; > "fix-relink") > if [[ -n $(grep 'inst_prefix_dir' "${x}/ltmain.sh") ]]; then > ELT_walk_patches "${x}/ltmain.sh" "${y}"; > ret=$?; > fi > ;; > "max_cmd_len") > if [[ -n $(grep 'max_cmd_len' "${x}/ltmain.sh") ]]; then > ELT_walk_patches "${x}/ltmain.sh" "${y}"; > ret=$?; > fi > ;; > "uclibc-conf") > if [[ -e ${x}/configure && -n $(grep 'Transform linux' "${x}/configure") ]]; then > ELT_walk_patches "${x}/configure" "${y}"; > ret=$?; > else > if [[ ! -e ${x}/configure && -e ${x}/../configure && -n $(grep 'Transform linux' "${x}/../configure") ]]; then > ELT_walk_patches "${x}/../configure" "${y}"; > ret=$?; > fi; > fi > ;; > "uclibc-ltconf") > if [[ -s ${x}/ltconfig ]]; then > ELT_walk_patches "${x}/ltconfig" "${y}"; > ret=$?; > fi > ;; > "fbsd-conf") > if [[ -e ${x}/configure && -n $(grep 'version_type=freebsd-' "${x}/configure") ]]; then > ELT_walk_patches "${x}/configure" "${y}"; > ret=$?; > else > if [[ ! -e ${x}/configure && -e ${x}/../configure && -n $(grep 'version_type=freebsd-' "${x}/../configure") ]]; then > ELT_walk_patches "${x}/../configure" "${y}"; > ret=$?; > fi; > fi > ;; > "fbsd-ltconf") > if [[ -s ${x}/ltconfig ]]; then > ELT_walk_patches "${x}/ltconfig" "${y}"; > ret=$?; > fi > ;; > "darwin-ltconf") > if [[ -s ${x}/ltconfig ]]; then > ELT_walk_patches "${x}/ltconfig" "${y}"; > ret=$?; > fi > ;; > "install-sh") > ELT_walk_patches "${x}/install-sh" "${y}"; > ret=$? > ;; > *) > ELT_walk_patches "${x}/ltmain.sh" "${y}"; > ret=$? > ;; > esac; > if [[ ${ret} -ne 0 ]]; then > case ${y} in > "relink") > local version=$(ELT_libtool_version "${x}/ltmain.sh"); > if [[ -z $(grep 'inst_prefix_dir' "${x}/ltmain.sh") && $(VER_to_int "${version}") -ge $(VER_to_int "1.4.0") ]]; then > ewarn " Could not apply relink.patch!"; > fi > ;; > "portage") > if [[ ${do_portage} == "yes" ]]; then > if [[ -z $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then > echo; > eerror "Portage patch requested, but failed to apply!"; > eerror "Please bug azarah or vapier to add proper patch."; > die "Portage patch requested, but failed to apply!"; > fi; > else > if [[ -n $(grep 'We do not want portage' "${x}/ltmain.sh") ]]; then > :; > else > local version=$( eval $(grep -e '^[[:space:]]*VERSION=' "${x}/ltmain.sh"); echo "${VERSION}"); > echo; > eerror "Portage patch failed to apply (ltmain.sh version ${version})!"; > eerror "Please bug azarah or vapier to add proper patch."; > die "Portage patch failed to apply!"; > fi; > ELT_APPLIED_PATCHES="portage"; > fi > ;; > "uclibc-"*) > [[ ${CHOST} == *"-uclibc" ]] && ewarn " uClibc patch set '${y}' failed to apply!" > ;; > "fbsd-"*) > if [[ ${CHOST} == *"-freebsd"* ]]; then > if [[ -z $(grep 'Handle Gentoo/FreeBSD as it was Linux' "${x}/configure" "${x}/../configure" 2>/dev/null) ]]; then > eerror " FreeBSD patch set '${y}' failed to apply!"; > die "FreeBSD patch set '${y}' failed to apply!"; > fi; > fi > ;; > "darwin-"*) > [[ ${CHOST} == *"-darwin"* ]] && ewarn " Darwin patch set '${y}' failed to apply!" > ;; > esac; > fi; > done; > if [[ -z ${ELT_APPLIED_PATCHES} ]]; then > if [[ ${do_portage} == "no" && ${do_reversedeps} == "no" && ${do_only_patches} == "no" && ${deptoremove} == "" ]]; then > ewarn "Cannot apply any patches, please file a bug about this"; > die; > fi; > fi; > [[ -f ${x}/libtool ]] && rm -f "${x}/libtool"; > touch "${x}/.elibtoolized"; > done; > cd "${start_dir}" >} >emktemp () >{ > local exe="touch"; > [[ $1 == -d ]] && exe="mkdir" && shift; > local topdir=$1; > if [[ -z ${topdir} ]]; then > [[ -z ${T} ]] && topdir="/tmp" || topdir=${T}; > fi; > if ! type -P mktemp > /dev/null; then > local tmp=/; > while [[ -e ${tmp} ]]; do > tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM}; > done; > ${exe} "${tmp}" || ${exe} -p "${tmp}"; > echo "${tmp}"; > else > if [[ ${exe} == "touch" ]]; then > TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX; > else > TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX; > fi; > fi >} >enewgroup () >{ > case ${EBUILD_PHASE} in > unpack | compile | test | install) > eerror "'enewgroup()' called from '${EBUILD_PHASE}()' which is not a pkg_* function."; > eerror "Package fails at QA and at life. Please file a bug."; > 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 ${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 ${opts} ${euser} -c "added by portage for ${PN}" || die "enewuser failed"; > else > einfo " - Extra: $@"; > useradd ${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//?/=}" > }; > function _epatch_assert () > { > local _pipestatus=${PIPESTATUS[*]}; > [[ ${_pipestatus// /} -eq 0 ]] > }; > local PIPE_CMD=""; > local STDERR_TARGET="${T}/$$.out"; > local PATCH_TARGET="${T}/$$.patch"; > local PATCH_SUFFIX=""; > local SINGLE_PATCH="no"; > local x=""; > unset P4CONFIG P4PORT P4USER; > if [ "$#" -gt 1 ]; then > local m=""; > for m in "$@"; > do > epatch "${m}"; > done; > return 0; > fi; > if [ -n "$1" -a -f "$1" ]; then > SINGLE_PATCH="yes"; > local EPATCH_SOURCE="$1"; > local EPATCH_SUFFIX="${1##*\.}"; > else > if [ -n "$1" -a -d "$1" ]; then > if [ "${EPATCH_FORCE}" = "yes" ] && [ -z "${EPATCH_SUFFIX}" ]; then > local EPATCH_SOURCE="$1/*"; > else > local EPATCH_SOURCE="$1/*.${EPATCH_SUFFIX}"; > fi; > else > if [[ ! -d ${EPATCH_SOURCE} ]] || [[ -n $1 ]]; then > if [ -n "$1" -a "${EPATCH_SOURCE}" = "${WORKDIR}/patch" ]; then > EPATCH_SOURCE="$1"; > fi; > echo; > eerror "Cannot find \$EPATCH_SOURCE! Value for \$EPATCH_SOURCE is:"; > eerror; > eerror " ${EPATCH_SOURCE}"; > eerror " ( ${EPATCH_SOURCE##*/} )"; > echo; > die "Cannot find \$EPATCH_SOURCE!"; > fi; > local EPATCH_SOURCE="${EPATCH_SOURCE}/*.${EPATCH_SUFFIX}"; > fi; > fi; > case ${EPATCH_SUFFIX##*\.} in > bz2) > PIPE_CMD="bzip2 -dc"; > PATCH_SUFFIX="bz2" > ;; > gz | Z | z) > PIPE_CMD="gzip -dc"; > PATCH_SUFFIX="gz" > ;; > ZIP | zip) > PIPE_CMD="unzip -p"; > PATCH_SUFFIX="zip" > ;; > *) > PIPE_CMD="cat"; > PATCH_SUFFIX="patch" > ;; > esac; > if [ "${SINGLE_PATCH}" = "no" ]; then > einfo "${EPATCH_MULTI_MSG}"; > fi; > for x in ${EPATCH_SOURCE}; > do > if [ -f ${x} ] && ( [ "${SINGLE_PATCH}" = "yes" -o "${x/_all_}" != "${x}" -o "${x/_${ARCH}_}" != "${x}" ] || [ "${EPATCH_FORCE}" = "yes" ] ); then > local count=0; > local popts="${EPATCH_OPTS}"; > local patchname=${x##*/}; > if [ -n "${EPATCH_EXCLUDE}" ]; then > if [ "${EPATCH_EXCLUDE/${patchname}}" != "${EPATCH_EXCLUDE}" ]; then > continue; > fi; > fi; > if [ "${SINGLE_PATCH}" = "yes" ]; then > if [ -n "${EPATCH_SINGLE_MSG}" ]; then > einfo "${EPATCH_SINGLE_MSG}"; > else > einfo "Applying ${patchname} ..."; > fi; > else > einfo " ${patchname} ..."; > fi; > echo "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > while [ "${count}" -lt 5 ]; do > _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > echo -n "PIPE_COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo "${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > else > PATCH_TARGET="${x}"; > fi; > echo -n "PATCH COMMAND: " >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo "patch -p${count} ${popts} < ${PATCH_TARGET}" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > if ! ( ${PIPE_CMD} ${x} > ${PATCH_TARGET} ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then > echo; > eerror "Could not extract patch!"; > count=5; > break; > fi; > fi; > if ( cat ${PATCH_TARGET} | patch -p${count} ${popts} --dry-run -f; > _epatch_assert ) >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/} 2>&1; then > _epatch_draw_line "***** ${patchname} *****" > ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo "ACTUALLY APPLYING ${patchname} ..." >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > echo >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > _epatch_draw_line "***** ${patchname} *****" >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > cat ${PATCH_TARGET} | patch -p${count} ${popts} >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real 2>&1; > _epatch_assert; > if [ "$?" -ne 0 ]; then > cat ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real >> ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > echo; > eerror "A dry-run of patch command succeeded, but actually"; > eerror "applying the patch failed!"; > count=5; > fi; > rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}.real; > break; > fi; > count=$((count + 1)); > done; > if [ "${PATCH_SUFFIX}" != "patch" ]; then > rm -f ${PATCH_TARGET}; > fi; > if [ "${count}" -eq 5 ]; then > echo; > eerror "Failed Patch: ${patchname} !"; > eerror " ( ${PATCH_TARGET} )"; > eerror; > eerror "Include in your bugreport the contents of:"; > eerror; > eerror " ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}"; > echo; > die "Failed Patch: ${patchname}!"; > fi; > rm -f ${STDERR_TARGET%/*}/${patchname}-${STDERR_TARGET##*/}; > eend 0; > fi; > done; > if [ "${SINGLE_PATCH}" = "no" ]; then > einfo "Done with patching"; > fi >} >epause () >{ > [[ -z ${EPAUSE_IGNORE} ]] && sleep ${1:-5} >} >epunt_cxx () >{ > local dir=$1; > [[ -z ${dir} ]] && dir=${S}; > ebegin "Removing useless C++ checks"; > local f; > 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 >} >esvn_clean () >{ > [[ -z $* ]] && set -- .; > find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf >} >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 () >{ > $(tc-getCC "$@") -dumpversion >} >gcc-major-version () >{ > gcc-version "$@" | cut -f1 -d. >} >gcc-micro-version () >{ > gcc-fullversion "$@" | cut -f3 -d. | cut -f1 -d- >} >gcc-minor-version () >{ > gcc-version "$@" | cut -f2 -d. >} >gcc-specs-directive () >{ > local directive subdname subdirective; > directive="$(_gcc-specs-directive_raw $1)"; > while [[ ${directive} == *%\(*\)* ]]; do > subdname=${directive/*%\(}; > subdname=${subdname/\)*}; > subdirective="$(_gcc-specs-directive_raw ${subdname})"; > directive="${directive//\%(${subdname})/${subdirective}}"; > done; > echo "${directive}"; > return 0 >} >gcc-specs-now () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ ${directive/\{!nonow:} != ${directive} ]]) >} >gcc-specs-pie () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ ${directive/\{!nopie:} != ${directive} ]]) >} >gcc-specs-relro () >{ > local directive; > directive=$(gcc-specs-directive link_command); > return $([[ ${directive/\{!norelro:} != ${directive} ]]) >} >gcc-specs-ssp () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ ${directive/\{!fno-stack-protector:} != ${directive} ]]) >} >gcc-specs-ssp-to-all () >{ > local directive; > directive=$(gcc-specs-directive cc1); > return $([[ ${directive/\{!fno-stack-protector-all:} != ${directive} ]]) >} >gcc-version () >{ > gcc-fullversion "$@" | cut -f1,2 -d. >} >gen_usr_ldscript () >{ > local lib libdir=$(get_libdir) output_format=""; > dodir /usr/${libdir}; > output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p'); > [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )"; > for lib in "$@"; > do > if [[ ${USERLAND} == "Darwin" ]]; then > ewarn "Not creating fake dynamic library for $lib on Darwin;"; > ewarn "making a symlink instead."; > dosym "/${libdir}/${lib}" "/usr/${libdir}/${lib}"; > else > cat > "${D}/usr/${libdir}/${lib}" <<-END_LDSCRIPT >/* GNU ld script > Since Gentoo has critical dynamic libraries > in /lib, and the static versions in /usr/lib, > we need to have a "fake" dynamic lib in /usr/lib, > otherwise we run into linking problems. > > See bug http://bugs.gentoo.org/4411 for more info. > */ >${output_format} >GROUP ( /${libdir}/${lib} ) >END_LDSCRIPT > > fi > fperms a+x "/usr/${libdir}/${lib}" || 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 () >{ > __versionator_shopt_toggle on; > echo $(get_version_component_range 2- "${1:-${PV}}" ); > __versionator_shopt_toggle off >} >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 () >{ > __versionator_shopt_toggle on; > local ver_str=${1:-${PV}} result result_idx=0; > result=(); > if [[ "${VERSIONATOR_CACHE_VER_STR}" == "${ver_str}" ]]; then > echo ${VERSIONATOR_CACHE_RESULT}; > __versionator_shopt_toggle off; > 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[@]}; > __versionator_shopt_toggle off >} >get_bmake () >{ > if [[ ${USERLAND} == *BSD ]]; then > echo make; > else > if [[ ${USERLAND} == "Darwin" ]]; then > echo bsdmake; > else > echo pmake; > fi; > fi >} >get_install_abis () >{ > local order=""; > if [[ -z ${MULTILIB_ABIS} ]]; then > echo "default"; > return 0; > fi; > if [[ ${EMULTILIB_PKG} == "true" ]]; then > for x in ${MULTILIB_ABIS}; > do > if [[ ${x} != "${DEFAULT_ABI}" ]]; then > hasq ${x} ${ABI_DENY} || ordera="${ordera} ${x}"; > fi; > done; > hasq ${DEFAULT_ABI} ${ABI_DENY} || order="${ordera} ${DEFAULT_ABI}"; > if [[ -n ${ABI_ALLOW} ]]; then > local ordera=""; > for x in ${order}; > do > if hasq ${x} ${ABI_ALLOW}; then > ordera="${ordera} ${x}"; > fi; > done; > order=${ordera}; > fi; > else > order=${DEFAULT_ABI}; > fi; > if [[ -z ${order} ]]; then > 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 () >{ > __versionator_shopt_toggle on; > echo $(( $(get_version_component_count "${1:-${PV}}" ) - 1 )); > __versionator_shopt_toggle off >} >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 > mingw* | *-mingw*) > libname="dll" > ;; > *-darwin*) > libname="dylib" > ;; > *) > libname="so" > ;; > esac; > if [[ -z $* ]]; then > echo ".${libname}"; > else > for ver in "$@"; > do > case ${CHOST} in > *-darwin*) > echo ".${ver}.${libname}" > ;; > *) > echo ".${libname}.${ver}" > ;; > esac; > done; > fi >} >get_major_version () >{ > __versionator_shopt_toggle on; > local c; > c=($(get_all_version_components "${1:-${PV}}" )); > echo ${c[0]}; > __versionator_shopt_toggle off >} >get_ml_incdir () >{ > local dir=/usr/include; > if [[ $# -gt 0 ]]; then > incdir=$1; > shift; > fi; > if [[ -z "${MULTILIB_ABIS}" ]]; then > echo ${incdir}; > return 0; > fi; > local abi=${ABI-${DEFAULT_ABI}}; > if [[ $# -gt 0 ]]; then > abi=$1; > shift; > fi; > if [[ -d "${dir}/gentoo-multilib/${abi}" ]]; then > echo ${dir}/gentoo-multilib/${abi}; > else > echo ${dir}; > fi >} >get_mounts () >{ > local point= node= fs= opts= foo=; > if [[ $(uname -s) == "Linux" ]]; then > while read node point fs opts foo; do > echo "${point} ${node} ${fs} ${opts}"; > done < /proc/mounts; > return; > fi; > local IFS=' '; > LC_ALL=C mount -p | while read node point fs foo; do > opts=${fs#* }; > fs=${fs%% *}; > echo "${point// /\040} ${node// /\040} ${fs%% *} ${opts// /\040}"; > done >} >get_multilibdir () >{ > if has_multilib_profile; then > eerror "get_multilibdir called, but it shouldn't be needed with the new multilib approach. Please file a bug at http://bugs.gentoo.org and assign it to eradicator@gentoo.org"; > exit 1; > fi; > echo ${CONF_MULTILIBDIR:=lib32} >} >get_version_component_count () >{ > __versionator_shopt_toggle on; > local a; > a=($(get_version_components "${1:-${PV}}" )); > echo ${#a[@]}; > __versionator_shopt_toggle off >} >get_version_component_range () >{ > __versionator_shopt_toggle on; > 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[@]} ]] && __versionator_shopt_toggle off && return; > [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1)); > done; > while (( j <= ${range_end} )); do > echo -n ${c[$i]}; > [[ $i -gt ${#c[@]} ]] && __versionator_shopt_toggle off && return; > [[ -n "${c[${i}]//[-._]}" ]] && j=$(($j + 1)); > i=$(($i + 1)); > done; > __versionator_shopt_toggle off >} >get_version_components () >{ > __versionator_shopt_toggle on; > local c="$(get_all_version_components "${1:-${PV}}")"; > c=(${c[@]//[-._]/ }); > echo ${c[@]}; > __versionator_shopt_toggle off >} >has_apache () >{ > debug-print-function $FUNCNAME $*; > if has_version '>=www-servers/apache-2'; then > _init_apache2; > else > _init_no_apache; > fi >} >has_apache_threads () >{ > debug-print-function $FUNCNAME $*; > if ! built_with_use www-servers/apache threads; then > return; > fi; > local myflag="${1:-threads}"; > if ! use ${myflag}; then > echo; > eerror "You need to enable USE flag '${myflag}' to build a thread-safe version"; > eerror "of ${CATEGORY}/${PN} for use with www-servers/apache"; > die "Need missing USE flag '${myflag}'"; > fi >} >has_apache_threads_in () >{ > debug-print-function $FUNCNAME $*; > if ! built_with_use www-servers/apache threads; then > return; > fi; > local myforeign="$1"; > local myflag="${2:-threads}"; > if ! built_with_use ${myforeign} ${myflag}; then > echo; > eerror "You need to enable USE flag '${myflag}' in ${myforeign} to"; > eerror "build a thread-safe version of ${CATEGORY}/${PN} for use"; > eerror "with www-servers/apache"; > die "Need missing USE flag '${myflag}' in ${myforeign}"; > fi >} >has_hardened () >{ > ewarn "has_hardened: deprecated, please use gcc-specs-{relro,now}()!" 1>&2; > test_version_info Hardened && return 0; > [[ -f ${GCC_SPECS} && ${GCC_SPECS} != ${GCC_SPECS/hardened/} ]] >} >has_m32 () >{ > [ "$(tc-arch)" = "amd64" ] && has_multilib_profile && return 0; > local temp=$(emktemp); > echo "int main() { return(0); }" > "${temp}".c; > MY_CC=$(tc-getCC); > ${MY_CC/ .*/} -m32 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1; > local ret=$?; > rm -f "${temp}".c; > [[ ${ret} != 1 ]] && return 0; > return 1 >} >has_m64 () >{ > local temp="$(emktemp)"; > echo "int main() { return(0); }" > "${temp}".c; > MY_CC=$(tc-getCC); > ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1; > local ret=$?; > rm -f "${temp}".c; > [[ ${ret} != 1 ]] && return 0; > return 1 >} >has_multilib_profile () >{ > [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ] >} >has_pic () >{ > ewarn "has_pic: deprecated, please use gcc-specs-pie()!" 1>&2; > [[ ${CFLAGS/-fPIC} != ${CFLAGS} || ${CFLAGS/-fpic} != ${CFLAGS} ]] || gcc-specs-pie >} >has_pie () >{ > ewarn "has_pie: deprecated, please use gcc-specs-pie()!" 1>&2; > [[ ${CFLAGS/-fPIE} != ${CFLAGS} || ${CFLAGS/-fpie} != ${CFLAGS} ]] || gcc-specs-pie >} >has_ssp () >{ > ewarn "has_ssp: deprecated, please use gcc-specs-ssp()!" 1>&2; > [[ ${CFLAGS/-fstack-protector} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP__) ]] || gcc-specs-ssp >} >has_ssp_all () >{ > ewarn "has_ssp_all: deprecated, please use gcc-specs-ssp()!" 1>&2; > [[ ${CFLAGS/-fstack-protector-all} != ${CFLAGS} || -n $(echo | $(tc-getCC) ${CFLAGS} -E -dM - | grep __SSP_ALL__) ]] || gcc-specs-ssp-all >} >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-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} ]] >} >make_desktop_entry () >{ > [[ -z $1 ]] && eerror "make_desktop_entry: You must specify the executable" && return 1; > local exec=${1}; > local name=${2:-${PN}}; > local icon=${3:-${PN}}; > local type=${4}; > local path=${5}; > if [[ -z ${type} ]]; then > local catmaj=${CATEGORY%%-*}; > local catmin=${CATEGORY##*-}; > case ${catmaj} in > app) > case ${catmin} in > accessibility) > type=Accessibility > ;; > admin) > type=System > ;; > antivirus) > type=System > ;; > arch) > type=Archiving > ;; > backup) > type=Archiving > ;; > cdr) > type=DiscBurning > ;; > dicts) > type=Dictionary > ;; > doc) > type=Documentation > ;; > editors) > type=TextEditor > ;; > emacs) > type=TextEditor > ;; > emulation) > type=Emulator > ;; > laptop) > type=HardwareSettings > ;; > office) > type=Office > ;; > pda) > type=PDA > ;; > vim) > type=TextEditor > ;; > xemacs) > type=TextEditor > ;; > *) > type= > ;; > esac > ;; > dev) > type="Development" > ;; > games) > case ${catmin} in > action | fps) > type=ActionGame > ;; > arcade) > type=ArcadeGame > ;; > board) > type=BoardGame > ;; > emulation) > type=Emulator > ;; > kids) > type=KidsGame > ;; > puzzle) > type=LogicGame > ;; > roguelike) > type=RolePlaying > ;; > rpg) > type=RolePlaying > ;; > simulation) > type=Simulation > ;; > sports) > type=SportsGame > ;; > strategy) > type=StrategyGame > ;; > *) > type= > ;; > esac; > type="Game;${type}" > ;; > gnome) > type="Gnome;GTK" > ;; > kde) > type="KDE;Qt" > ;; > mail) > type="Network;Email" > ;; > media) > case ${catmin} in > gfx) > type=Graphics > ;; > radio) > type=Tuner > ;; > sound) > type=Audio > ;; > tv) > type=TV > ;; > video) > type=Video > ;; > *) > type= > ;; > esac; > type="AudioVideo;${type}" > ;; > net) > case ${catmin} in > dialup) > type=Dialup > ;; > ftp) > type=FileTransfer > ;; > im) > type=InstantMessaging > ;; > irc) > type=IRCClient > ;; > mail) > type=Email > ;; > news) > type=News > ;; > nntp) > type=News > ;; > p2p) > type=FileTransfer > ;; > *) > type= > ;; > esac; > type="Network;${type}" > ;; > sci) > case ${catmin} in > astro*) > type=Astronomy > ;; > bio*) > type=Biology > ;; > calc*) > type=Calculator > ;; > chem*) > type=Chemistry > ;; > elec*) > type=Electronics > ;; > geo*) > type=Geology > ;; > math*) > type=Math > ;; > physics) > type=Physics > ;; > visual*) > type=DataVisualization > ;; > *) > type= > ;; > esac; > type="Science;${type}" > ;; > sys) > type="System" > ;; > www) > case ${catmin} in > client) > type=WebBrowser > ;; > *) > type= > ;; > esac; > type="Network" > ;; > *) > type= > ;; > esac; > fi; > if [ "${SLOT}" == "0" ]; then > local desktop_name="${PN}"; > else > local desktop_name="${PN}-${SLOT}"; > fi; > local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop"; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Version=1.0 >Name=${name} >Type=Application >Comment=${DESCRIPTION} >Exec=${exec} >TryExec=${exec%% *} >Icon=${icon} >Categories=${type}; >EOF > > [[ -n ${path} ]] && echo "Path=${path}" >> "${desktop}"; > ( insinto /usr/share/applications; > doins "${desktop}" ) >} >make_session_desktop () >{ > [[ -z $1 ]] && eerror "make_session_desktop: You must specify the title" && return 1; > [[ -z $2 ]] && eerror "make_session_desktop: You must specify the command" && return 1; > local title=$1; > local command=$2; > local desktop=${T}/${wm}.desktop; > cat > "${desktop}" <<-EOF >[Desktop Entry] >Name=${title} >Comment=This session logs you into ${title} >Exec=${command} >TryExec=${command} >Type=Application >EOF > > ( insinto /usr/share/xsessions; > doins "${desktop}" ) >} >make_wrapper () >{ > local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5; > local tmpwrapper=$(emktemp); > cat > "${tmpwrapper}" <<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 >} >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 () >{ > export ABI=$1; > if has_version app-admin/eselect-compiler; then > export LD="ld $(get_abi_LDFLAGS $1)"; > export AS="as $(get_abi_ASFLAGS $1)"; > export CHOST=$(get_abi_CHOST $1); > export CBUILD=$(get_abi_CHOST $1); > else > tc-export CC; > fi >} >need_apache () >{ > debug-print-function $FUNCNAME $*; > need_apache2 >} >need_apache2 () >{ > debug-print-function $FUNCNAME $*; > DEPEND="${DEPEND} ${APACHE2_DEPEND}"; > RDEPEND="${RDEPEND} ${APACHE2_DEPEND}"; > _init_apache2 >} >need_apache2_2 () >{ > debug-print-function $FUNCNAME $*; > DEPEND="${DEPEND} ${APACHE2_2_DEPEND}"; > RDEPEND="${RDEPEND} ${APACHE2_2_DEPEND}"; > _init_apache2 >} >newicon () >{ > ( insinto /usr/share/pixmaps; > newins "$@" ) >} >newmenu () >{ > ( insinto /usr/share/applications; > newins "$@" ) >} >number_abis () >{ > get_install_abis | wc -w >} >php5_2-sapi_check_use_flags () >{ > phpconfutils_use_depend_any "truetype" "gd" "gd" "gd-external"; > phpconfutils_use_depend_any "cjk" "gd" "gd" "gd-external"; > phpconfutils_use_depend_any "exif" "gd" "gd" "gd-external"; > phpconfutils_use_depend_all "xpm" "gd"; > phpconfutils_use_depend_all "gd" "zlib"; > phpconfutils_use_depend_all "simplexml" "xml"; > phpconfutils_use_depend_all "soap" "xml"; > phpconfutils_use_depend_all "wddx" "xml"; > phpconfutils_use_depend_all "xmlrpc" "xml"; > phpconfutils_use_depend_all "xmlreader" "xml"; > phpconfutils_use_depend_all "xmlwriter" "xml"; > phpconfutils_use_depend_all "xsl" "xml"; > phpconfutils_use_depend_all "filter" "pcre"; > phpconfutils_use_depend_all "xmlrpc" "iconv"; > phpconfutils_use_depend_all "java-external" "session"; > phpconfutils_use_depend_all "ldap-sasl" "ldap"; > phpconfutils_use_depend_all "mcve" "ssl"; > phpconfutils_use_depend_all "suhosin" "unicode"; > phpconfutils_use_depend_all "adabas" "odbc"; > phpconfutils_use_depend_all "birdstep" "odbc"; > phpconfutils_use_depend_all "dbmaker" "odbc"; > phpconfutils_use_depend_all "empress-bcs" "odbc" "empress"; > phpconfutils_use_depend_all "empress" "odbc"; > phpconfutils_use_depend_all "esoob" "odbc"; > phpconfutils_use_depend_all "db2" "odbc"; > phpconfutils_use_depend_all "iodbc" "odbc"; > phpconfutils_use_depend_all "sapdb" "odbc"; > phpconfutils_use_depend_all "solid" "odbc"; > phpconfutils_use_depend_all "kolab" "imap"; > phpconfutils_use_conflict "gd" "gd-external"; > phpconfutils_use_conflict "oci8" "oci8-instant-client"; > phpconfutils_use_conflict "oci8" "ldap-sasl"; > phpconfutils_use_conflict "zip" "zip-external"; > phpconfutils_use_conflict "qdbm" "gdbm"; > phpconfutils_use_conflict "readline" "libedit"; > phpconfutils_use_conflict "recode" "mysql" "imap" "yaz" "kolab"; > phpconfutils_use_conflict "sharedmem" "threads"; > phpconfutils_use_conflict "firebird" "interbase"; > php_check_imap; > php_check_mta; > php_check_pgsql; > php_check_oracle_8; > phpconfutils_warn_about_external_deps; > export PHPCONFUTILS_AUTO_USE="${PHPCONFUTILS_AUTO_USE}" >} >php5_2-sapi_install_ini () >{ > destdir=/usr/$(get_libdir)/php5; > [[ -z "${PHPEXTDIR}" ]] && PHPEXTDIR="`"${D}/${destdir}/bin/php-config" --extension-dir`"; > php5_2-sapi_set_php_ini_dir; > cp "${PHP_INI_UPSTREAM}" "${PHP_INI_UPSTREAM}-${PHPSAPI}"; > local phpinisrc="${PHP_INI_UPSTREAM}-${PHPSAPI}"; > einfo "Setting extension_dir in php.ini"; > sed -e "s|^extension_dir .*$|extension_dir = ${PHPEXTDIR}|g" -i ${phpinisrc}; > einfo "Securing fopen wrappers"; > sed -e 's|^allow_url_fopen .*|allow_url_fopen = Off|g' -i ${phpinisrc}; > einfo "Setting correct include_path"; > sed -e 's|^;include_path = ".:/php/includes".*|include_path = ".:/usr/share/php5:/usr/share/php"|' -i ${phpinisrc}; > local phpmycnfcharset=""; > if [[ "${PHPSAPI}" == "cli" ]]; then > phpmycnfcharset="`php_get_mycnf_charset cli`"; > einfo "MySQL extensions charset for 'cli' SAPI is: ${phpmycnfcharset}"; > else > if [[ "${PHPSAPI}" == "cgi" ]]; then > phpmycnfcharset="`php_get_mycnf_charset cgi-fcgi`"; > einfo "MySQL extensions charset for 'cgi' SAPI is: ${phpmycnfcharset}"; > else > if [[ "${PHPSAPI}" == "apache2" ]]; then > phpmycnfcharset="`php_get_mycnf_charset apache2handler`"; > einfo "MySQL extensions charset for 'apache2' SAPI is: ${phpmycnfcharset}"; > else > einfo "No supported SAPI found for which to get the MySQL charset."; > fi; > fi; > fi; > if [[ -n "${phpmycnfcharset}" ]] && [[ "${phpmycnfcharset}" != "empty" ]]; then > einfo "Setting MySQL extensions charset to ${phpmycnfcharset}"; > echo "" >> ${phpinisrc}; > echo "; MySQL extensions default connection charset settings" >> ${phpinisrc}; > echo "mysql.connect_charset = ${phpmycnfcharset}" >> ${phpinisrc}; > echo "mysqli.connect_charset = ${phpmycnfcharset}" >> ${phpinisrc}; > echo "pdo_mysql.connect_charset = ${phpmycnfcharset}" >> ${phpinisrc}; > else > echo "" >> ${phpinisrc}; > echo "; MySQL extensions default connection charset settings" >> ${phpinisrc}; > echo ";mysql.connect_charset = utf8" >> ${phpinisrc}; > echo ";mysqli.connect_charset = utf8" >> ${phpinisrc}; > echo ";pdo_mysql.connect_charset = utf8" >> ${phpinisrc}; > fi; > dodir ${PHP_INI_DIR}; > insinto ${PHP_INI_DIR}; > newins ${phpinisrc} ${PHP_INI_FILE}; > dodir ${PHP_EXT_INI_DIR}; > dodir ${PHP_EXT_INI_DIR_ACTIVE}; > if use sharedext; then > for x in `ls "${D}/${PHPEXTDIR}/"*.so | sort`; > do > inifilename=${x/.so/.ini}; > inifilename=`basename ${inifilename}`; > echo "extension=`basename ${x}`" >> "${D}/${PHP_EXT_INI_DIR}/${inifilename}"; > dosym "${PHP_EXT_INI_DIR}/${inifilename}" "${PHP_EXT_INI_DIR_ACTIVE}/${inifilename}"; > done; > fi >} >php5_2-sapi_pkg_postinst () >{ > ewarn "If you have additional third party PHP extensions (such as"; > ewarn "dev-php5/phpdbg) you may need to recompile them now."; > ewarn; > if use sharedext; then > ewarn "Make sure to use etc-update or dispatch-conf so that extension-specific"; > ewarn "ini files get merged properly"; > ewarn; > fi; > if has kolab ${IUSE} && use kolab; then > ewarn "Please note that kolab support is still experimental!"; > ewarn "Issues specific to USE=kolab must be reported to Gentoo bugzilla only!"; > ewarn; > ewarn "Kolab groupware server requires annotations support for IMAP, which is enabled"; > ewarn "by a third-party patch. Please do NOT report issues with the imap extension"; > ewarn "to bugs.php.net until you have recompiled both PHP and net-libs/c-client"; > ewarn "with USE=\"-kolab\" and confirmed that those issues still exist!"; > ewarn; > fi; > ewarn "USE=\"pic\" slows down PHP but has to be enabled on setups where TEXTRELs"; > ewarn "are disabled (e.g. when using PaX in the kernel). On hardened profiles this"; > ewarn "USE flag is enabled automatically"; > ewarn >} >php5_2-sapi_pkg_setup () >{ > php5_2-sapi_check_use_flags >} >php5_2-sapi_set_php_ini_dir () >{ > PHP_INI_DIR="/etc/php/${PHPSAPI}-php5"; > PHP_EXT_INI_DIR="${PHP_INI_DIR}/ext"; > PHP_EXT_INI_DIR_ACTIVE="${PHP_INI_DIR}/ext-active" >} >php5_2-sapi_src_compile () >{ > destdir=/usr/$(get_libdir)/php5; > php5_2-sapi_set_php_ini_dir; > cd "${S}"; > phpconfutils_init; > my_conf="${my_conf} --with-config-file-path=${PHP_INI_DIR} --with-config-file-scan-dir=${PHP_EXT_INI_DIR_ACTIVE} --without-pear"; > phpconfutils_extension_enable "bcmath" "bcmath" 1; > phpconfutils_extension_with "bz2" "bzip2" 1; > phpconfutils_extension_enable "calendar" "calendar" 1; > phpconfutils_extension_disable "ctype" "ctype" 0; > phpconfutils_extension_with "curl" "curl" 1; > phpconfutils_extension_with "curlwrappers" "curlwrappers" 0; > phpconfutils_extension_enable "dbase" "dbase" 1; > phpconfutils_extension_disable "dom" "xml" 0; > phpconfutils_extension_enable "exif" "exif" 1; > phpconfutils_extension_with "fbsql" "frontbase" 1; > phpconfutils_extension_with "fdftk" "fdftk" 1 "/opt/fdftk-6.0"; > phpconfutils_extension_disable "filter" "filter" 0; > phpconfutils_extension_enable "ftp" "ftp" 1; > phpconfutils_extension_with "gettext" "nls" 1; > phpconfutils_extension_with "gmp" "gmp" 1; > phpconfutils_extension_disable "hash" "hash" 0; > phpconfutils_extension_without "iconv" "iconv" 0; > phpconfutils_extension_disable "ipv6" "ipv6" 0; > phpconfutils_extension_disable "json" "json" 0; > phpconfutils_extension_with "kerberos" "kerberos" 0 "/usr"; > phpconfutils_extension_disable "libxml" "xml" 0; > phpconfutils_extension_enable "mbstring" "unicode" 1; > phpconfutils_extension_with "mcrypt" "crypt" 1; > phpconfutils_extension_with "mhash" "mhash" 1; > phpconfutils_extension_with "msql" "msql" 1; > phpconfutils_extension_with "mssql" "mssql" 1; > phpconfutils_extension_with "ncurses" "ncurses" 1; > phpconfutils_extension_with "openssl" "ssl" 0; > phpconfutils_extension_with "openssl-dir" "ssl" 0 "/usr"; > phpconfutils_extension_enable "pcntl" "pcntl" 1; > phpconfutils_extension_without "pcre-regex" "pcre" 0; > phpconfutils_extension_disable "pdo" "pdo" 0; > phpconfutils_extension_with "pgsql" "postgres" 1; > phpconfutils_extension_disable "posix" "posix" 0; > phpconfutils_extension_with "pspell" "spell" 1; > phpconfutils_extension_with "recode" "recode" 1; > phpconfutils_extension_disable "reflection" "reflection" 0; > phpconfutils_extension_disable "simplexml" "simplexml" 0; > phpconfutils_extension_enable "shmop" "sharedmem" 0; > phpconfutils_extension_with "snmp" "snmp" 1; > phpconfutils_extension_enable "soap" "soap" 1; > phpconfutils_extension_enable "sockets" "sockets" 1; > phpconfutils_extension_disable "spl" "spl" 0; > phpconfutils_extension_with "sybase" "sybase" 1; > phpconfutils_extension_with "sybase-ct" "sybase-ct" 1; > phpconfutils_extension_enable "sysvmsg" "sysvipc" 1; > phpconfutils_extension_enable "sysvsem" "sysvipc" 1; > phpconfutils_extension_enable "sysvshm" "sysvipc" 1; > phpconfutils_extension_with "tidy" "tidy" 1; > phpconfutils_extension_disable "tokenizer" "tokenizer" 0; > phpconfutils_extension_enable "wddx" "wddx" 1; > phpconfutils_extension_disable "xml" "xml" 0; > phpconfutils_extension_disable "xmlreader" "xmlreader" 0; > phpconfutils_extension_disable "xmlwriter" "xmlwriter" 0; > phpconfutils_extension_with "xmlrpc" "xmlrpc" 1; > phpconfutils_extension_with "xsl" "xsl" 1; > phpconfutils_extension_enable "zip" "zip" 1; > phpconfutils_extension_with "zlib" "zlib" 1; > phpconfutils_extension_enable "debug" "debug" 0; > if use cdb || use berkdb || use flatfile || use gdbm || use inifile || use qdbm; then > my_conf="${my_conf} --enable-dba${shared}"; > fi; > phpconfutils_extension_with "cdb" "cdb" 0; > phpconfutils_extension_with "db4" "berkdb" 0; > phpconfutils_extension_disable "flatfile" "flatfile" 0; > phpconfutils_extension_with "gdbm" "gdbm" 0; > phpconfutils_extension_disable "inifile" "inifile" 0; > phpconfutils_extension_with "qdbm" "qdbm" 0; > if use gd-external || phpconfutils_usecheck gd-external; then > phpconfutils_extension_with "freetype-dir" "truetype" 0 "/usr"; > phpconfutils_extension_with "t1lib" "truetype" 0 "/usr"; > phpconfutils_extension_enable "gd-jis-conv" "cjk" 0; > phpconfutils_extension_with "gd" "gd-external" 1 "/usr"; > else > phpconfutils_extension_with "freetype-dir" "truetype" 0 "/usr"; > phpconfutils_extension_with "t1lib" "truetype" 0 "/usr"; > phpconfutils_extension_enable "gd-jis-conv" "cjk" 0; > phpconfutils_extension_with "jpeg-dir" "gd" 0 "/usr"; > phpconfutils_extension_with "png-dir" "gd" 0 "/usr"; > phpconfutils_extension_with "xpm-dir" "xpm" 0 "/usr"; > phpconfutils_extension_with "gd" "gd" 0; > fi; > if use imap || phpconfutils_usecheck imap; then > phpconfutils_extension_with "imap" "imap" 1; > phpconfutils_extension_with "imap-ssl" "ssl" 0; > fi; > if use interbase; then > my_conf="${my_conf} --with-interbase=/opt"; > fi; > if use firebird; then > my_conf="${my_conf} --with-interbase=/usr"; > fi; > if use ldap || phpconfutils_usecheck ldap; then > if use oci8; then > phpconfutils_extension_with "ldap" "ldap" 1 "${ORACLE_HOME}"; > else > phpconfutils_extension_with "ldap" "ldap" 1; > phpconfutils_extension_with "ldap-sasl" "ldap-sasl" 0; > fi; > fi; > if use mysql; then > phpconfutils_extension_with "mysql" "mysql" 1 "/usr"; > phpconfutils_extension_with "mysql-sock" "mysql" 0 "/var/run/mysqld/mysqld.sock"; > fi; > phpconfutils_extension_with "mysqli" "mysqli" 1 "/usr/bin/mysql_config"; > if use odbc || phpconfutils_usecheck odbc; then > phpconfutils_extension_with "unixODBC" "odbc" 1 "/usr"; > phpconfutils_extension_with "adabas" "adabas" 1; > phpconfutils_extension_with "birdstep" "birdstep" 1; > phpconfutils_extension_with "dbmaker" "dbmaker" 1; > phpconfutils_extension_with "empress" "empress" 1; > if use empress || phpconfutils_usecheck empress; then > phpconfutils_extension_with "empress-bcs" "empress-bcs" 0; > fi; > phpconfutils_extension_with "esoob" "esoob" 1; > phpconfutils_extension_with "ibm-db2" "db2" 1; > phpconfutils_extension_with "iodbc" "iodbc" 1 "/usr"; > phpconfutils_extension_with "sapdb" "sapdb" 1; > phpconfutils_extension_with "solid" "solid" 1; > fi; > if use oci8; then > phpconfutils_extension_with "oci8" "oci8" 1; > fi; > if use oci8-instant-client; then > OCI8IC_PKG="`best_version dev-db/oracle-instantclient-basic`"; > OCI8IC_PKG="`printf ${OCI8IC_PKG} | sed -e 's|dev-db/oracle-instantclient-basic-||g' | sed -e 's|-r.*||g'`"; > phpconfutils_extension_with "oci8" "oci8-instant-client" 1 "instantclient,/usr/lib/oracle/${OCI8IC_PKG}/client/lib"; > fi; > if use pdo || phpconfutils_usecheck pdo; then > phpconfutils_extension_with "pdo-dblib" "mssql" 1; > phpconfutils_extension_with "pdo-mysql" "mysql" 1 "/usr"; > if use oci8; then > phpconfutils_extension_with "pdo-oci" "oci8" 1; > fi; > if use oci8-instant-client; then > OCI8IC_PKG="`best_version dev-db/oracle-instantclient-basic`"; > OCI8IC_PKG="`printf ${OCI8IC_PKG} | sed -e 's|dev-db/oracle-instantclient-basic-||g' | sed -e 's|-r.*||g'`"; > phpconfutils_extension_with "pdo-oci" "oci8-instant-client" 1 "instantclient,/usr,${OCI8IC_PKG}"; > fi; > phpconfutils_extension_with "pdo-odbc" "odbc" 1 "unixODBC,/usr"; > phpconfutils_extension_with "pdo-pgsql" "postgres" 1; > phpconfutils_extension_with "pdo-sqlite" "sqlite" 1 "/usr"; > fi; > phpconfutils_extension_with "readline" "readline" 0; > phpconfutils_extension_with "libedit" "libedit" 0; > if ! use session && ! phpconfutils_usecheck session; then > phpconfutils_extension_disable "session" "session" 0; > else > phpconfutils_extension_with "mm" "sharedmem" 0; > fi; > if ! use sqlite && ! phpconfutils_usecheck sqlite; then > phpconfutils_extension_without "sqlite" "sqlite" 0; > else > phpconfutils_extension_with "sqlite" "sqlite" 0 "/usr"; > phpconfutils_extension_enable "sqlite-utf8" "unicode" 0; > fi; > if use pic || phpconfutils_usecheck pic; then > einfo "Enabling PIC support"; > my_conf="${my_conf} --with-pic"; > fi; > php_check_cflags; > if [[ $(get_libdir) != lib ]]; then > my_conf="--with-libdir=$(get_libdir) ${my_conf}"; > fi; > [[ -z "${EXTRA_ECONF}" ]] && EXTRA_ECONF=""; > tc-export CC; > ./configure --prefix=${destdir} --host=${CHOST} --mandir=${destdir}/man --infodir=${destdir}/info --sysconfdir=/etc --cache-file=./config.cache ${my_conf} ${EXTRA_ECONF} || die "configure failed"; > emake || die "make failed" >} >php5_2-sapi_src_install () >{ > destdir=/usr/$(get_libdir)/php5; > cd "${S}"; > addpredict /usr/share/snmp/mibs/.index; > make INSTALL_ROOT="${D}" install-build install-headers install-programs || die "make install failed"; > if use unicode || phpconfutils_usecheck unicode; then > dodir ${destdir}/include/php/ext/mbstring; > insinto ${destdir}/include/php/ext/mbstring; > for x in `ls "${S}/ext/mbstring/"*.h`; > do > file=`basename ${x}`; > doins ext/mbstring/${file}; > done; > dodir ${destdir}/include/php/ext/mbstring/oniguruma; > insinto ${destdir}/include/php/ext/mbstring/oniguruma; > for x in `ls "${S}/ext/mbstring/oniguruma/"*.h`; > do > file=`basename ${x}`; > doins ext/mbstring/oniguruma/${file}; > done; > dodir ${destdir}/include/php/ext/mbstring/libmbfl/mbfl; > insinto ${destdir}/include/php/ext/mbstring/libmbfl/mbfl; > for x in `ls "${S}/ext/mbstring/libmbfl/mbfl/"*.h`; > do > file=`basename ${x}`; > doins ext/mbstring/libmbfl/mbfl/${file}; > done; > fi; > [[ -z "${PHPEXTDIR}" ]] && PHPEXTDIR="`"${D}/${destdir}/bin/php-config" --extension-dir`"; > if use sharedext; then > for x in `ls "${S}/modules/"*.so | sort`; > do > module=`basename ${x}`; > modulename=${module/.so/}; > insinto "${PHPEXTDIR}"; > einfo "Installing PHP ${modulename} extension"; > doins "modules/${module}"; > done; > fi; > phpconfutils_generate_usefile; > keepdir /usr/share/php5 >} >php5_2-sapi_src_unpack () >{ > cd "${S}"; > [[ -z "${PHP_EXTRA_BRANDING}" ]] && PHP_EXTRA_BRANDING=""; > PHPPR=${PR/r/}; > sed -re "s|^(PHP_)?EXTRA_VERSION=\".*\"|\1EXTRA_VERSION=\"${PHP_EXTRA_BRANDING}-pl${PHPPR}-gentoo\"|g" -i configure.in || die "Unable to change PHP branding to ${PHP_EXTRA_BRANDING}-pl${PHPPR}-gentoo"; > if [[ -n "${MULTILIB_PATCH}" ]] && [[ -f "${WORKDIR}/${MULTILIB_PATCH}" ]]; then > epatch "${WORKDIR}/${MULTILIB_PATCH}"; > else > ewarn "There is no multilib-strict patch available for this PHP release yet!"; > fi; > if [[ -d "${WORKDIR}/${MY_PHP_PV}/php5" ]]; then > EPATCH_SOURCE="${WORKDIR}/${MY_PHP_PV}/php5" EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" epatch; > fi; > if [[ -d "${WORKDIR}/${MY_PHP_PV}/${MY_PHP_PV}" ]]; then > EPATCH_SOURCE="${WORKDIR}/${MY_PHP_PV}/${MY_PHP_PV}" EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" epatch; > fi; > sed -e "s/PHP_UNAME=\`uname -a | xargs\`/PHP_UNAME=\`uname -s -n -r -v | xargs\`/g" -i configure.in || die "Failed to fix server platform name"; > sed -e 's/'`echo "\!getenv('NO_INTERACTION')"`'/false/g' -i run-tests.php; > for i in configure sapi/apache2filter/config.m4 sapi/apache2handler/config.m4; > do > sed -i.orig -e 's,-i -a -n php5,-i -n php5,g' ${i}; > sed -i.orig -e 's,-i -A -n php5,-i -n php5,g' ${i}; > done; > if has_version "app-crypt/heimdal"; then > sed -e 's|gssapi_krb5|gssapi|g' -i acinclude.m4 || die "Failed to fix heimdal libname"; > sed -e 's|PHP_ADD_LIBRARY(k5crypto, 1, $1)||g' -i acinclude.m4 || die "Failed to fix heimdal crypt library reference"; > fi; > if use postgres; then > sed -e 's|include/postgresql|include/postgresql include/postgresql/pgsql|g' -i ext/pgsql/config.m4 || die "Failed to fix PostgreSQL include paths"; > fi; > if use suhosin; then > if [[ -n "${SUHOSIN_PATCH}" ]] && [[ -f "${DISTDIR}/${SUHOSIN_PATCH}" ]]; then > epatch "${DISTDIR}/${SUHOSIN_PATCH}"; > else > ewarn "There is no Suhosin patch available for this PHP release yet!"; > fi; > fi; > rm aclocal.m4; > eautoreconf --force -W no-cross >} >php_check_cflags () >{ > replace-cpu-flags "k6*" "i586" >} >php_check_imap () >{ > if ! use "imap" && ! phpconfutils_usecheck "imap"; then > return; > fi; > if use "ssl" || phpconfutils_usecheck "ssl"; then > if ! built_with_use virtual/imap-c-client ssl; then > eerror; > eerror "IMAP with SSL requested, but your IMAP C-Client libraries are built without SSL!"; > eerror; > die "Please recompile the IMAP C-Client libraries with SSL support enabled"; > fi; > else > if built_with_use virtual/imap-c-client ssl; then > eerror; > eerror "IMAP without SSL requested, but your IMAP C-Client libraries are built with SSL!"; > eerror; > die "Please recompile the IMAP C-Client libraries with SSL support disabled"; > fi; > fi; > if use "kolab" || phpconfutils_usecheck "kolab"; then > if ! built_with_use net-libs/c-client kolab; then > eerror; > eerror "IMAP with annotations support requested, but net-libs/c-client is built without it!"; > eerror; > die "Please recompile net-libs/c-client with USE=kolab."; > fi; > fi >} >php_check_java () >{ > if ! use "java-internal" && ! phpconfutils_usecheck "java-internal"; then > return; > fi; > JDKHOME="$(java-config --jdk-home)"; > NOJDKERROR="You need to use the 'java-config' utility to set your JVM to a JDK!"; > if [[ -z "${JDKHOME}" ]] || [[ ! -d "${JDKHOME}" ]]; then > eerror "${NOJDKERROR}"; > die "${NOJDKERROR}"; > fi; > if echo ${JDKHOME} | grep kaffe > /dev/null 2>&1; then > eerror; > eerror "PHP will not build using the Kaffe Java Virtual Machine."; > eerror "Please change your JVM to either Blackdown or Sun's."; > eerror; > eerror "To build PHP without Java support, please re-run this emerge"; > eerror "and place the line:"; > eerror " USE='-java-internal'"; > eerror "in front of your emerge command, for example:"; > eerror " USE='-java-internal' emerge =dev-lang/php-4*"; > eerror; > eerror "or edit your USE flags in /etc/make.conf."; > die "Kaffe JVM not supported"; > fi; > JDKVER=$(java-config --java-version 2>&1 | awk '/^java version/ { print $3 }' | xargs ); > einfo "Active JDK version: ${JDKVER}"; > case "${JDKVER}" in > 1.4.*) > > ;; > 1.5.*) > ewarn "Java 1.5 is NOT supported at this time, and might not work." > ;; > *) > eerror "A Java 1.4 JDK is recommended for Java support in PHP."; > die > ;; > esac >} >php_check_mta () >{ > if ! [[ -x "${ROOT}/usr/sbin/sendmail" ]]; then > ewarn; > ewarn "You need a virtual/mta that provides a sendmail compatible binary!"; > ewarn "All major MTAs provide this, and it's usually some symlink created"; > ewarn "as '${ROOT}/usr/sbin/sendmail*'. You should also be able to use other"; > ewarn "MTAs directly, but you'll have to edit the sendmail_path directive"; > ewarn "in your php.ini for this to work."; > ewarn; > fi >} >php_check_oracle_8 () >{ > if use "oci8" && [[ -z "${ORACLE_HOME}" ]]; then > eerror; > eerror "You must have the ORACLE_HOME variable set in your environment to"; > eerror "compile the Oracle extension."; > eerror; > die "Oracle configuration incorrect; user error"; > fi; > if use "oci8"; then > if has_version 'dev-db/oracle-instantclient-basic'; then > ewarn; > ewarn "Please ensure you have a full install of the Oracle client."; > ewarn "'dev-db/oracle-instantclient-basic' is NOT sufficient."; > ewarn "Please enable the 'oci8-instant-client' USE flag instead, if you"; > ewarn "want to use 'dev-db/oracle-instantclient-basic' as Oracle client."; > ewarn; > fi; > fi >} >php_check_oracle_all () >{ > if use "oci8" && [[ -z "${ORACLE_HOME}" ]]; then > eerror; > eerror "You must have the ORACLE_HOME variable set in your environment to"; > eerror "compile the Oracle extension."; > eerror; > die "Oracle configuration incorrect; user error"; > fi; > if use "oci8" || use "oracle7"; then > if has_version 'dev-db/oracle-instantclient-basic'; then > ewarn; > ewarn "Please ensure you have a full install of the Oracle client."; > ewarn "'dev-db/oracle-instantclient-basic' is NOT sufficient."; > ewarn "Please enable the 'oci8-instant-client' USE flag instead, if you"; > ewarn "want to use 'dev-db/oracle-instantclient-basic' as Oracle client."; > ewarn; > fi; > fi >} >php_check_pgsql () >{ > if use "postgres" && use "apache2" && use "threads"; then > if has_version dev-db/libpq; then > if has_version ">=dev-db/libpq-8" && ! built_with_use ">=dev-db/libpq-8" "threads"; then > eerror; > eerror "You must build dev-db/libpq with USE=threads"; > eerror "if you want to build PHP with threads support!"; > eerror; > die "Rebuild dev-db/libpq with USE=threads"; > fi; > else > local pgsql_ver=$(eselect postgresql show); > if ! built_with_use "=dev-db/postgresql-base-${pgsql_ver}*" threads; then > eerror; > eerror "You must build =dev-db/postgresql-base-${pgsql_ver} with USE=threads"; > eerror "if you want to build PHP with threads support!"; > eerror; > die "Rebuild =dev-db/postgresql-base-${pgsql_ver} with USE=threads"; > fi; > fi; > fi >} >php_determine_sapis () >{ > PHPSAPIS=; > if use cli || phpconfutils_usecheck cli; then > PHPSAPIS="${PHPSAPIS} cli"; > fi; > if use cgi; then > PHPSAPIS="${PHPSAPIS} cgi"; > fi; > if use apache2; then > PHPSAPIS="${PHPSAPIS} apache${APACHE_VERSION}"; > fi >} >php_get_mycnf_charset () >{ > if [[ ! -f "${ROOT}/etc/mysql/my.cnf" ]]; then > echo "empty"; > return; > fi; > local sapi="${1}"; > local section=""; > local client_charset=""; > local sapi_charset=""; > while read line; do > line=$(echo "${line}" | sed 's:[;#][^\n]*::g'); > if [[ "${line}" == "" ]]; then > continue; > fi; > tmp=$(echo "${line}" | sed 's:\[\([-a-z0-9\_]*\)\]:\1:'); > if [[ "${line}" != "${tmp}" ]]; then > section=${tmp}; > else > if [[ "${section}" != "client" && "${section}" != "php-${sapi}" ]]; then > continue; > fi; > tmp=$(echo "${line}" | sed 's|^[[:space:]\ ]*default-character-set[[:space:]\ ]*=[[:space:]\ ]*\"\?\([a-z0-9\-]*\)\"\?|\1|'); > if [[ "${line}" == "${tmp}" ]]; then > continue; > fi; > if [[ "${section}" == "client" ]]; then > client_charset="${tmp}"; > else > if [[ "${section}" == "php-${sapi}" ]]; then > sapi_charset="${tmp}"; > fi; > fi; > fi; > done < "${ROOT}/etc/mysql/my.cnf"; > if [[ -n "${sapi_charset}" ]]; then > echo "${sapi_charset}"; > else > if [[ -n "${client_charset}" ]]; then > echo "${client_charset}"; > else > echo "empty"; > fi; > fi >} >php_install_java () >{ > if ! use "java-internal" && ! phpconfutils_usecheck "java-internal"; then > return; > fi; > insinto "${PHPEXTDIR}"; > einfo "Installing PHP java extension"; > doins "modules/java.so"; > einfo "Creating PHP java extension symlink"; > dosym "${PHPEXTDIR}/java.so" "${PHPEXTDIR}/libphp_java.so"; > einfo "Installing JAR for PHP"; > doins "ext/java/php_java.jar"; > einfo "Installing Java test page"; > newins "ext/java/except.php" "java-test.php" >} >php_install_java_inifile () >{ > if ! use "java-internal" && ! phpconfutils_usecheck "java-internal"; then > return; > fi; > JAVA_LIBRARY="$(grep -- '-DJAVALIB' Makefile | sed -e 's,.\+-DJAVALIB=\"\([^"]*\)\".*$,\1,g;' | sort -u)"; > echo "extension = java.so" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"; > echo "java.library = ${JAVA_LIBRARY}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"; > echo "java.class.path = ${PHPEXTDIR}/php_java.jar" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"; > echo "java.library.path = ${PHPEXTDIR}" >> "${D}/${PHP_EXT_INI_DIR}/java.ini"; > dosym "${PHP_EXT_INI_DIR}/java.ini" "${PHP_EXT_INI_DIR_ACTIVE}/java.ini" >} >phpconfutils_built_with_use () >{ > local opt="$1"; > [[ ${opt:0:1} = "-" ]] && shift || opt="-a"; > local PHP_PKG=$(best_version $1); > shift; > local PHP_USEFILE="${ROOT}/var/lib/php-pkg/${PHP_PKG}/PHP_USEFILE"; > [[ ! -e "${PHP_USEFILE}" ]] && return 0; > local PHP_USE_BUILT=$(<${PHP_USEFILE}); > while [[ $# -gt 0 ]]; do > if [[ ${opt} = "-o" ]]; then > has $1 ${PHP_USE_BUILT} && return 0; > else > has $1 ${PHP_USE_BUILT} || return 1; > fi; > shift; > done; > [[ ${opt} = "-a" ]] >} >phpconfutils_extension_disable () >{ > if ! use "$2" && ! phpconfutils_usecheck "$2"; then > my_conf="${my_conf} --disable-$1"; > [[ -n "$3" ]] && einfo " Disabling $1"; > else > [[ -n "$3" ]] && einfo " Enabling $1"; > fi >} >phpconfutils_extension_enable () >{ > local my_shared; > if [[ "$3" == "1" ]]; then > if [[ "${shared}+" != "+" ]]; then > my_shared="${shared}"; > if [[ "$4+" != "+" ]]; then > my_shared="${my_shared},$4"; > fi; > else > if [[ "$4+" != "+" ]]; then > my_shared="=$4"; > fi; > fi; > else > if [[ "$4+" != "+" ]]; then > my_shared="=$4"; > fi; > fi; > if use "$2" || phpconfutils_usecheck "$2"; then > my_conf="${my_conf} --enable-$1${my_shared}"; > einfo " Enabling $1"; > else > my_conf="${my_conf} --disable-$1"; > einfo " Disabling $1"; > fi >} >phpconfutils_extension_with () >{ > local my_shared; > if [[ "$3" == "1" ]]; then > if [[ "${shared}+" != "+" ]]; then > my_shared="${shared}"; > if [[ "$4+" != "+" ]]; then > my_shared="${my_shared},$4"; > fi; > else > if [[ "$4+" != "+" ]]; then > my_shared="=$4"; > fi; > fi; > else > if [[ "$4+" != "+" ]]; then > my_shared="=$4"; > fi; > fi; > if use "$2" || phpconfutils_usecheck "$2"; then > my_conf="${my_conf} --with-$1${my_shared}"; > einfo " Enabling $1"; > else > my_conf="${my_conf} --without-$1"; > einfo " Disabling $1"; > fi >} >phpconfutils_extension_without () >{ > if ! use "$2" && ! phpconfutils_usecheck "$2"; then > my_conf="${my_conf} --without-$1"; > einfo " Disabling $1"; > else > einfo " Enabling $1"; > fi >} >phpconfutils_generate_usefile () >{ > phpconfutils_sort_flags; > local PHP_USEFILE="${D}/var/lib/php-pkg/${CATEGORY}/${PN}-${PVR}/PHP_USEFILE"; > dodir "/var/lib/php-pkg/${CATEGORY}/${PN}-${PVR}/"; > echo "${PHPCONFUTILS_AUTO_USE}" > "${PHP_USEFILE}" >} >phpconfutils_init () >{ > if use "sharedext"; then > shared="=shared"; > else > shared=""; > fi; > phpconfutils_sort_flags >} >phpconfutils_require_any () >{ > local success_msg="$1"; > shift; > local fail_msg="$1"; > shift; > local required_flags="$@"; > local default_flag="$1"; > local success="0"; > while [[ -n "$1" ]]; do > if use "$1"; then > einfo "${success_msg} $1"; > success="1"; > else > einfo "${fail_msg} $1"; > fi; > shift; > done; > if [[ "${success}" == "1" ]]; then > return; > fi; > eerror; > eerror "You should enable one or more of the following USE flags:"; > eerror " ${required_flags}"; > eerror; > eerror "You can do this by enabling these flags in /etc/portage/package.use:"; > eerror " =${CATEGORY}/${PN}-${PVR} ${required_flags}"; > eerror; > eerror "The ${default_flag} USE flag was automatically enabled now."; > eerror; > PHPCONFUTILS_AUTO_USE="${PHPCONFUTILS_AUTO_USE} ${default_flag}" >} >phpconfutils_sort_flags () >{ > PHPCONFUTILS_AUTO_USE="$(echo ${PHPCONFUTILS_AUTO_USE} | tr '\040\010' '\012\012' | sort -u)" >} >phpconfutils_use_conflict () >{ > phpconfutils_sort_flags; > if ! use "$1" && ! phpconfutils_usecheck "$1"; then > return; > fi; > local my_flag="$1"; > shift; > local my_present=""; > local my_remove=""; > while [[ "$1+" != "+" ]]; do > if use "$1" || phpconfutils_usecheck "$1"; then > my_present="${my_present} $1"; > my_remove="${my_remove} -$1"; > fi; > shift; > done; > if [[ -n "${my_present}" ]]; then > eerror; > eerror "USE flag '${my_flag}' conflicts with these USE flag(s):"; > eerror " ${my_present}"; > eerror; > eerror "You must disable these conflicting flags before you can emerge this package."; > eerror "You can do this by disabling these flags in /etc/portage/package.use:"; > eerror " =${CATEGORY}/${PN}-${PVR} ${my_remove}"; > eerror; > die "Conflicting USE flags found"; > fi >} >phpconfutils_use_depend_all () >{ > phpconfutils_sort_flags; > if ! use "$1" && ! phpconfutils_usecheck "$1"; then > return; > fi; > local my_flag="$1"; > shift; > local my_missing=""; > while [[ "$1+" != "+" ]]; do > if ! use "$1" && ! phpconfutils_usecheck "$1"; then > my_missing="${my_missing} $1"; > fi; > shift; > done; > if [[ -n "${my_missing}" ]]; then > PHPCONFUTILS_AUTO_USE="${PHPCONFUTILS_AUTO_USE} ${my_missing}"; > ewarn; > ewarn "USE flag '${my_flag}' needs these additional flag(s) set:"; > ewarn " ${my_missing}"; > ewarn; > ewarn "'${my_missing}' was automatically enabled and the required extensions will be"; > ewarn "built. In any case it is recommended to enable those flags for"; > ewarn "future reference, by adding the following to /etc/portage/package.use:"; > ewarn " =${CATEGORY}/${PN}-${PVR} ${my_missing}"; > ewarn; > fi >} >phpconfutils_use_depend_any () >{ > phpconfutils_sort_flags; > if ! use "$1" && ! phpconfutils_usecheck "$1"; then > return; > fi; > local my_flag="$1"; > shift; > local my_default_flag="$1"; > shift; > local my_found=""; > local my_missing=""; > while [[ "$1+" != "+" ]]; do > if use "$1" || phpconfutils_usecheck "$1"; then > my_found="${my_found} $1"; > else > my_missing="${my_missing} $1"; > fi; > shift; > done; > if [[ -z "${my_found}" ]]; then > PHPCONFUTILS_AUTO_USE="${PHPCONFUTILS_AUTO_USE} ${my_default_flag}"; > ewarn; > ewarn "USE flag '${my_flag}' needs one of these additional flag(s) set:"; > ewarn " ${my_missing}"; > ewarn; > ewarn "'${my_default_flag}' was automatically selected and enabled."; > ewarn "You can change that by enabling/disabling those flags accordingly"; > ewarn "in /etc/portage/package.use."; > ewarn; > fi >} >phpconfutils_usecheck () >{ > local x; > local use="$1"; > for x in ${PHPCONFUTILS_AUTO_USE}; > do > if [[ "${use}+" == "${x}+" ]]; then > return 0; > fi; > done; > return 1 >} >phpconfutils_warn_about_external_deps () >{ > phpconfutils_sort_flags; > local x; > local my_found="0"; > for x in ${PHPCONFUTILS_MISSING_DEPS}; > do > if use "${x}" || phpconfutils_usecheck "${x}"; then > ewarn "USE flag ${x} enables support for software not present in Portage!"; > my_found="1"; > fi; > done; > if [[ "${my_found}" == "1" ]]; then > ewarn; > ewarn "This ebuild will continue, but if you haven't already installed the"; > ewarn "software required to satisfy the list above, this package will probably"; > ewarn "fail to compile later on."; > ewarn "*DO NOT* file bugs about compile failures or issues you're having"; > ewarn "when using one of those flags, as we aren't able to support them."; > ewarn "|=|=|=|=|=|=| You are on your own if you use them! |=|=|=|=|=|=|"; > ewarn; > ebeep 5; > fi >} >pkg_nofetch () >{ > [ -z "${SRC_URI}" ] && return; > echo "!!! The following are listed in SRC_URI for ${PN}:"; > local x; > for x in $(echo ${SRC_URI}); > do > echo "!!! ${x}"; > done >} >pkg_postinst () >{ > if use apache2; then > APACHE2_MOD_DEFINE="PHP5"; > if use concurrentmodphp; then > APACHE2_MOD_CONF="70_mod_php5_concurr"; > else > APACHE2_MOD_CONF="70_mod_php5"; > fi; > apache-module_pkg_postinst; > fi; > if use apache2; then > "${ROOT}/usr/sbin/php-select" -t apache2 php5 > /dev/null 2>&1; > exitStatus=$?; > if [[ ${exitStatus} == 2 ]]; then > php-select apache2 php5; > else > if [[ ${exitStatus} == 4 ]]; then > ewarn; > ewarn "Apache2 is configured to load a different version of PHP."; > ewarn "To make Apache2 use PHP v5, use php-select:"; > ewarn; > ewarn " php-select apache2 php5"; > ewarn; > fi; > fi; > fi; > if use cli || phpconfutils_usecheck cli; then > "${ROOT}/usr/sbin/php-select" -t php php5 > /dev/null 2>&1; > exitStatus=$?; > if [[ ${exitStatus} == 5 ]]; then > php-select php php5; > else > if [[ ${exitStatus} == 4 ]]; then > ewarn; > ewarn "/usr/bin/php links to a different version of PHP."; > ewarn "To make /usr/bin/php point to PHP v5, use php-select:"; > ewarn; > ewarn " php-select php php5"; > ewarn; > fi; > fi; > fi; > if use cgi; then > "${ROOT}/usr/sbin/php-select" -t php-cgi php5 > /dev/null 2>&1; > exitStatus=$?; > if [[ ${exitStatus} == 5 ]]; then > php-select php-cgi php5; > else > if [[ ${exitStatus} == 4 ]]; then > ewarn; > ewarn "/usr/bin/php-cgi links to a different version of PHP."; > ewarn "To make /usr/bin/php-cgi point to PHP v5, use php-select:"; > ewarn; > ewarn " php-select php-cgi php5"; > ewarn; > fi; > fi; > fi; > "${ROOT}/usr/sbin/php-select" -t php-devel php5 > /dev/null 2>&1; > exitStatus=$?; > if [[ $exitStatus == 5 ]]; then > php-select php-devel php5; > else > if [[ $exitStatus == 4 ]]; then > ewarn; > ewarn "/usr/bin/php-config and/or /usr/bin/phpize are linked to a"; > ewarn "different version of PHP. To make them point to PHP v5, use"; > ewarn "php-select:"; > ewarn; > ewarn " php-select php-devel php5"; > ewarn; > fi; > fi; > php5_2-sapi_pkg_postinst >} >pkg_setup () >{ > PHPCONFUTILS_AUTO_USE=""; > einfo "Determining SAPI(s) to build"; > phpconfutils_require_any " Enabled SAPI:" " Disabled SAPI:" cli cgi apache2; > if use apache2; then > has_apache_threads; > fi; > if use apache2; then > if use concurrentmodphp; then > ewarn; > ewarn "'concurrentmodphp' makes it possible to load multiple, differently"; > ewarn "versioned mod_php's into the same Apache instance. This is done with"; > ewarn "a few linker tricks and workarounds, and is not guaranteed to always"; > ewarn "work correctly, so use it at your own risk. Especially, do not use"; > ewarn "this in conjunction with PHP modules (PECL, ...) other than the ones"; > ewarn "you may find in the Portage tree or the PHP Overlay!"; > ewarn "This is an experimental feature, so please rebuild PHP"; > ewarn "without the 'concurrentmodphp' USE flag if you experience"; > ewarn "any problems, and then reproduce any bugs before filing"; > ewarn "them in Gentoo's Bugzilla or bugs.php.net."; > ewarn "If you have conclusive evidence that a bug directly"; > ewarn "derives from 'concurrentmodphp', please file a bug in"; > ewarn "Gentoo's Bugzilla only."; > ewarn; > ebeep 5; > fi; > fi; > if use fastbuild; then > ewarn; > ewarn "'fastbuild' attempts to build all SAPIs in a single pass."; > ewarn "This is an experimental feature, so please rebuild PHP"; > ewarn "without the 'fastbuild' USE flag if you experience"; > ewarn "any problems, and then reproduce any bugs before filing"; > ewarn "them in Gentoo's Bugzilla or bugs.php.net."; > ewarn "If you have conclusive evidence that a bug directly"; > ewarn "derives from 'fastbuild', please file a bug in"; > ewarn "Gentoo's Bugzilla only."; > ewarn; > fi; > php5_2-sapi_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 >} >raw-ldflags () >{ > local x input="$@"; > [[ -z ${input} ]] && input=${LDFLAGS}; > set --; > for x in ${input}; > do > x=${x#-Wl,}; > set -- "$@" ${x//,/ }; > done; > echo "$@" >} >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; > 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 () >{ > __versionator_shopt_toggle on; > local c; > c=($(get_all_version_components "${2:-${PV}}" )); > c="${c[@]//[-._]/$1}"; > echo ${c// }; > __versionator_shopt_toggle off >} >replace_version_separator () >{ > __versionator_shopt_toggle on; > 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// }; > __versionator_shopt_toggle off >} >seq () >{ > local p=$(type -P seq); > case $# in > 1) > min=1 max=$1 step=1 > ;; > 2) > min=$1 max=$2 step=1 > ;; > 3) > min=$1 max=$3 step=$2 > ;; > *) > die "seq called with wrong number of arguments" > ;; > esac; > if [[ -z ${p} ]]; then > local reps; > if [[ ${step} != 0 ]]; then > reps=$(( ($max-$min) / $step +1 )); > else > reps=0; > fi; > jot $reps $min $max $step; > else > "${p}" $min $step $max; > fi >} >setup-allowed-flags () >{ > if [[ -z ${ALLOWED_FLAGS} ]]; then > export ALLOWED_FLAGS="-pipe"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -O -O0 -O1 -O2 -mcpu -march -mtune"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fstack-protector -fstack-protector-all"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fbounds-checking"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-PIE -fno-pie -fno-unit-at-a-time"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-ident"; > export ALLOWED_FLAGS="${ALLOWED_FLAGS} -W* -w"; > fi; > ALLOWED_FLAGS="${ALLOWED_FLAGS} -fno-stack-protector -fno-stack-protector-all -fno-strict-aliasing -fno-bounds-checking"; > ALLOWED_FLAGS="${ALLOWED_FLAGS} -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu -mieee -mieee-with-inexact -mschedule -mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat -mno-faster-structs -mfaster-structs -m32 -m64 -mabi -mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel -mstack-bias -mno-stack-bias -msecure-plt -D*"; > export UNSTABLE_FLAGS="-Os -O3 -freorder-blocks"; > return 0 >} >src_compile () >{ > if use fastbuild && [[ -n "${FASTBUILD_PATCH}" ]]; then > src_compile_fastbuild; > else > src_compile_normal; > fi >} >src_compile_fastbuild () >{ > php_determine_sapis; > build_cli=0; > build_cgi=0; > build_apache2=0; > my_conf=""; > for x in ${PHPSAPIS}; > do > case ${x} in > cli) > build_cli=1 > ;; > cgi) > build_cgi=1 > ;; > apache2) > build_apache2=1 > ;; > esac; > done; > if [[ ${build_cli} = 1 ]]; then > my_conf="${my_conf} --enable-cli"; > else > my_conf="${my_conf} --disable-cli"; > fi; > if [[ ${build_cgi} = 1 ]]; then > my_conf="${my_conf} --enable-cgi --enable-fastcgi"; > phpconfutils_extension_enable "discard-path" "discard-path" 0; > phpconfutils_extension_enable "force-cgi-redirect" "force-cgi-redirect" 0; > else > my_conf="${my_conf} --disable-cgi"; > fi; > if [[ ${build_apache2} = 1 ]]; then > my_conf="${my_conf} --with-apxs2=/usr/sbin/apxs2"; > if use threads; then > my_conf="${my_conf} --enable-maintainer-zts"; > ewarn "Enabling ZTS for Apache2 MPM"; > fi; > if use concurrentmodphp; then > append-ldflags "-Wl,--version-script=${FILESDIR}/php5-ldvs"; > fi; > fi; > php5_2-sapi_src_compile; > if [[ ${build_cli} = 1 ]]; then > einfo; > einfo "Building CLI SAPI"; > einfo; > sed -e 's|^#define PHP_CONFIG_FILE_PATH.*|#define PHP_CONFIG_FILE_PATH "/etc/php/cli-php5"|g;' -i main/build-defs.h; > sed -e 's|^#define PHP_CONFIG_FILE_SCAN_DIR.*|#define PHP_CONFIG_FILE_SCAN_DIR "/etc/php/cli-php5/ext-active"|g;' -i main/build-defs.h; > for x in main/main.o main/main.lo main/php_ini.o main/php_ini.lo; > do > [[ -f ${x} ]] && rm -f ${x}; > done; > make sapi/cli/php || die "Unable to make CLI SAPI"; > cp sapi/cli/php php-cli || die "Unable to copy CLI SAPI"; > fi; > if [[ ${build_cgi} = 1 ]]; then > einfo; > einfo "Building CGI SAPI"; > einfo; > sed -e 's|^#define PHP_CONFIG_FILE_PATH.*|#define PHP_CONFIG_FILE_PATH "/etc/php/cgi-php5"|g;' -i main/build-defs.h; > sed -e 's|^#define PHP_CONFIG_FILE_SCAN_DIR.*|#define PHP_CONFIG_FILE_SCAN_DIR "/etc/php/cgi-php5/ext-active"|g;' -i main/build-defs.h; > for x in main/main.o main/main.lo main/php_ini.o main/php_ini.lo; > do > [[ -f ${x} ]] && rm -f ${x}; > done; > make sapi/cgi/php-cgi || die "Unable to make CGI SAPI"; > cp sapi/cgi/php-cgi php-cgi || die "Unable to copy CGI SAPI"; > fi; > if [[ ${build_apache2} = 1 ]]; then > einfo; > einfo "Building apache${APACHE_VERSION} SAPI"; > einfo; > sed -e "s|^#define PHP_CONFIG_FILE_PATH.*|#define PHP_CONFIG_FILE_PATH \"/etc/php/apache${APACHE_VERSION}-php5\"|g;" -i main/build-defs.h; > sed -e "s|^#define PHP_CONFIG_FILE_SCAN_DIR.*|#define PHP_CONFIG_FILE_SCAN_DIR \"/etc/php/apache${APACHE_VERSION}-php5/ext-active\"|g;" -i main/build-defs.h; > for x in main/main.o main/main.lo main/php_ini.o main/php_ini.lo; > do > [[ -f ${x} ]] && rm -f ${x}; > done; > make || die "Unable to make apache${APACHE_VERSION} SAPI"; > fi >} >src_compile_normal () >{ > php_determine_sapis; > CLEAN_REQUIRED=0; > my_conf=""; > if use apache2; then > if use concurrentmodphp; then > append-ldflags "-Wl,--version-script=${FILESDIR}/php5-ldvs"; > fi; > fi; > for x in ${PHPSAPIS}; > do > if use apache2; then > if use threads; then > my_conf="${my_conf} --enable-maintainer-zts"; > ewarn "Enabling ZTS for Apache2 MPM"; > fi; > fi; > if [[ "${CLEAN_REQUIRED}" = 1 ]]; then > make clean; > fi; > PHPSAPI="${x}"; > case ${x} in > cli) > my_conf="${my_conf} --enable-cli --disable-cgi"; > php5_2-sapi_src_compile; > cp sapi/cli/php php-cli || die "Unable to copy CLI SAPI" > ;; > cgi) > my_conf="${my_conf} --disable-cli --enable-cgi --enable-fastcgi"; > phpconfutils_extension_enable "discard-path" "discard-path" 0; > phpconfutils_extension_enable "force-cgi-redirect" "force-cgi-redirect" 0; > php5_2-sapi_src_compile; > cp sapi/cgi/php-cgi php-cgi || die "Unable to copy CGI SAPI" > ;; > apache2) > my_conf="${my_conf} --disable-cli --with-apxs2=/usr/sbin/apxs2"; > php5_2-sapi_src_compile > ;; > esac; > CLEAN_REQUIRED=1; > my_conf=""; > done >} >src_install () >{ > php_determine_sapis; > destdir=/usr/$(get_libdir)/php5; > php5_2-sapi_src_install; > einfo; > einfo "Installing SAPI(s) ${PHPSAPIS}"; > einfo; > for x in ${PHPSAPIS}; > do > PHPSAPI="${x}"; > case ${x} in > cli) > einfo "Installing CLI SAPI"; > into ${destdir}; > newbin php-cli php || die "Unable to install ${x} sapi"; > php5_2-sapi_install_ini > ;; > cgi) > einfo "Installing CGI SAPI"; > into ${destdir}; > dobin php-cgi || die "Unable to install ${x} sapi"; > php5_2-sapi_install_ini > ;; > apache2) > einfo "Installing Apache${APACHE_VERSION} SAPI"; > make INSTALL_ROOT="${D}" install-sapi || die "Unable to install ${x} SAPI"; > if use concurrentmodphp; then > einfo "Installing Apache${APACHE_VERSION} config file for PHP5-concurrent (70_mod_php5_concurr.conf)"; > insinto ${APACHE_MODULES_CONFDIR}; > newins "${FILESDIR}/70_mod_php5_concurr.conf-apache2" "70_mod_php5_concurr.conf"; > insinto "/var/lib/php-pkg/${CATEGORY}/${PN}-${PVR}/"; > doins "${FILESDIR}/php5-ldvs"; > PHPEXTDIR="`"${D}/${destdir}/bin/php-config" --extension-dir`-versioned"; > else > einfo "Installing Apache${APACHE_VERSION} config file for PHP5 (70_mod_php5.conf)"; > insinto ${APACHE_MODULES_CONFDIR}; > newins "${FILESDIR}/70_mod_php5.conf-apache2" "70_mod_php5.conf"; > fi; > php5_2-sapi_install_ini > ;; > esac; > done; > newenvd "${FILESDIR}/20php5-envd" "20php5"; > sed -e "s|/lib/|/$(get_libdir)/|g" -i "${D}/etc/env.d/20php5" >} >src_test () >{ > vecho ">>> Test phase [test]: ${CATEGORY}/${PF}"; > if [[ ! -x "${S}"/php-cli ]]; then > ewarn "Running the php test suite requires USE=cli"; > return; > fi; > export TEST_PHP_EXECUTABLE="${S}"/php-cli; > if [[ -x "${S}"/php-cgi ]]; then > export TEST_PHP_CGI_EXECUTABLE="${S}"/php-cgi; > fi; > REPORT_EXIT_STATUS=1 "${S}"/php-cli -n "${S}"/run-tests.php -n; > if [[ $? != 0 ]]; then > eerror "Not all tests were successful!"; > fi >} >src_unpack () >{ > if [[ "${PHP_PACKAGE}" == 1 ]]; then > unpack ${A}; > fi; > cd "${S}"; > if use apache2; then > if use concurrentmodphp; then > if [[ -n "${CONCURRENTMODPHP_PATCH}" ]] && [[ -f "${WORKDIR}/${CONCURRENTMODPHP_PATCH}" ]]; then > epatch "${WORKDIR}/${CONCURRENTMODPHP_PATCH}"; > else > ewarn "There is no concurrent mod_php patch available for this PHP release yet!"; > fi; > fi; > fi; > if use fastbuild; then > if [[ -n "${FASTBUILD_PATCH}" ]] && [[ -f "${WORKDIR}/${FASTBUILD_PATCH}" ]]; then > epatch "${WORKDIR}/${FASTBUILD_PATCH}"; > else > ewarn "There is no fastbuild patch available for this PHP release yet!"; > fi; > fi; > if [[ -n "${KOLAB_PATCH}" ]]; then > use kolab && epatch "${WORKDIR}/${KOLAB_PATCH}"; > fi; > sed -re 's:( +)PHP_SUBST\(LEX\):\1LEX="exit 0;"\n\0:' -i acinclude.m4; > php5_2-sapi_src_unpack; > if use cgi; then > sed -e "s|test \! -z \"\$(top_builddir)/php-cli\" \&\& test -x \"\$(top_builddir)/php-cli\"|test \! -z \"\$(top_builddir)/php-cli\" \&\& test -x \"\$(top_builddir)/php-cli\" \&\& test \! -z \"\$(top_builddir)/php-cgi\" \&\& test -x \"\$(top_builddir)/php-cgi\"|g" -i Makefile.global; > sed -e "s|TEST_PHP_EXECUTABLE=\"\$(top_builddir)/php-cli\"|TEST_PHP_EXECUTABLE=\"\$(top_builddir)/php-cli\" TEST_PHP_CGI_EXECUTABLE=\"\$(top_builddir)/php-cgi\"|g" -i Makefile.global; > fi; > sed -e 's:/no/such/:.\0:' -i ext/standard/tests/file/005_error.phpt ext/standard/tests/file/006_error.phpt ext/standard/tests/file/touch.phpt; > sed -re 's:(#ifdef HAVE_CONFIG_H.*):#define _GNU_SOURCE\n\1:' -i ext/posix/posix.c; > rm ext/standard/tests/general_functions/phpinfo.phpt; > rm ext/iconv/tests/bug16069.phpt ext/iconv/tests/iconv_stream_filter.phpt; > rm ext/session/tests/session_save_path_variation5.phpt; > sed -e 's:/blah:./bla:' -i ext/session/tests/session_save_path_variation{2,3}.phpt; > use suhosin && sed -e 's:File(\.\./):File(..):g' -i ext/standard/tests/file/open_basedir*{.inc,.phpt} >} >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 > eval tc-get${var} > /dev/null; > done >} >tc-getAR () >{ > tc-getPROG AR ar "$@" >} >tc-getAS () >{ > tc-getPROG AS as "$@" >} >tc-getBUILD_CC () >{ > local v; > for v in CC_FOR_BUILD BUILD_CC HOSTCC; > do > if [[ -n ${!v} ]]; then > export BUILD_CC=${!v}; > echo "${!v}"; > return 0; > fi; > done; > local search=; > if [[ -n ${CBUILD} ]]; then > search=$(type -p ${CBUILD}-gcc); > search=${search##*/}; > fi; > search=${search:-gcc}; > export BUILD_CC=${search}; > echo "${search}" >} >tc-getCC () >{ > tc-getPROG CC gcc "$@" >} >tc-getCPP () >{ > tc-getPROG CPP cpp "$@" >} >tc-getCXX () >{ > tc-getPROG CXX g++ "$@" >} >tc-getF77 () >{ > tc-getPROG F77 f77 "$@" >} >tc-getFC () >{ > tc-getPROG FC gfortran "$@" >} >tc-getGCJ () >{ > tc-getPROG GCJ gcj "$@" >} >tc-getLD () >{ > tc-getPROG LD ld "$@" >} >tc-getNM () >{ > tc-getPROG NM nm "$@" >} >tc-getPROG () >{ > local var=$1; > local prog=$2; > if [[ -n ${!var} ]]; then > echo "${!var}"; > return 0; > fi; > local search=; > [[ -n $3 ]] && search=$(type -p "$3-${prog}"); > [[ -z ${search} && -n ${CHOST} ]] && search=$(type -p "${CHOST}-${prog}"); > [[ -n ${search} ]] && prog=${search##*/}; > export ${var}=${prog}; > echo "${!var}" >} >tc-getRANLIB () >{ > tc-getPROG RANLIB ranlib "$@" >} >tc-getSTRIP () >{ > tc-getPROG STRIP strip "$@" >} >tc-is-cross-compiler () >{ > return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]]) >} >tc-is-softfloat () >{ > case ${CTARGET} in > bfin* | h8300*) > echo "only" > ;; > *) > [[ ${CTARGET//_/-} == *-softfloat-* ]] && echo "yes" || echo "no" > ;; > esac >} >tc-ninja_magic_to_arch () >{ > function ninj () > { > [[ ${type} == "kern" ]] && echo $1 || echo $2 > }; > local type=$1; > local host=$2; > [[ -z ${host} ]] && host=${CTARGET:-${CHOST}}; > case ${host} in > alpha*) > echo alpha > ;; > arm*) > echo arm > ;; > avr*) > ninj avr32 avr > ;; > bfin*) > ninj blackfin bfin > ;; > cris*) > echo cris > ;; > hppa*) > ninj parisc hppa > ;; > i?86*) > 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 [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]] && [[ ${type} == "kern" ]]; then > echo powerpc; > else > if [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]] && [[ ${type} == "kern" ]]; then > if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then > echo powerpc; > else > echo ppc; > fi; > else > if [[ ${host} == powerpc64* ]]; then > echo ppc64; > else > if [[ ${PROFILE_ARCH} == "ppc64" ]]; then > ninj ppc64 ppc; > else > echo ppc; > fi; > fi; > fi; > fi > ;; > s390*) > echo s390 > ;; > sh64*) > ninj sh64 sh > ;; > sh*) > echo sh > ;; > sparc64*) > ninj sparc64 sparc > ;; > sparc*) > [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc > ;; > vax*) > echo vax > ;; > x86_64*) > 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 () >{ > ewarn "uclibctoolize() is deprecated, please just use elibtoolize()!"; > 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 -a '#.*Makeself' "${src}" | awk '{print $NF}'); > local skip=0; > exe=tail; > case ${ver} in > 1.5.* | 1.6.0-nv) > skip=$(grep -a ^skip= "${src}" | cut -d= -f2) > ;; > 2.0 | 2.0.1) > skip=$(grep -a ^' 'tail "${src}" | awk '{print $2}' | cut -b2-) > ;; > 2.1.1) > skip=$(grep -a ^offset= "${src}" | awk '{print $2}' | cut -b2-); > let skip="skip + 1" > ;; > 2.1.2) > skip=$(grep -a ^offset= "${src}" | awk '{print $3}' | head -n 1); > let skip="skip + 1" > ;; > 2.1.3) > skip=`grep -a ^offset= "${src}" | awk '{print $3}'`; > let skip="skip + 1" > ;; > 2.1.4 | 2.1.5) > skip=$(grep -a offset=.*head.*wc "${src}" | awk '{print $3}' | head -n 1); > skip=$(head -n ${skip} "${src}" | wc -c); > exe="dd" > ;; > *) > eerror "I'm sorry, but I was unable to support the Makeself file."; > eerror "The version I detected was '${ver}'."; > eerror "Please file a bug about the file ${shrtsrc} at"; > eerror "http://bugs.gentoo.org/ so that support can be added."; > 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 obs=1024 conv=sync 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; > _pipestatus="${PIPESTATUS[*]}"; > [[ "${_pipestatus// /}" -eq 0 ]] || die "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 >} >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 () >{ > __versionator_shopt_toggle on; > 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} ]] && __versionator_shopt_toggle off && return 1; > [[ ${cur_tok_a} -gt ${cur_tok_b} ]] && __versionator_shopt_toggle off && 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} ]] && __versionator_shopt_toggle off && return 1; > [[ ${letter_a} > ${letter_b} ]] && __versionator_shopt_toggle off && 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} ]] && __versionator_shopt_toggle off && return ${r_gt}; > [[ -z ${suffix_b} ]] && __versionator_shopt_toggle off && 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} ]] && __versionator_shopt_toggle off && return 1; > [[ ${suffix_a} -gt ${suffix_b} ]] && __versionator_shopt_toggle off && return 3; > done; > __versionator_shopt_toggle off; > return 2 >} >version_is_at_least () >{ > __versionator_shopt_toggle on; > local want_s="$1" have_s="${2:-${PVR}}" r; > version_compare "${want_s}" "${have_s}"; > r=$?; > case $r in > 1 | 2) > __versionator_shopt_toggle off; > return 0 > ;; > 3) > __versionator_shopt_toggle off; > return 1 > ;; > *) > __versionator_shopt_toggle off; > die "versionator compare bug [atleast, ${want_s}, ${have_s}, ${r}]" > ;; > esac; > __versionator_shopt_toggle off >} >version_sort () >{ > __versionator_shopt_toggle on; > 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[@]}; > __versionator_shopt_toggle off >} >want_apache () >{ > debug-print-function $FUNCNAME $*; > want_apache2 "$@" >} >want_apache2 () >{ > debug-print-function $FUNCNAME $*; > local myiuse=${1:-apache2}; > IUSE="${IUSE} ${myiuse}"; > DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"; > RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_DEPEND} )"; > if use ${myiuse}; then > _init_apache2; > else > _init_no_apache; > fi >} >want_apache2_2 () >{ > debug-print-function $FUNCNAME $*; > local myiuse=${1:-apache2}; > IUSE="${IUSE} ${myiuse}"; > DEPEND="${DEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"; > RDEPEND="${RDEPEND} ${myiuse}? ( ${APACHE2_2_DEPEND} )"; > if use ${myiuse}; then > _init_apache2; > else > _init_no_apache; > fi >} >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 mulaw multi null plug rate route share shm softvol" >declare -x APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" >declare -x ARCH="hppa" >declare -x CBUILD="hppa2.0-unknown-linux-gnu" >declare -x CDEFINE_default="__unix__" >declare -x CFLAGS="-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall" >declare -x CFLAGS_default="" >declare -x CHOST="hppa2.0-unknown-linux-gnu" >declare -x CHOST_default="hppa2.0-unknown-linux-gnu" >declare -x COUNTER="1181268958" >declare -x CROSSCOMPILE_OPTS="" >declare -x CTARGET_default="hppa2.0-unknown-linux-gnu" >declare -x CVS_RSH="ssh" >declare -x CXXFLAGS="-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall" >declare -x DCCC_PATH="/usr/lib/distcc/bin" >declare -x DEFAULT_ABI="default" >declare -x DESTTREE="/usr" >declare -x DIROPTIONS="-m0755" >declare -x ELIBC="glibc" >declare -x ELT_APPLIED_PATCHES=" 1.5.10 1.5.6" >declare -x ELT_LTMAIN_SH="/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/work/php-5.2.6/ltmain.sh" >declare -x EPAUSE_IGNORE="true" >declare -x EXEOPTIONS="-m0755" >declare -x FEATURES="autoaddcvs buildpkg cvs distlocks fixpackages notitles parallel-fetch preserve-libs sandbox sfperms splitdebug strict unmerge-orphans userfetch" >declare -x FFLAGS="-O2 -pipe -mschedule=8000 -march=2.0 -g -ggdb -Wall" >declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.1.7-r2/html" >declare -x GCC_SPECS="" >declare -x GDK_USE_XFT="1" >declare -x GUILE_LOAD_PATH="/usr/share/guile/1.8" >declare -x INHERITED="apache-module autotools toolchain-funcs php5_2-sapi portability flag-o-matic versionator multilib libtool phpconfutils db-use depend.apache eutils php-common-r1" >declare -x INPUT_DEVICES="" >declare -x INSDESTTREE="" >declare -x INSOPTIONS="-m0644" >declare -x KDEDIRS="/usr:/usr/local:/usr/kde/3.5" >declare -x KERNEL="linux" >declare -x KERNEL_ABI="default" >declare -x KV="2.6.25-gentoo-r6-JeR" >declare -x LADSPA_PATH="/usr/lib/ladspa" >declare -x LCD_DEVICES="" >declare -x LC_ALL="en_US.UTF-8" >declare -x LDFLAGS="" >declare -x LDFLAGS_default="" >declare -x LIBDIR_default="lib" >declare -x LIBOPTIONS="-m0644" >declare -x LINGUAS="en nl he" >declare -x MAKEOPTS="-j4" >declare -x MULTILIB_ABIS="default" >declare -x OPENGL_PROFILE="xorg-x11" >declare -x PBS_SERVER_HOME="/var/spool/torque" >declare -x PHPCONFUTILS_AUTO_USE="" >declare -x PKG_CONFIG_PATH="/usr/qt/3/lib/pkgconfig" >declare -x PORTAGE_NICENESS="10" >declare -x QMAKESPEC="linux-g++" >declare -x QTDIR="/usr/qt/3" >declare -x RESTRICT="" >declare -x RSYNC_TIMEOUT="600" >declare -x RUBYOPT="-rauto_gem" >declare -x R_HOME="/usr/lib/R" >declare -x S="/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/work/php-5.2.6" >declare -x SANDBOX_DENY="/etc/ld.so.preload" >declare -x SANDBOX_PREDICT=":/dev/console:/dev/random:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.:/proc/self/maps:/usr/lib/python2.0/:/usr/lib/python2.1/:/usr/lib/python2.2/:/usr/lib/python2.3/:/usr/lib/python2.4/:/usr/lib/python2.5/:/usr/lib/python3.0/:/var/db/aliases.db:/var/db/ethers.db:/var/db/group.db:/var/db/hosts.db:/var/db/netgroup.db:/var/db/netmasks.db:/var/db/networks.db:/var/db/passwd.db:/var/db/protocols.db:/var/db/rpc.db:/var/db/services.db:" >declare -x SANDBOX_READ=":/:/dev/shm:/dev/stdin:/mnt/alt/portage-tmp:" >declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/null:/dev/pts/:/dev/pty:/dev/shm:/dev/shm/ngpt:/dev/stderr:/dev/stdout:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/mnt/alt/portage-tmp:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.bash_history:/mnt/alt/portage-tmp/portage/dev-lang/php-5.2.6-r2/homedir/.gconfd/lock:/proc/self/fd:/tmp:/tmp/:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/lib/cf:/usr/lib/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/log/scrollkeeper.log:/var/tmp:/var/tmp/:" >declare -x SANE_CONFIG_DIR="/etc/sane.d" >declare -x SGML_CATALOG_FILES="/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.0.cat:/etc/sgml/sgml-lite.cat:/etc/sgml/xml-simple-docbook-4.1.2.4.cat:/etc/sgml/xml-docbook-4.4.cat:/etc/sgml/sgml-docbook-4.1.cat:/etc/sgml/sgml-docbook-4.0.cat:/etc/sgml/xml-simple-docbook-1.0.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/sgml-docbook-4.2.cat:/etc/sgml/sgml-ent.cat:/etc/sgml/sgml-docbook-4.4.cat:/etc/sgml/xml-docbook-4.1.2.cat" >declare -x SLOT="5" >declare -x STAGE1_USE="nptl nptlonly" >declare -x TEXINPUTS="/usr/lib/ocaml/ocamldoc:" >declare -x USB_DEVFS_PATH="/dev/bus/usb" >declare -x USE="apache2 berkdb bzip2 calendar cdb cgi cjk cli crypt ctype curl elibc_glibc exif filter ftp gd gmp hppa iconv imap iodbc ipv6 kerberos kernel_linux ldap mcve mhash mssql mysql mysqli ncurses nls odbc pcre pdo pic postgres qdbm readline reflection session snmp sockets spell spl sqlite ssl suhosin threads tidy tokenizer truetype unicode userland_GNU xml xpm xsl zip-external zlib" >declare -x USERLAND="GNU" >declare -x VIDEO_CARDS="" >declare -x WANT_AUTOCONF="2.5" >declare -x WANT_AUTOMAKE="1.10" >declare -x XDG_DATA_DIRS="/usr/share:/usr/kde/3.5/share:/usr/local/share" >declare -x XERCESC_NLS_HOME="/usr/share/xerces-c/msg" >declare -x _E_DOCDESTTREE_="" >declare -x _E_EXEDESTTREE_=""
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 231015
: 159896 |
163440