declare -x ABI="amd64" declare -x ABI_X86="64" declare -x ALSA_CARDS="hda-intel" declare -x ANT_HOME="/usr/share/ant" declare -x APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" declare -x ARCH="amd64" declare -- ARCH_LIB="/usr/lib64/perl5/5.24.1/x86_64-linux" declare -x BOOTSTRAP_USE="cxx unicode internal-glib python_targets_python3_4 python_targets_python2_7 multilib" declare -x CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" declare -x CBUILD="x86_64-pc-linux-gnu" declare -x CFLAGS="-O2 -pipe -march=native -Wall" declare -x CFLAGS_amd64="-m64" declare -x CFLAGS_x32="-mx32" declare -x CFLAGS_x86="-m32" declare -x CHOST="x86_64-pc-linux-gnu" declare -x CHOST_amd64="x86_64-pc-linux-gnu" declare -x CHOST_x32="x86_64-pc-linux-gnux32" declare -x CHOST_x86="i686-pc-linux-gnu" declare -x CLASSPATH="/usr/lib64/CMT/v1r26/java/cmt.jar" declare -x CMTBIN="Linux-x86_64" declare -x CMTCONFIG="Linux-x86_64" declare -x CMTROOT="/usr/lib64/CMT/v1r26" declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" declare -x CPU_FLAGS_X86="mmx mmxext sse sse2" declare -x CURL_SSL="libressl" declare -x CXXFLAGS="-Werror=terminate -O2 -pipe -march=native" declare -x DEFAULT_ABI="amd64" declare -x DEFINED_PHASES=" compile configure install prepare test" declare DEPEND=" >=dev-perl/Module-Build-0.400.500 test? ( virtual/perl-IO-Socket-IP dev-perl/Test-Requires dev-perl/Test-SharedFork >=dev-perl/Test-TCP-2.130.0 ) dev-lang/perl:=" declare DESCRIPTION="A superdaemon for hot-deploying server programs" declare -x DESTTREE="/usr" declare -x DIROPTIONS="-m0755" declare -- DIST_A="Server-Starter-0.33.tar.gz" declare -- DIST_AUTHOR="KAZUHO" declare -- DIST_NAME="Server-Starter" declare -- DIST_P="Server-Starter-0.33" declare -- DIST_VERSION="0.33" declare -x EAPI="6" declare -x ELIBC="glibc" declare -x EXEOPTIONS="-m0755" declare -x FCFLAGS="-O2 -pipe" declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x FFLAGS="-O2 -pipe" declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.3.4/html" declare -x GCC_COLORS="" declare -x GCC_SPECS="" declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" declare -x GRUB_PLATFORMS="" declare -x GSETTINGS_BACKEND="dconf" declare HDEPEND="" declare HOMEPAGE="http://search.cpan.org/dist/Server-Starter/" declare -x INHERITED=" multiprocessing perl-functions perl-module" declare -x INPUT_DEVICES="evdev libinput" declare -x INSDESTTREE="" declare -x INSOPTIONS="-m0644" declare IUSE="test " declare -x IUSE_EFFECTIVE="abi_x86_64 alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 elibc_AIX elibc_Cygwin elibc_Darwin elibc_DragonFly elibc_FreeBSD elibc_HPUX elibc_Interix elibc_NetBSD elibc_OpenBSD elibc_SunOS elibc_Winnt elibc_bionic elibc_glibc elibc_mingw elibc_mintlib elibc_musl elibc_uclibc hppa ia64 kernel_AIX kernel_Darwin kernel_FreeBSD kernel_HPUX kernel_NetBSD kernel_OpenBSD kernel_SunOS kernel_Winnt kernel_freemint kernel_linux m68k m68k-mint mips nios2 ppc ppc-aix ppc-macos ppc64 ppc64-linux prefix prefix-chain prefix-guest riscv s390 sh sparc sparc-fbsd sparc-solaris sparc64-solaris test userland_BSD userland_GNU x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x IUSE_IMPLICIT="abi_x86_64 prefix prefix-chain prefix-guest" declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac" declare -x JAVA_HOME="/etc/java-config-2/current-system-vm" declare -x JDK_HOME="/etc/java-config-2/current-system-vm" declare -x KERNEL="linux" declare -x KEYWORDS="amd64 ~x86" declare -x L10N="" declare -x LANG="en_US.utf8" declare -x LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" declare -x LC_COLLATE="C" declare -x LC_MESSAGES="C" declare -x LDFLAGS="-Wl,-O1 -Wl,--as-needed" declare -x LDFLAGS_amd64="-m elf_x86_64" declare -x LDFLAGS_x32="-m elf32_x86_64" declare -x LDFLAGS_x86="-m elf_i386" declare -x LIBDIR_amd64="lib64" declare -x LIBDIR_x32="libx32" declare -x LIBDIR_x86="lib32" declare -x LIBOPTIONS="-m0644" declare -x LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" declare -x LICENSE="|| ( Artistic GPL-1+ )" declare -x MAKEOPTS="-j1" declare -x MANPAGER="manpager" declare -x MULTILIB_ABIS="amd64 x86" declare -x MULTILIB_STRICT_DENY="64-bit.*shared object" declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib" declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev|systemd|clang|python-exec|llvm)" declare -x MULTIOSDIRS="../lib64:../lib32" declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" declare -x NINJAFLAGS="-j1" declare -x OFFICE_IMPLEMENTATION="libreoffice" declare -x OPENGL_PROFILE="xorg-x11" declare -a PATCHES=([0]="/var/tmp/portage/dev-perl/Server-Starter-0.330.0/files/Server-Starter-0.330.0-perl526.patch") declare -x PATH="/usr/lib/portage/python3.4/ebuild-helpers/xattr:/usr/lib/portage/python3.4/ebuild-helpers:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/6.3.0:/usr/lib/llvm/4/bin:/usr/bin/cdsclient" declare -x PAX_MARKINGS="none" declare PDEPEND="" declare -- PERL_EXPF="src_prepare src_configure src_compile src_test src_install" declare -x PERL_EXTUTILS_AUTOINSTALL="--skipdeps" declare -x PERL_MM_USE_DEFAULT="1" declare -- PERL_VERSION="5.24.1" declare -x PGPLOT_FONT="/usr/lib64/pgplot/grfont.dat" declare -x PHP_TARGETS="php5-6" declare -x PKG_CONFIG_PATH="/usr/lib64/pkgconfig" declare -a PORTAGE_DOCOMPRESS=([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man") declare -x PORTAGE_DOCOMPRESS_SIZE_LIMIT="128" declare -a PORTAGE_DOCOMPRESS_SKIP=([0]="/usr/share/doc/Server-Starter-0.330.0/html") declare -- PREFER_BUILDPL="yes" declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC IUSE_IMPLICIT KERNEL USERLAND USE_EXPAND_IMPLICIT USE_EXPAND_UNPREFIXED USE_EXPAND_VALUES_ARCH USE_EXPAND_VALUES_ELIBC USE_EXPAND_VALUES_KERNEL USE_EXPAND_VALUES_USERLAND" declare -x PROPERTIES="" declare -x PROVIDE="" declare -x PYTHONDONTWRITEBYTECODE="1" declare -x PYTHON_SINGLE_TARGET="python3_4" declare -x PYTHON_TARGETS="python2_7 python3_4" declare RDEPEND="dev-lang/perl:=" declare REPOSITORY declare REQUIRED_USE="" declare -x RESTRICT="" declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port= ; exec rsync --rsh=\\\"ssh \\\${port:+-p\\\${port}} \\\${3}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\" \"\${PORTAGE_SSH_OPTS}\"" declare -x RUBY_TARGETS="ruby21 ruby22" declare -x R_HOME="/usr/lib64/R" declare -x S="/var/tmp/portage/dev-perl/Server-Starter-0.330.0/work/Server-Starter-0.33" declare -x SANDBOX_DEBUG="0" declare -x SANDBOX_DENY="" declare -x SANDBOX_PREDICT="/var/tmp/portage/dev-perl/Server-Starter-0.330.0/homedir:/proc/self/coredump_filter:/var/cache/fontconfig" declare -x SANDBOX_READ="/:/var/tmp" declare -x SANDBOX_VERBOSE="1" declare -x SANDBOX_WRITE=":/dev/console:/dev/fd:/dev/full:/dev/null:/dev/ptmx:/dev/pts/:/dev/pty:/dev/shm:/dev/tts:/dev/tty:/dev/vc/:/dev/zero:/proc/self/fd:/tmp/:/usr/lib/cf:/usr/lib/conftest:/usr/lib32/cf:/usr/lib32/conftest:/usr/lib64/cf:/usr/lib64/conftest:/usr/tmp/cf:/usr/tmp/conftest:/var/tmp:/var/tmp/:/var/tmp/portage/dev-perl/Server-Starter-0.330.0/homedir/.bash_history" declare -x SHELL="/bin/bash" declare -- SITE_ARCH="/usr/local/lib64/perl5/5.24.1/x86_64-linux" declare -- SITE_LIB="/usr/local/lib64/perl5/5.24.1" declare -x SLOT="0" declare -- SRC_PREP="yes" declare SRC_URI="mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.33.tar.gz" declare -x SYMLINK_LIB="yes" declare -x TWISTED_DISABLE_WRITING_OF_PLUGIN_CACHE="1" declare -x USE="abi_x86_64 amd64 elibc_glibc kernel_linux test userland_GNU" declare -x USERLAND="GNU" declare -x USE_EXPAND_IMPLICIT="ARCH ELIBC KERNEL USERLAND" declare -x USE_EXPAND_UNPREFIXED="ARCH" declare -x USE_EXPAND_VALUES_ARCH="alpha amd64 amd64-fbsd amd64-linux arm arm-linux arm64 hppa ia64 m68k m68k-mint mips nios2 ppc ppc64 ppc64-linux ppc-aix ppc-macos riscv s390 sh sparc sparc64-solaris sparc-fbsd sparc-solaris x64-cygwin x64-macos x64-solaris x86 x86-cygwin x86-fbsd x86-linux x86-macos x86-solaris x86-winnt" declare -x USE_EXPAND_VALUES_ELIBC="AIX bionic Cygwin Darwin DragonFly FreeBSD glibc HPUX Interix mingw mintlib musl NetBSD OpenBSD SunOS uclibc Winnt" declare -x USE_EXPAND_VALUES_KERNEL="AIX Darwin FreeBSD freemint HPUX linux NetBSD OpenBSD SunOS Winnt" declare -x USE_EXPAND_VALUES_USERLAND="BSD GNU" declare -- VENDOR_ARCH="/usr/lib64/perl5/vendor_perl/5.24.1/x86_64-linux" declare -- VENDOR_LIB="/usr/lib64/perl5/vendor_perl/5.24.1" declare -x VIDEO_CARDS="intel i965" declare -x XDG_CACHE_HOME="/root/cache" declare -x XDG_CONFIG_DIRS="/etc/xdg" declare -x XDG_CONFIG_HOME="/root/config" declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share" declare -x XDG_DATA_HOME="/root/share" declare -x XDG_DESKTOP_DIR="/root/Desktop" declare -x XDG_DOCUMENTS_DIR="/root/Documents" declare -x XDG_DOWNLOAD_DIR="/root/Downloads" declare -x XDG_MUSIC_DIR="/root/Music" declare -x XDG_PICTURES_DIR="/root/Pictures" declare -x XDG_PUBLICSHARE_DIR="/root/Public" declare -x XDG_RUNTIME_DIR="/root/run" declare -x XDG_TEMPLATES_DIR="/root/Templates" declare -x XDG_VIDEOS_DIR="/root/Videos" declare -x XERCESC_NLS_HOME="/usr/share/xerces-c/msg" declare -x XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" declare -x _E_DOCDESTTREE_="" declare -x _E_EXEDESTTREE_="" declare -- _MULTIPROCESSING_ECLASS="1" declare -- i="PERLPREFIX" declare -- perlinfo_done="true" declare -- phase_func declare -- pm_echovar="" declare -- started_applying="1" __eapi6_src_install () { if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then emake DESTDIR="${D}" install; fi; einstalldocs } __eapi6_src_prepare () { if [[ $(declare -p PATCHES 2>/dev/null) == "declare -a"* ]]; then [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"; else if [[ -n ${PATCHES} ]]; then eapply ${PATCHES}; fi; fi; eapply_user } _eapply_patch () { local f=${1}; local prefix=${2}; started_applying=1; ebegin "${prefix:-Applying }${f##*/}"; ${patch_cmd} -p1 -f -s -g0 --no-backup-if-mismatch "${patch_options[@]}" < "${f}"; failed=${?}; if ! eend "${failed}"; then __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; fi } _multijob_fork () { [[ $# -eq 1 ]] || die "incorrect number of arguments"; local ret=0; [[ $1 == "post" ]] && : $(( ++mj_num_jobs )); if [[ ${mj_num_jobs} -ge ${mj_max_jobs} ]]; then multijob_finish_one; ret=$?; fi; [[ $1 == "pre" ]] && : $(( ++mj_num_jobs )); return ${ret} } bashpid () { sh -c 'echo ${PPID}' } eapply () { local failed patch_cmd=patch; local -x LC_COLLATE=POSIX; type -P gpatch > /dev/null && patch_cmd=gpatch; function _eapply_patch () { local f=${1}; local prefix=${2}; started_applying=1; ebegin "${prefix:-Applying }${f##*/}"; ${patch_cmd} -p1 -f -s -g0 --no-backup-if-mismatch "${patch_options[@]}" < "${f}"; failed=${?}; if ! eend "${failed}"; then __helpers_die "patch -p1 ${patch_options[*]} failed with ${f}"; fi }; local patch_options=() files=(); local i found_doublehyphen; for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} == -- ]]; then patch_options=("${@:1:i-1}"); files=("${@:i+1}"); found_doublehyphen=1; break; fi; done; if [[ -z ${found_doublehyphen} ]]; then for ((i = 1; i <= ${#@}; ++i )) do if [[ ${@:i:1} != -* ]]; then patch_options=("${@:1:i-1}"); files=("${@:i}"); break; fi; done; for i in "${files[@]}"; do if [[ ${i} == -* ]]; then die "eapply: all options must be passed before non-options"; fi; done; fi; if [[ -z ${files[@]} ]]; then die "eapply: no files specified"; fi; local f; for f in "${files[@]}"; do if [[ -d ${f} ]]; then function _eapply_get_files () { local LC_ALL=POSIX; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; local f; for f in "${1}"/*; do if [[ ${f} == *.diff || ${f} == *.patch ]]; then files+=("${f}"); fi; done; ${prev_shopt} }; local files=(); _eapply_get_files "${f}"; [[ -z ${files[@]} ]] && die "No *.{patch,diff} files in directory ${f}"; einfo "Applying patches from ${f} ..."; local f2; for f2 in "${files[@]}"; do _eapply_patch "${f2}" ' '; [[ ${failed} -ne 0 ]] && return "${failed}"; done; else _eapply_patch "${f}"; [[ ${failed} -ne 0 ]] && return "${failed}"; fi; done; return 0 } eapply_user () { [[ ${EBUILD_PHASE} == prepare ]] || die "eapply_user() called during invalid phase: ${EBUILD_PHASE}"; local tagfile=${T}/.portage_user_patches_applied; [[ -f ${tagfile} ]] && return; >> "${tagfile}"; local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches; local d applied; local prev_shopt=$(shopt -p nullglob); shopt -s nullglob; for d in "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT%/*}}; do if [[ -n $(echo "${d}"/*.diff) || -n $(echo "${d}"/*.patch) ]]; then eapply "${d}"; applied=1; fi; done; ${prev_shopt}; [[ -n ${applied} ]] && ewarn "User patches applied." } einstalldocs () { ( if ! declare -p DOCS &> /dev/null; then local d; for d in README* ChangeLog AUTHORS NEWS TODO CHANGES THANKS BUGS FAQ CREDITS CHANGELOG; do [[ -f ${d} && -s ${d} ]] && docinto / && dodoc "${d}"; done; else if [[ $(declare -p DOCS) == "declare -a"* ]]; then [[ -n ${DOCS[@]} ]] && docinto / && dodoc -r "${DOCS[@]}"; else [[ -n ${DOCS} ]] && docinto / && dodoc -r ${DOCS}; fi; fi ); ( if [[ $(declare -p HTML_DOCS 2>/dev/null) == "declare -a"* ]]; then [[ -n ${HTML_DOCS[@]} ]] && docinto html && dodoc -r "${HTML_DOCS[@]}"; else [[ -n ${HTML_DOCS} ]] && docinto html && dodoc -r ${HTML_DOCS}; fi ) } get_libdir () { local libdir_var="LIBDIR_${ABI}"; local libdir="lib"; [[ -n ${ABI} && -n ${!libdir_var} ]] && libdir=${!libdir_var}; echo "${libdir}" } get_nproc () { local nproc; if type -P nproc &> /dev/null; then nproc=$(nproc); fi; if [[ -z ${nproc} ]] && type -P sysctl &> /dev/null; then nproc=$(sysctl -n hw.ncpu 2>/dev/null); fi; if [[ -z ${nproc} ]] && type -P python &> /dev/null; then nproc=$(python -c 'import multiprocessing; print(multiprocessing.cpu_count());' 2>/dev/null); fi; if [[ -n ${nproc} ]]; then echo "${nproc}"; else echo "${1:-1}"; fi } in_iuse () { local use=${1}; if [[ -z "${use}" ]]; then echo "!!! in_iuse() called without a parameter." 1>&2; echo "!!! in_iuse " 1>&2; die "in_iuse() called without a parameter"; fi; local liuse=(${IUSE_EFFECTIVE}); has "${use}" "${liuse[@]#[+-]}" } makeopts_jobs () { [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; local jobs=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' -e "s:.*[[:space:]](-[a-z]*j|--jobs)[[:space:]].*:${2:-999}:p"); echo ${jobs:-1} } makeopts_loadavg () { [[ $# -eq 0 ]] && set -- "${MAKEOPTS}"; local lavg=$(echo " $* " | sed -r -n -e 's:.*[[:space:]](-[a-z]*l|--(load-average|max-load)[=[:space:]])[[:space:]]*([0-9]+|[0-9]+\.[0-9]+).*:\3:p' -e "s:.*[[:space:]](-[a-z]*l|--(load-average|max-load))[[:space:]].*:${2:-999}:p"); echo ${lavg:-${2:-999}} } multijob_child_init () { local mode="pre"; case $1 in --pre) mode="pre"; shift ;; --post) mode="post"; shift ;; esac; if [[ $# -eq 0 ]]; then trap 'echo ${BASHPID:-$(bashpid)} $? >&'${mj_write_fd} EXIT; trap 'exit 1' INT TERM; else local ret; [[ ${mode} == "pre" ]] && { multijob_pre_fork; ret=$? }; ( multijob_child_init; "$@" ) & [[ ${mode} == "post" ]] && { multijob_post_fork; ret=$? }; return ${ret}; fi } multijob_finish () { local ret=0; while [[ ${mj_num_jobs} -gt 0 ]]; do multijob_finish_one; : $(( ret |= $? )); done; wait; [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments"; EBUILD_DEATH_HOOKS=${EBUILD_DEATH_HOOKS/ wait / }; return ${ret} } multijob_finish_one () { [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments"; local pid ret; read -r -u ${mj_read_fd} pid ret || die; : $(( --mj_num_jobs )); return ${ret} } multijob_init () { has wait ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" wait "; local pipe="${T}/multijob.pipe"; mkfifo -m 600 "${pipe}"; redirect_alloc_fd mj_read_fd "${pipe}"; redirect_alloc_fd mj_write_fd "${pipe}" '>'; rm -f "${pipe}"; mj_max_jobs=$(makeopts_jobs "$@"); mj_num_jobs=0 } multijob_post_fork () { _multijob_fork post "$@" } multijob_pre_fork () { _multijob_fork pre "$@" } perl-module_pkg_postinst () { debug-print-function $FUNCNAME "$@"; if [[ ${CATEGORY} != perl-core ]]; then eerror "perl-module.eclass: You are calling perl-module_pkg_postinst outside the perl-core category."; die " This does not do anything; the call can be removed."; fi; perl_link_duallife_scripts } perl-module_pkg_postrm () { debug-print-function $FUNCNAME "$@"; if [[ ${CATEGORY} != perl-core ]]; then eerror "perl-module.eclass: You are calling perl-module_pkg_postrm outside the perl-core category."; die " This does not do anything; the call can be removed."; fi; perl_link_duallife_scripts } perl-module_src_compile () { debug-print-function $FUNCNAME "$@"; perl_set_version; if [[ $(declare -p mymake 2>&-) != "declare -a mymake="* ]]; then local mymake_local=(${mymake}); else local mymake_local=("${mymake[@]}"); fi; if [[ -f Build ]]; then ./Build build || die "Compilation failed"; else if [[ -f Makefile ]]; then set -- OTHERLDFLAGS="${LDFLAGS}" "${mymake_local[@]}"; einfo "emake" "$@"; emake "$@" || die "Compilation failed"; fi; fi } perl-module_src_configure () { debug-print-function $FUNCNAME "$@"; if [[ ${EAPI:-0} == 5 && ${SRC_PREP} == yes ]]; then return 0; fi; SRC_PREP="yes"; perl_check_env; perl_set_version; [[ -z ${pm_echovar} ]] && export PERL_MM_USE_DEFAULT=1; export PERL_EXTUTILS_AUTOINSTALL="--skipdeps"; if [[ $(declare -p myconf 2>&-) != "declare -a myconf="* ]]; then local myconf_local=(${myconf}); else local myconf_local=("${myconf[@]}"); fi; if [[ ( ${PREFER_BUILDPL} == yes || ! -f Makefile.PL ) && -f Build.PL ]]; then if grep -q '\(use\|require\)\s*Module::Build::Tiny' Build.PL; then einfo "Using Module::Build::Tiny"; if [[ ${DEPEND} != *dev-perl/Module-Build-Tiny* && ${PN} != Module-Build-Tiny ]]; then eerror "QA Notice: The ebuild uses Module::Build::Tiny but doesn't depend on it."; die " Add dev-perl/Module-Build-Tiny to DEPEND!"; fi; else einfo "Using Module::Build"; if [[ ${DEPEND} != *virtual/perl-Module-Build* && ${DEPEND} != *dev-perl/Module-Build* && ${PN} != Module-Build ]]; then eerror "QA Notice: The ebuild uses Module::Build but doesn't depend on it."; die " Add dev-perl/Module-Build to DEPEND!"; fi; fi; set -- --installdirs=vendor --libdoc= --destdir="${D}" --create_packlist=1 "${myconf_local[@]}"; einfo "perl Build.PL" "$@"; perl Build.PL "$@" <<< "${pm_echovar}" || die "Unable to build!"; else if [[ -f Makefile.PL ]]; then einfo "Using ExtUtils::MakeMaker"; set -- PREFIX=${EPREFIX}/usr INSTALLDIRS=vendor INSTALLMAN3DIR='none' DESTDIR="${D}" "${myconf_local[@]}"; einfo "perl Makefile.PL" "$@"; perl Makefile.PL "$@" <<< "${pm_echovar}" || die "Unable to build!"; fi; fi; if [[ ! -f Build.PL && ! -f Makefile.PL ]]; then einfo "No Make or Build file detected..."; return; fi } perl-module_src_install () { debug-print-function $FUNCNAME "$@"; perl_set_version; local f; if [[ -f Build ]]; then mytargets="${mytargets:-install}"; mbparams="${mbparams:---pure}"; einfo "./Build ${mytargets} ${mbparams}"; ./Build ${mytargets} ${mbparams} || die "./Build ${mytargets} ${mbparams} failed"; else if [[ -f Makefile ]]; then case "${CATEGORY}" in dev-perl | perl-core) mytargets="pure_install" ;; *) mytargets="install" ;; esac; if [[ $(declare -p myinst 2>&-) != "declare -a myinst="* ]]; then local myinst_local=(${myinst}); else local myinst_local=("${myinst[@]}"); fi; emake "${myinst_local[@]}" ${mytargets} || die "emake ${myinst_local[@]} ${mytargets} failed"; fi; fi; perl_delete_module_manpages; perl_delete_localpod; if [[ ${EAPI:-0} == 5 ]]; then perl_delete_packlist; else perl_fix_packlist; perl_delete_emptybsdir; fi; perl_remove_temppath; for f in Change* CHANGES README* TODO FAQ ${mydoc}; do [[ -s ${f} ]] && dodoc ${f}; done; if [[ ${EAPI:-0} != 5 ]]; then if in_iuse examples && use examples; then [[ ${#DIST_EXAMPLES[@]} -eq 0 ]] || perl_doexamples "${DIST_EXAMPLES[@]}"; fi; fi; perl_link_duallife_scripts } perl-module_src_prepare () { debug-print-function $FUNCNAME "$@"; if [[ ${EAPI:-0} == 5 ]]; then [[ -n ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"; debug-print "$FUNCNAME: applying user patches"; epatch_user; else default; fi; if [[ -n ${PERL_RM_FILES[@]} ]]; then debug-print "$FUNCNAME: stripping unneeded files"; perl_rm_files "${PERL_RM_FILES[@]}"; fi; perl_fix_osx_extra } perl-module_src_test () { debug-print-function $FUNCNAME "$@"; local my_test_control; local my_test_verbose; if [[ ${EAPI:-0} == 5 ]]; then my_test_control=${SRC_TEST}; my_test_verbose=${TEST_VERBOSE:-0}; if has 'do' ${my_test_control} || has 'parallel' ${my_test_control}; then if has "${my_test_verbose}" 0 && has 'parallel' ${my_test_control}; then export HARNESS_OPTIONS=j$(makeopts_jobs); einfo "Test::Harness Jobs=$(makeopts_jobs)"; fi; else einfo Skipping tests due to SRC_TEST=${SRC_TEST}; return 0; fi; else [[ -n "${DIST_TEST_OVERRIDE}" ]] && ewarn DIST_TEST_OVERRIDE is set to ${DIST_TEST_OVERRIDE}; my_test_control=${DIST_TEST_OVERRIDE:-${DIST_TEST:-do parallel}}; if ! has 'do' ${my_test_control} && ! has 'parallel' ${my_test_control}; then einfo Skipping tests due to DIST_TEST=${my_test_control}; return 0; fi; if has verbose ${my_test_control}; then my_test_verbose=1; else my_test_verbose=0; fi; if has parallel ${my_test_control}; then export HARNESS_OPTIONS=j$(makeopts_jobs); einfo "Test::Harness Jobs=$(makeopts_jobs)"; fi; if ! has network ${my_test_control}; then export NO_NETWORK_TESTING=1; fi; fi; perl_set_version; if [[ -f Build ]]; then ./Build test verbose=${my_test_verbose} || die "test failed"; else if [[ -f Makefile ]]; then emake test TEST_VERBOSE=${my_test_verbose} || die "test failed"; fi; fi } perl-module_src_unpack () { debug-print-function $FUNCNAME "$@"; [[ ${EAPI:-0} == 5 ]] || die "perl-module_src_unpack is banned in EAPI=6 or later"; unpacker_src_unpack } perl_check_env () { local errored value; for i in PERL_MM_OPT PERL5LIB PERL5OPT PERL_MB_OPT PERL_CORE PERLPREFIX; do [ -v $i ] || continue; if [ ${errored:-0} == 0 ]; then if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then elog "perl-module.eclass: Suspicious environment values found."; else eerror "perl-module.eclass: Suspicious environment values found."; fi; fi; errored=1; value=${!i}; if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then elog " $i=\"$value\""; else eerror " $i=\"$value\""; fi; done; [ ${errored:-0} == 0 ] && return; if [ -n "${I_KNOW_WHAT_I_AM_DOING}" ]; then elog "Continuing anyway, seems you know what you're doing."; return; fi; eerror "Your environment settings may lead to undefined behavior and/or build failures."; die "Please fix your environment ( ~/.bashrc, package.env, ... ), see above for details." } perl_delete_emptybsdir () { debug-print-function $FUNCNAME "$@"; perl_set_version; if [[ -d ${D}/${VENDOR_ARCH} ]]; then find "${D}/${VENDOR_ARCH}" -type f -a -name '*.bs' -a -empty -delete; find "${D}" -depth -mindepth 1 -type d -empty -delete; fi } perl_delete_localpod () { debug-print-function $FUNCNAME "$@"; find "${D}" -type f -name perllocal.pod -delete; find "${D}" -depth -mindepth 1 -type d -empty -delete } perl_delete_module_manpages () { debug-print-function $FUNCNAME "$@"; if [[ -d "${ED}"/usr/share/man ]]; then find "${ED}"/usr/share/man -type f -name "*.3pm" -delete; find "${ED}"/usr/share/man -depth -type d -empty -delete; fi } perl_delete_packlist () { debug-print-function $FUNCNAME "$@"; perl_set_version; if [[ -d ${D}/${VENDOR_ARCH} ]]; then find "${D}/${VENDOR_ARCH}" -type f -a -name .packlist -delete; perl_delete_emptybsdir; fi } perl_doexamples () { debug-print-function $FUNCNAME "$@"; einfo "Installing examples into /usr/share/doc/${PF}/examples"; docompress -x /usr/share/doc/${PF}/examples; docinto examples/; dodoc -r $@ } perl_domodule () { local target_prefix=""; local files=(); local doins_opts=(); local recursive="false"; local target; local file; while [[ $# -gt 0 ]]; do case $1 in -C | --target-prefix) [[ -z "${2}" || "${2:0:1}" == "-" ]] && die "${FUNCNAME}: -C|--target-prefix expects an argument, got \"$2\"!"; target_prefix="${2}"; shift 2 ;; -r) recursive="true"; shift ;; *) [[ -z "${1}" || "${1:0:1}" == "-" ]] && die "${FUNCNAME}: Unknown argument \"${1}\"!"; files+=("${1}"); shift 1 ;; esac; done; if [[ "true" == $recursive ]]; then doins_opts+=("-r"); fi; for file in "${files[@]}"; do [[ -e "${file}" ]] || die "$FUNCNAME: Argument \"${file}\" is not an existing file"; [[ "false" == ${recursive} && -d "${file}" ]] && die "$FUNCNAME: Argument \"${file}\" is a directory ( needs -r parameter )"; done; target="$(perl_get_vendorlib)"; [[ -z "${target_prefix}" ]] || target="${target%/}/${target_prefix#/}"; insinto "/${target#/}"; doins "${doins_opts[@]}" "${files[@]}" } perl_fix_osx_extra () { debug-print-function $FUNCNAME "$@"; local f; find "${S}" -type f -name "._*" -print0 | while read -rd '' f; do einfo "Removing AppleDouble encoded Macintosh file: ${f#${S}/}"; rm -f "${f}"; f=${f#${S}/}; grep -q "${f}" "${S}"/MANIFEST && elog "AppleDouble encoded Macintosh file in MANIFEST: ${f#${S}/}"; done } perl_fix_packlist () { debug-print-function $FUNCNAME "$@"; local packlist_temp="${T}/.gentoo_packlist_temp"; find "${D}" -type f -name '.packlist' -print0 | while read -rd '' f; do if file "${f}" | grep -q -i " text"; then einfo "Fixing packlist file /${f#${D}}"; sed -i -e "s:${D}:/:g" "${f}"; sort -u "${f}" > "${packlist_temp}"; mv "${packlist_temp}" "${f}"; cat "${f}" | while read -r entry; do if [ ! -e "${D}/${entry}" ]; then einfo "Pruning surplus packlist entry ${entry}"; grep -v -x -F "${entry}" "${f}" > "${packlist_temp}"; mv "${packlist_temp}" "${f}"; fi; done; fi; done } perl_get_module_version () { debug-print-function $FUNCNAME "$@"; [[ $# -gt 0 ]] || die "${FUNCNAME}: No module name provided"; [[ $# -lt 2 ]] || die "${FUNCNAME}: Too many parameters ($#)"; if ! perl_has_module "$@"; then echo "(Not Installed)"; return 1; fi; perl -we 'my $mn = $ARGV[0]; $mn =~ s{(::|\x{27})}{/}g; local $@; eval { require qq[${mn}.pm]; 1 } or do { print q[(Compilation failed in require)]; exit 1; }; my $stash = \%{ $ARGV[0] . q[::] }; if ( not exists $stash->{VERSION} ) { print q[(No VERSION property)]; exit 0; } if ( not defined ${$stash->{VERSION}} ) { print q[(undef)]; exit 0; } print ${$stash->{VERSION}}; exit 0; ' "$@" } perl_get_raw_vendorlib () { debug-print-function $FUNCNAME "$@"; [[ $# -lt 1 ]] || die "${FUNCNAME}: Too many parameters ($#)"; perl -MConfig -e'exists $Config{$ARGV[0]} || die qq{No such Config key "$ARGV[0]"}; print $Config{$ARGV[0]}; exit 0' -- "installvendorlib" || die "Can't extract installvendorlib from Perl Configuration" } perl_get_vendorlib () { debug-print-function $FUNCNAME "$@"; [[ $# -lt 1 ]] || die "${FUNCNAME}: Too many parameters ($#)"; perl -M5.014 -MConfig -e'exists $Config{$ARGV[0]} || die qq{No such Config key "$ARGV[0]"}; print $Config{$ARGV[0]} =~ s{\A\Q$ARGV[1]\E}{}r; exit 0' -- "installvendorlib" "$EPREFIX" || die "Can't extract installvendorlib from Perl Configuration" } perl_has_module () { debug-print-function $FUNCNAME "$@"; [[ $# -gt 0 ]] || die "${FUNCNAME}: No module name provided"; [[ $# -lt 2 ]] || die "${FUNCNAME}: Too many parameters ($#)"; perl -we 'my $mn = $ARGV[0]; $mn =~ s{(::|\x{27})}{/}g; for(@INC){ next if ref $_; exit 0 if -r $_ . q[/] . $mn . q[.pm] } exit 1' "$@" } perl_has_module_version () { debug-print-function $FUNCNAME "$@"; [[ $# -gt 0 ]] || die "${FUNCNAME}: No module name provided"; [[ $# -gt 1 ]] || die "${FUNCNAME}: No module version provided"; [[ $# -lt 3 ]] || die "${FUNCNAME}: Too many parameters ($#)"; perl -we 'my $mn = $ARGV[0]; $mn =~ s{(::|\x{27})}{/}g; exit ( eval { require qq[${mn}.pm]; $ARGV[0]->VERSION($ARGV[1]); 1 } ? 0 : 1 )' "$@" } perl_link_duallife_scripts () { debug-print-function $FUNCNAME "$@"; if [[ ${CATEGORY} != perl-core ]] || ! has_version ">=dev-lang/perl-5.8.8-r8"; then return 0; fi; local i ff; if has "${EBUILD_PHASE:-none}" "postinst" "postrm"; then for i in "${DUALLIFESCRIPTS[@]}"; do alternatives_auto_makesym "/${i}" "/${i}-[0-9]*"; done; for i in "${DUALLIFEMAN[@]}"; do ff=`echo "${EROOT}"/${i%.1}-${PV}-${P}.1*`; ff=${ff##*.1}; alternatives_auto_makesym "/${i}${ff}" "/${i%.1}-[0-9]*"; done; else pushd "${ED}" > /dev/null; for i in $(find usr/bin -maxdepth 1 -type f 2>/dev/null); do mv ${i}{,-${PV}-${P}} || die; DUALLIFESCRIPTS[${#DUALLIFESCRIPTS[*]}]=${i}; done; for i in $(find usr/share/man/man1 -maxdepth 1 -type f 2>/dev/null); do mv ${i} ${i%.1}-${PV}-${P}.1 || die; DUALLIFEMAN[${#DUALLIFEMAN[*]}]=${i}; done; popd > /dev/null; fi } perl_remove_temppath () { debug-print-function $FUNCNAME "$@"; find "${D}" -type f -not -name '*.so' -print0 | while read -rd '' f; do if file "${f}" | grep -q -i " text"; then grep -q "${D}" "${f}" && ewarn "QA: File contains a temporary path ${f}"; sed -i -e "s:${D}:/:g" "${f}"; fi; done } perl_rm_files () { debug-print-function $FUNCNAME "$@"; local skipfile="${T}/.gentoo_makefile_skip"; local manifile="${S}/MANIFEST"; local manitemp="${T}/.gentoo_manifest_temp"; oldifs="$IFS"; IFS="\n"; for filename in "$@"; do einfo "Removing un-needed ${filename}"; rm -f "${S}/${filename}"; [[ -e "${manifile}" ]] && echo "${filename}" >> "${skipfile}"; done; if [[ -e "${manifile}" && -e "${skipfile}" ]]; then einfo "Fixing Manifest"; grep -v -F -f "${skipfile}" "${manifile}" > "${manitemp}"; mv -f -- "${manitemp}" "${manifile}"; rm -- "${skipfile}"; fi; IFS="$oldifs" } perl_set_version () { debug-print-function $FUNCNAME "$@"; debug-print "$FUNCNAME: perlinfo_done=${perlinfo_done}"; ${perlinfo_done} && return 0; perlinfo_done=true; local f version install{{site,vendor}{arch,lib},archlib}; eval "$(perl -V:{version,install{{site,vendor}{arch,lib},archlib}} )"; PERL_VERSION=${version}; SITE_ARCH=${installsitearch}; SITE_LIB=${installsitelib}; ARCH_LIB=${installarchlib}; VENDOR_LIB=${installvendorlib}; VENDOR_ARCH=${installvendorarch} } pkg_nofetch () { default } redirect_alloc_fd () { local var=$1 file=$2 redir=${3:-"<>"}; if [[ ! -L /dev/fd && ${CBUILD} == *linux* ]]; then eerror "You're missing a /dev/fd symlink to /proc/self/fd."; eerror "Please fix the symlink and check your boot scripts (udev/etc...)."; die "/dev/fd is broken"; fi; if [[ $(( (BASH_VERSINFO[0] << 8) + BASH_VERSINFO[1] )) -ge $(( (4 << 8) + 1 )) ]]; then eval "exec {${var}}${redir}'${file}'"; else local fd=10; while :; do if [[ ! -e /dev/fd/${fd} ]] && [[ ! -L /dev/fd/${fd} ]]; then eval "exec ${fd}${redir}'${file}'" && break; fi; [[ ${fd} -gt 1024 ]] && die 'could not locate a free temp fd !?'; : $(( ++fd )); done; : $(( ${var} = fd )); fi } src_compile () { perl-module_src_compile "$@" } src_configure () { perl-module_src_configure "$@" } src_install () { perl-module_src_install "$@" } src_prepare () { perl-module_src_prepare "$@" } src_test () { perl-module_src_test "$@" } src_unpack () { default }