diff --git a/sdk_container/src/third_party/portage-stable/eclass/apache-2.eclass b/sdk_container/src/third_party/portage-stable/eclass/apache-2.eclass deleted file mode 100644 index 886161758a..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/apache-2.eclass +++ /dev/null @@ -1,684 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: apache-2.eclass -# @MAINTAINER: -# polynomial-c@gentoo.org -# @SUPPORTED_EAPIS: 5 6 7 -# @BLURB: Provides a common set of functions for apache-2.x ebuilds -# @DESCRIPTION: -# This eclass handles apache-2.x ebuild functions such as LoadModule generation -# and inter-module dependency checking. - -inherit autotools flag-o-matic multilib ssl-cert user toolchain-funcs eapi7-ver - -[[ ${CATEGORY}/${PN} != www-servers/apache ]] \ - && die "Do not use this eclass with anything else than www-servers/apache ebuilds!" - -case ${EAPI:-0} in - 0|1|2|3|4) - die "This eclass is banned for EAPI<5" - ;; -esac - -# settings which are version specific go in here: -case $(ver_cut 1-2) in - 2.4) - DEFAULT_MPM_THREADED="event" #509922 - CDEPEND=">=dev-libs/apr-1.5.1:= - !www-apache/mod_macro" #492578 #477702 - ;; - 2.2) - DEFAULT_MPM_THREADED="worker" - CDEPEND=">=dev-libs/apr-1.4.5:=" #368651 - ;; - *) - die "Unknown MAJOR.MINOR apache version." - ;; -esac - -# ============================================================================== -# INTERNAL VARIABLES -# ============================================================================== - -# @ECLASS-VARIABLE: GENTOO_PATCHNAME -# @DESCRIPTION: -# This internal variable contains the prefix for the patch tarball. -# Defaults to the full name and version (including revision) of the package. -# If you want to override this in an ebuild, use: -# ORIG_PR="(revision of Gentoo stuff you want)" -# GENTOO_PATCHNAME="gentoo-${PN}-${PV}${ORIG_PR:+-${ORIG_PR}}" -[[ -n "${GENTOO_PATCHNAME}" ]] || GENTOO_PATCHNAME="gentoo-${PF}" - -# @ECLASS-VARIABLE: GENTOO_PATCHDIR -# @DESCRIPTION: -# This internal variable contains the working directory where patches and config -# files are located. -# Defaults to the patchset name appended to the working directory. -[[ -n "${GENTOO_PATCHDIR}" ]] || GENTOO_PATCHDIR="${WORKDIR}/${GENTOO_PATCHNAME}" - -# @VARIABLE: GENTOO_DEVELOPER -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains the name of the -# gentoo developer who created the patch tarball - -# @VARIABLE: GENTOO_PATCHSTAMP -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains the date the patch -# tarball was created at in YYYYMMDD format - -# @VARIABLE: GENTOO_PATCH_A -# @DESCRIPTION: -# This variable should contain the entire filename of patch tarball. -# Defaults to the name of the patchset, with a datestamp. -[[ -n "${GENTOO_PATCH_A}" ]] || GENTOO_PATCH_A="${GENTOO_PATCHNAME}-${GENTOO_PATCHSTAMP}.tar.bz2" - -SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2 - https://dev.gentoo.org/~${GENTOO_DEVELOPER}/dist/apache/${GENTOO_PATCH_A}" - -# @VARIABLE: IUSE_MPMS_FORK -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a list of forking -# (i.e. non-threaded) MPMs - -# @VARIABLE: IUSE_MPMS_THREAD -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a list of threaded -# MPMs - -# @VARIABLE: IUSE_MODULES -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a list of available -# built-in modules - -IUSE_MPMS="${IUSE_MPMS_FORK} ${IUSE_MPMS_THREAD}" -IUSE="${IUSE} debug doc gdbm ldap libressl selinux ssl static suexec threads" - -for module in ${IUSE_MODULES} ; do - IUSE="${IUSE} apache2_modules_${module}" -done - -_apache2_set_mpms() { - local mpm - local ompm - - for mpm in ${IUSE_MPMS} ; do - IUSE="${IUSE} apache2_mpms_${mpm}" - - REQUIRED_USE+=" apache2_mpms_${mpm}? (" - for ompm in ${IUSE_MPMS} ; do - if [[ "${mpm}" != "${ompm}" ]] ; then - REQUIRED_USE+=" !apache2_mpms_${ompm}" - fi - done - - if has ${mpm} ${IUSE_MPMS_FORK} ; then - REQUIRED_USE+=" !threads" - else - REQUIRED_USE+=" threads" - fi - REQUIRED_USE+=" )" - done - - if [[ "$(ver_cut 1-2)" != 2.2 ]] ; then - REQUIRED_USE+=" apache2_mpms_prefork? ( !apache2_modules_http2 )" - fi -} -_apache2_set_mpms -unset -f _apache2_set_mpms - -DEPEND="${CDEPEND} - dev-lang/perl - =dev-libs/apr-util-1*:=[gdbm=,ldap?] - dev-libs/libpcre - apache2_modules_deflate? ( sys-libs/zlib ) - apache2_modules_mime? ( app-misc/mime-types ) - gdbm? ( sys-libs/gdbm:= ) - ldap? ( =net-nds/openldap-2* ) - ssl? ( - !libressl? ( >=dev-libs/openssl-1.0.2:0= ) - libressl? ( dev-libs/libressl:0= ) - ) - !=www-servers/apache-1*" -RDEPEND+=" ${DEPEND} - selinux? ( sec-policy/selinux-apache )" -PDEPEND="~app-admin/apache-tools-${PV}" - -S="${WORKDIR}/httpd-${PV}" - -# @VARIABLE: MODULE_DEPENDS -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a space-separated -# list of dependency tokens each with a module and the module it depends on -# separated by a colon - -# now extend REQUIRED_USE to reflect the module dependencies to portage -_apache2_set_module_depends() { - local dep - - for dep in ${MODULE_DEPENDS} ; do - REQUIRED_USE+=" apache2_modules_${dep%:*}? ( apache2_modules_${dep#*:} )" - done -} -_apache2_set_module_depends -unset -f _apache2_set_module_depends - -# ============================================================================== -# INTERNAL FUNCTIONS -# ============================================================================== - -# @ECLASS-VARIABLE: MY_MPM -# @DESCRIPTION: -# This internal variable contains the selected MPM after a call to setup_mpm() - -# @FUNCTION: setup_mpm -# @DESCRIPTION: -# This internal function makes sure that only one of APACHE2_MPMS was selected -# or a default based on USE=threads is selected if APACHE2_MPMS is empty -setup_mpm() { - MY_MPM="" - for x in ${IUSE_MPMS} ; do - if use apache2_mpms_${x} ; then - # there can at most be one MPM selected because of REQUIRED_USE constraints - MY_MPM=${x} - elog - elog "Selected MPM: ${MY_MPM}" - elog - break - fi - done - - if [[ -z "${MY_MPM}" ]] ; then - if use threads ; then - MY_MPM=${DEFAULT_MPM_THREADED} - elog - elog "Selected default threaded MPM: ${MY_MPM}" - elog - else - MY_MPM=prefork - elog - elog "Selected default MPM: ${MY_MPM}" - elog - fi - fi -} - -# @VARIABLE: MODULE_CRITICAL -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a space-separated -# list of modules critical for the default apache. A user may still -# disable these modules for custom minimal installation at their own risk. - -# @FUNCTION: check_module_critical -# @DESCRIPTION: -# This internal function warns the user about modules critical for the default -# apache configuration. -check_module_critical() { - local unsupported=0 - - for m in ${MODULE_CRITICAL} ; do - if ! has ${m} ${MY_MODS[@]} ; then - ewarn "Module '${m}' is required in the default apache configuration." - unsupported=1 - fi - done - - if [[ ${unsupported} -ne 0 ]] ; then - ewarn - ewarn "You have disabled one or more required modules" - ewarn "for the default apache configuration." - ewarn "Although this is not an error, please be" - ewarn "aware that this setup is UNSUPPORTED." - ewarn - fi -} - -# @ECLASS-VARIABLE: MY_CONF -# @DESCRIPTION: -# This internal variable contains the econf options for the current module -# selection after a call to setup_modules() - -# @ECLASS-VARIABLE: MY_MODS -# @DESCRIPTION: -# This internal variable contains a sorted, space separated list of currently -# selected modules after a call to setup_modules() - -# @FUNCTION: setup_modules -# @DESCRIPTION: -# This internal function selects all built-in modules based on USE flags and -# APACHE2_MODULES USE_EXPAND flags -setup_modules() { - local mod_type= - - if use static ; then - mod_type="static" - else - mod_type="shared" - fi - - MY_CONF=( --enable-so=static ) - MY_MODS=() - - if use ldap ; then - MY_CONF+=( --enable-authnz_ldap=${mod_type} --enable-ldap=${mod_type} ) - MY_MODS+=( ldap authnz_ldap ) - else - MY_CONF+=( --disable-authnz_ldap --disable-ldap ) - fi - - if use ssl ; then - MY_CONF+=( --with-ssl --enable-ssl=${mod_type} ) - MY_MODS+=( ssl ) - else - MY_CONF+=( --without-ssl --disable-ssl ) - fi - - if use suexec ; then - elog "You can manipulate several configure options of suexec" - elog "through the following environment variables:" - elog - elog " SUEXEC_SAFEPATH: Default PATH for suexec (default: '${EPREFIX}/usr/local/bin:${EPREFIX}/usr/bin:${EPREFIX}/bin')" - if { ver_test ${PV} -ge 2.4.34 && ! use suexec-syslog ; } || ver_test ${PV} -lt 2.4.34 ; then - elog " SUEXEC_LOGFILE: Path to the suexec logfile (default: '${EPREFIX}/var/log/apache2/suexec_log')" - fi - elog " SUEXEC_CALLER: Name of the user Apache is running as (default: apache)" - elog " SUEXEC_DOCROOT: Directory in which suexec will run scripts (default: '${EPREFIX}/var/www')" - elog " SUEXEC_MINUID: Minimum UID, which is allowed to run scripts via suexec (default: 1000)" - elog " SUEXEC_MINGID: Minimum GID, which is allowed to run scripts via suexec (default: 100)" - elog " SUEXEC_USERDIR: User subdirectories (like /home/user/html) (default: public_html)" - elog " SUEXEC_UMASK: Umask for the suexec process (default: 077)" - elog - - MY_CONF+=( --with-suexec-safepath="${SUEXEC_SAFEPATH:-${EPREFIX}/usr/local/bin:${EPREFIX}/usr/bin:${EPREFIX}/bin}" ) - if ver_test ${PV} -ge 2.4.34 ; then - MY_CONF+=( $(use_with !suexec-syslog suexec-logfile "${SUEXEC_LOGFILE:-${EPREFIX}/var/log/apache2/suexec_log}") ) - MY_CONF+=( $(use_with suexec-syslog) ) - if use suexec-syslog && use suexec-caps ; then - MY_CONF+=( --enable-suexec-capabilities ) - fi - else - MY_CONF+=( --with-suexec-logfile="${SUEXEC_LOGFILE:-${EPREFIX}/var/log/apache2/suexec_log}" ) - fi - MY_CONF+=( --with-suexec-bin="${EPREFIX}/usr/sbin/suexec" ) - MY_CONF+=( --with-suexec-userdir=${SUEXEC_USERDIR:-public_html} ) - MY_CONF+=( --with-suexec-caller=${SUEXEC_CALLER:-apache} ) - MY_CONF+=( --with-suexec-docroot="${SUEXEC_DOCROOT:-${EPREFIX}/var/www}" ) - MY_CONF+=( --with-suexec-uidmin=${SUEXEC_MINUID:-1000} ) - MY_CONF+=( --with-suexec-gidmin=${SUEXEC_MINGID:-100} ) - MY_CONF+=( --with-suexec-umask=${SUEXEC_UMASK:-077} ) - MY_CONF+=( --enable-suexec=${mod_type} ) - MY_MODS+=( suexec ) - else - MY_CONF+=( --disable-suexec ) - fi - - for x in ${IUSE_MODULES} ; do - if use apache2_modules_${x} ; then - MY_CONF+=( --enable-${x}=${mod_type} ) - MY_MODS+=( ${x} ) - else - MY_CONF+=( --disable-${x} ) - fi - done - - # sort and uniquify MY_MODS - MY_MODS=( $(echo ${MY_MODS[@]} | tr ' ' '\n' | sort -u) ) - check_module_critical -} - -# @VARIABLE: MODULE_DEFINES -# @DESCRIPTION: -# This variable needs to be set in the ebuild and contains a space-separated -# list of tokens each mapping a module to a runtime define which can be -# specified in APACHE2_OPTS in /etc/conf.d/apache2 to enable this particular -# module. - -# @FUNCTION: generate_load_module -# @DESCRIPTION: -# This internal function generates the LoadModule lines for httpd.conf based on -# the current module selection and MODULE_DEFINES -generate_load_module() { - local endit=0 mod_lines= mod_dir="${ED%/}/usr/$(get_libdir)/apache2/modules" - - if use static; then - sed -i -e "/%%LOAD_MODULE%%/d" \ - "${GENTOO_PATCHDIR}"/conf/httpd.conf - return - fi - - for m in ${MY_MODS[@]} ; do - if [[ -e "${mod_dir}/mod_${m}.so" ]] ; then - for def in ${MODULE_DEFINES} ; do - if [[ "${m}" == "${def%:*}" ]] ; then - mod_lines="${mod_lines}\n" - endit=1 - fi - done - - mod_lines="${mod_lines}\nLoadModule ${m}_module modules/mod_${m}.so" - - if [[ ${endit} -ne 0 ]] ; then - mod_lines="${mod_lines}\n" - endit=0 - fi - fi - done - - sed -i -e "s:%%LOAD_MODULE%%:${mod_lines}:" \ - "${GENTOO_PATCHDIR}"/conf/httpd.conf -} - -# @FUNCTION: check_upgrade -# @DESCRIPTION: -# This internal function checks if the previous configuration file for built-in -# modules exists in ROOT and prevents upgrade in this case. Users are supposed -# to convert this file to the new APACHE2_MODULES USE_EXPAND variable and remove -# it afterwards. -check_upgrade() { - if [[ -e "${EROOT}"etc/apache2/apache2-builtin-mods ]]; then - eerror "The previous configuration file for built-in modules" - eerror "(${EROOT}etc/apache2/apache2-builtin-mods) exists on your" - eerror "system." - eerror - eerror "Please read https://wiki.gentoo.org/wiki/Project:Apache/Upgrading" - eerror "for detailed information how to convert this file to the new" - eerror "APACHE2_MODULES USE_EXPAND variable." - eerror - die "upgrade not possible with existing ${ROOT}etc/apache2/apache2-builtin-mods" - fi -} - -# ============================================================================== -# EXPORTED FUNCTIONS -# ============================================================================== - -# @FUNCTION: apache-2_pkg_setup -# @DESCRIPTION: -# This function selects built-in modules, the MPM and other configure options, -# creates the apache user and group and informs about CONFIG_SYSVIPC being -# needed (we don't depend on kernel sources and therefore cannot check). -apache-2_pkg_setup() { - check_upgrade - - # setup apache user and group - enewgroup apache 81 - enewuser apache 81 -1 /var/www apache - - setup_mpm - setup_modules - - if use debug; then - MY_CONF+=( --enable-exception-hook ) - fi - - elog "Please note that you need SysV IPC support in your kernel." - elog "Make sure CONFIG_SYSVIPC=y is set." - elog - - if use userland_BSD; then - elog "On BSD systems you need to add the following line to /boot/loader.conf:" - elog " accf_http_load=\"YES\"" - if use ssl ; then - elog " accf_data_load=\"YES\"" - fi - elog - fi -} - -# @FUNCTION: apache-2_src_prepare -# @DESCRIPTION: -# This function applies patches, configures a custom file-system layout and -# rebuilds the configure scripts. -apache-2_src_prepare() { - #fix prefix in conf files etc (bug #433736) - use !prefix || sed -e "s@/\(usr\|var\|etc\|run\)/@${EPREFIX}&@g" \ - -i "${GENTOO_PATCHDIR}"/conf/httpd.conf "${GENTOO_PATCHDIR}"/scripts/* \ - "${GENTOO_PATCHDIR}"/docs/*.example "${GENTOO_PATCHDIR}"/patches/*.layout \ - "${GENTOO_PATCHDIR}"/init/* "${GENTOO_PATCHDIR}"/conf/vhosts.d/* \ - "${GENTOO_PATCHDIR}"/conf/modules.d/* || die - - # 03_all_gentoo-apache-tools.patch injects -Wl,-z,now, which is not a good - # idea for everyone - case ${CHOST} in - *-linux-gnu|*-solaris*|*-freebsd*) - # do nothing, these use GNU binutils - : - ;; - *-darwin*) - sed -i -e 's/-Wl,-z,now/-Wl,-bind_at_load/g' \ - "${GENTOO_PATCHDIR}"/patches/03_all_gentoo_apache-tools.patch - ;; - *) - # patch it out to be like upstream - sed -i -e 's/-Wl,-z,now//g' \ - "${GENTOO_PATCHDIR}"/patches/03_all_gentoo_apache-tools.patch - ;; - esac - - # Use correct multilib libdir in gentoo patches - sed -i -e "s:/usr/lib:/usr/$(get_libdir):g" \ - "${GENTOO_PATCHDIR}"/{conf/httpd.conf,init/*,patches/config.layout} \ - || die "libdir sed failed" - - if [[ "${EAPI}" -ge 6 ]] ; then - default - eapply "${GENTOO_PATCHDIR}"/patches/*.patch - else - epatch "${GENTOO_PATCHDIR}"/patches/*.patch - fi - - if [[ ${EAPI} = 5 ]] ; then - # Handle patches from ebuild's PATCHES array if one is given - if [[ -n "${PATCHES}" ]] ; then - local patchestype=$(declare -p PATCHES 2>&-) - if [[ "${patchestype}" != "declare -a PATCHES="* ]] ; then - die "Declaring PATCHES as a variable is forbidden. Please use an array instead." - fi - epatch "${PATCHES[@]}" - fi - - # Handle user patches - epatch_user - fi - - # Don't rename configure.in _before_ any possible user patches! - if [[ -f "configure.in" ]] ; then - mv configure.{in,ac} || die - fi - - # setup the filesystem layout config - cat "${GENTOO_PATCHDIR}"/patches/config.layout >> "${S}"/config.layout || \ - die "Failed preparing config.layout!" - sed -i -e "s:version:${PF}:g" "${S}"/config.layout - - # apache2.8 instead of httpd.8 (bug #194828) - mv docs/man/{httpd,apache2}.8 - sed -i -e 's/httpd\.8/apache2.8/g' Makefile.in - - # patched-in MPMs need the build environment rebuilt - sed -i -e '/sinclude/d' configure.ac - AT_M4DIR=build eautoreconf - - # ${T} must be not group-writable, else grsec TPE will block it - chmod g-w "${T}" - - # This package really should upgrade to using pcre's .pc file. - cat <<-\EOF >"${T}"/pcre-config - #!/bin/bash - flags=() - for flag; do - if [[ ${flag} == "--version" ]]; then - flags+=( --modversion ) - else - flags+=( "${flag}" ) - fi - done - exec ${PKG_CONFIG} libpcre "${flags[@]}" - EOF - chmod a+x "${T}"/pcre-config -} - -# @FUNCTION: apache-2_src_configure -# @DESCRIPTION: -# This function adds compiler flags and runs econf and emake based on MY_MPM and -# MY_CONF -apache-2_src_configure() { - tc-export PKG_CONFIG - - # Sanity check in case people have bad mounts/TPE settings. #500928 - if ! "${T}"/pcre-config --help >/dev/null ; then - eerror "Could not execute ${T}/pcre-config; do you have bad mount" - eerror "permissions in ${T} or have TPE turned on in your kernel?" - die "check your runtime settings #500928" - fi - - # Instead of filtering --as-needed (bug #128505), append --no-as-needed - # Thanks to Harald van Dijk - append-ldflags $(no-as-needed) - - # peruser MPM debugging with -X is nearly impossible - if has peruser ${IUSE_MPMS} && use apache2_mpms_peruser ; then - use debug && append-flags -DMPM_PERUSER_DEBUG - fi - - # econf overwrites the stuff from config.layout, so we have to put them into - # our myconf line too - MY_CONF+=( - --includedir="${EPREFIX}"/usr/include/apache2 - --libexecdir="${EPREFIX}"/usr/$(get_libdir)/apache2/modules - --datadir="${EPREFIX}"/var/www/localhost - --sysconfdir="${EPREFIX}"/etc/apache2 - --localstatedir="${EPREFIX}"/var - --with-mpm=${MY_MPM} - --with-apr="${SYSROOT}${EPREFIX}"/usr - --with-apr-util="${SYSROOT}${EPREFIX}"/usr - --with-pcre="${T}"/pcre-config - --with-z="${EPREFIX}"/usr - --with-port=80 - --with-program-name=apache2 - --enable-layout=Gentoo - ) - ac_cv_path_PKGCONFIG=${PKG_CONFIG} \ - econf "${MY_CONF[@]}" - - sed -i -e 's:apache2\.conf:httpd.conf:' include/ap_config_auto.h || die -} - -# @FUNCTION: apache-2_src_install -# @DESCRIPTION: -# This function runs `emake install' and generates, installs and adapts the gentoo -# specific configuration files found in the tarball -apache-2_src_install() { - emake DESTDIR="${D}" MKINSTALLDIRS="mkdir -p" install - - # install our configuration files - keepdir /etc/apache2/vhosts.d - keepdir /etc/apache2/modules.d - - generate_load_module - insinto /etc/apache2 - doins -r "${GENTOO_PATCHDIR}"/conf/* - use apache2_modules_mime_magic && doins docs/conf/magic - - insinto /etc/logrotate.d - newins "${GENTOO_PATCHDIR}"/scripts/apache2-logrotate apache2 - - # generate a sane default APACHE2_OPTS - APACHE2_OPTS="-D DEFAULT_VHOST -D INFO" - use doc && APACHE2_OPTS+=" -D MANUAL" - use ssl && APACHE2_OPTS+=" -D SSL -D SSL_DEFAULT_VHOST" - use suexec && APACHE2_OPTS+=" -D SUEXEC" - if has negotiation ${APACHE2_MODULES} && use apache2_modules_negotiation; then - APACHE2_OPTS+=" -D LANGUAGE" - fi - - sed -i -e "s:APACHE2_OPTS=\".*\":APACHE2_OPTS=\"${APACHE2_OPTS}\":" \ - "${GENTOO_PATCHDIR}"/init/apache2.confd || die - - newconfd "${GENTOO_PATCHDIR}"/init/apache2.confd apache2 - newinitd "${GENTOO_PATCHDIR}"/init/apache2.initd apache2 - - # install apache2ctl wrapper for our init script if available - if test -e "${GENTOO_PATCHDIR}"/scripts/apache2ctl; then - exeinto /usr/sbin - doexe "${GENTOO_PATCHDIR}"/scripts/apache2ctl - else - dosym /etc/init.d/apache2 /usr/sbin/apache2ctl - fi - - # provide legacy symlink for apxs, bug 177697 - dosym apxs /usr/sbin/apxs2 - - # install some documentation - dodoc ABOUT_APACHE CHANGES LAYOUT README README.platforms VERSIONING - dodoc "${GENTOO_PATCHDIR}"/docs/* - - # drop in a convenient link to the manual - if use doc ; then - sed -i -e "s:VERSION:${PVR}:" "${ED%/}/etc/apache2/modules.d/00_apache_manual.conf" - docompress -x /usr/share/doc/${PF}/manual # 503640 - else - rm -f "${ED%/}/etc/apache2/modules.d/00_apache_manual.conf" - rm -Rf "${ED%/}/usr/share/doc/${PF}/manual" - fi - - # the default icons and error pages get stored in - # /usr/share/apache2/{error,icons} - dodir /usr/share/apache2 - mv -f "${ED%/}/var/www/localhost/error" "${ED%/}/usr/share/apache2/error" - mv -f "${ED%/}/var/www/localhost/icons" "${ED%/}/usr/share/apache2/icons" - rm -rf "${ED%/}/var/www/localhost/" - eend $? - - # set some sane permissions for suexec - if use suexec ; then - local needs_adjustment="$(ver_test ${PV} -ge 2.4.34 && { { ! use suexec-syslog || ! use suexec-caps ; } && echo true || echo false ; } || echo true)" - if ${needs_adjustment} ; then - fowners 0:${SUEXEC_CALLER:-apache} /usr/sbin/suexec - fperms 4710 /usr/sbin/suexec - # provide legacy symlink for suexec, bug 177697 - dosym /usr/sbin/suexec /usr/sbin/suexec2 - fi - fi - - # empty dirs - for i in /var/lib/dav /var/log/apache2 /var/cache/apache2 ; do - keepdir ${i} - fowners apache:apache ${i} - fperms 0750 ${i} - done -} - -# @FUNCTION: apache-2_pkg_postinst -# @DESCRIPTION: -# This function creates test certificates if SSL is enabled and installs the -# default index.html to /var/www/localhost if it does not exist. We do this here -# because the default webroot is a copy of the files that exist elsewhere and we -# don't want them to be managed/removed by portage when apache is upgraded. -apache-2_pkg_postinst() { - if use ssl && [[ ! -e "${EROOT}/etc/ssl/apache2/server.pem" ]]; then - SSL_ORGANIZATION="${SSL_ORGANIZATION:-Apache HTTP Server}" - install_cert /etc/ssl/apache2/server - ewarn - ewarn "The location of SSL certificates has changed. If you are" - ewarn "upgrading from ${CATEGORY}/${PN}-2.2.13 or earlier (or remerged" - ewarn "*any* apache version), you might want to move your old" - ewarn "certificates from /etc/apache2/ssl/ to /etc/ssl/apache2/ and" - ewarn "update your config files." - ewarn - fi - - if [[ ! -e "${EROOT}/var/www/localhost" ]] ; then - mkdir -p "${EROOT}/var/www/localhost/htdocs" - echo "

It works!

" > "${EROOT}/var/www/localhost/htdocs/index.html" - fi - - echo - elog "Attention: cgi and cgid modules are now handled via APACHE2_MODULES flags" - elog "in make.conf. Make sure to enable those in order to compile them." - elog "In general, you should use 'cgid' with threaded MPMs and 'cgi' otherwise." - echo - -} - -EXPORT_FUNCTIONS pkg_setup src_prepare src_configure src_install pkg_postinst diff --git a/sdk_container/src/third_party/portage-stable/eclass/base.eclass b/sdk_container/src/third_party/portage-stable/eclass/base.eclass deleted file mode 100644 index 76eee973de..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/base.eclass +++ /dev/null @@ -1,214 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# DEPRECATED -# This eclass has been deprecated and must not be used by any new -# ebuilds or eclasses. Replacements for particular phase functions -# in EAPI 2+: -# -# base_src_unpack() - default (or unpacker_src_unpack if unpacker.eclass -# was inherited) -# base_src_prepare() - inherit eutils, inline: -# epatch "${PATCHES[@]}" # if PATCHES defined as array -# epatch ${PATCHES} # if PATCHES defined as string -# epatch_user -# base_src_configure() - default -# base_src_compile() - default -# base_src_install() - default -# base_src_install_docs() - einstalldocs from eutils.eclass - -# @ECLASS: base.eclass -# @MAINTAINER: -# QA Team -# @AUTHOR: -# Original author: Dan Armak -# @SUPPORTED_EAPIS: 0 1 2 3 4 5 -# @BLURB: The base eclass defines some default functions and variables. -# @DESCRIPTION: -# The base eclass defines some default functions and variables. - -if [[ -z ${_BASE_ECLASS} ]]; then -_BASE_ECLASS=1 - -inherit eutils - -BASE_EXPF="src_unpack src_compile src_install" -case "${EAPI:-0}" in - 0|1) ;; - 2|3|4|5) BASE_EXPF+=" src_prepare src_configure" ;; - *) die "${ECLASS}.eclass is banned in EAPI ${EAPI}";; -esac - -EXPORT_FUNCTIONS ${BASE_EXPF} - -# @ECLASS-VARIABLE: DOCS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Array containing documents passed to dodoc command. -# -# DOCS=( "${S}/doc/document.txt" "${S}/doc/doc_folder/" ) - -# @ECLASS-VARIABLE: HTML_DOCS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Array containing documents passed to dohtml command. -# -# HTML_DOCS=( "${S}/doc/document.html" "${S}/doc/html_folder/" ) - -# @ECLASS-VARIABLE: PATCHES -# @DEFAULT_UNSET -# @DESCRIPTION: -# PATCHES array variable containing all various patches to be applied. -# This variable is expected to be defined in global scope of ebuild. -# Make sure to specify the full path. This variable is utilised in -# src_unpack/src_prepare phase based on EAPI. -# -# NOTE: if using patches folders with special file suffixes you have to -# define one additional variable EPATCH_SUFFIX="something" -# -# PATCHES=( "${FILESDIR}/mypatch.patch" "${FILESDIR}/patches_folder/" ) - - -# @FUNCTION: base_src_unpack -# @DESCRIPTION: -# The base src_unpack function, which is exported. -# Calls also src_prepare with eapi older than 2. -base_src_unpack() { - debug-print-function $FUNCNAME "$@" - - pushd "${WORKDIR}" > /dev/null - - if [[ $(type -t unpacker_src_unpack) == "function" ]] ; then - unpacker_src_unpack - elif [[ -n ${A} ]] ; then - unpack ${A} - fi - has src_prepare ${BASE_EXPF} || base_src_prepare - - popd > /dev/null -} - -# @FUNCTION: base_src_prepare -# @DESCRIPTION: -# The base src_prepare function, which is exported -# EAPI is greater or equal to 2. Here the PATCHES array is evaluated. -base_src_prepare() { - debug-print-function $FUNCNAME "$@" - debug-print "$FUNCNAME: PATCHES=$PATCHES" - - local patches_failed=0 - - pushd "${S}" > /dev/null - if [[ "$(declare -p PATCHES 2>/dev/null 2>&1)" == "declare -a"* ]]; then - for x in "${PATCHES[@]}"; do - debug-print "$FUNCNAME: applying patch from ${x}" - if [[ -d "${x}" ]]; then - # Use standardized names and locations with bulk patching - # Patch directory is ${WORKDIR}/patch - # See epatch() in eutils.eclass for more documentation - EPATCH_SUFFIX=${EPATCH_SUFFIX:=patch} - - # in order to preserve normal EPATCH_SOURCE value that can - # be used other way than with base eclass store in local - # variable and restore later - oldval=${EPATCH_SOURCE} - EPATCH_SOURCE=${x} - EPATCH_FORCE=yes - epatch - EPATCH_SOURCE=${oldval} - elif [[ -f "${x}" ]]; then - epatch "${x}" - else - ewarn "QA: File or directory \"${x}\" does not exist." - ewarn "QA: Check your PATCHES array or add missing file/directory." - patches_failed=1 - fi - done - [[ ${patches_failed} -eq 1 ]] && die "Some patches failed. See above messages." - else - for x in ${PATCHES}; do - debug-print "$FUNCNAME: patching from ${x}" - epatch "${x}" - done - fi - - # Apply user patches - debug-print "$FUNCNAME: applying user patches" - epatch_user - - popd > /dev/null -} - -# @FUNCTION: base_src_configure -# @DESCRIPTION: -# The base src_configure function, which is exported when -# EAPI is greater or equal to 2. Runs basic econf. -base_src_configure() { - debug-print-function $FUNCNAME "$@" - - # there is no pushd ${S} so we can override its place where to run - [[ -x ${ECONF_SOURCE:-.}/configure ]] && econf "$@" -} - -# @FUNCTION: base_src_compile -# @DESCRIPTION: -# The base src_compile function, calls src_configure with -# EAPI older than 2. -base_src_compile() { - debug-print-function $FUNCNAME "$@" - - has src_configure ${BASE_EXPF} || base_src_configure - base_src_make "$@" -} - -# @FUNCTION: base_src_make -# @DESCRIPTION: -# Actual function that runs emake command. -base_src_make() { - debug-print-function $FUNCNAME "$@" - - if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then - emake "$@" || die "died running emake, $FUNCNAME" - fi -} - -# @FUNCTION: base_src_install -# @DESCRIPTION: -# The base src_install function. Runs make install and -# installs documents and html documents from DOCS and HTML_DOCS -# arrays. -base_src_install() { - debug-print-function $FUNCNAME "$@" - - emake DESTDIR="${D}" "$@" install || die "died running make install, $FUNCNAME" - base_src_install_docs -} - -# @FUNCTION: base_src_install_docs -# @DESCRIPTION: -# Actual function that install documentation from -# DOCS and HTML_DOCS arrays. -base_src_install_docs() { - debug-print-function $FUNCNAME "$@" - - local x - - pushd "${S}" > /dev/null - - if [[ "$(declare -p DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then - for x in "${DOCS[@]}"; do - debug-print "$FUNCNAME: docs: creating document from ${x}" - dodoc "${x}" || die "dodoc failed" - done - fi - if [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then - for x in "${HTML_DOCS[@]}"; do - debug-print "$FUNCNAME: docs: creating html document from ${x}" - dohtml -r "${x}" || die "dohtml failed" - done - fi - - popd > /dev/null -} - -fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/cannadic.eclass b/sdk_container/src/third_party/portage-stable/eclass/cannadic.eclass deleted file mode 100644 index 7392d5ce6a..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/cannadic.eclass +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: cannadic.eclass -# @MAINTAINER: -# cjk@gentoo.org -# @AUTHOR: -# Mamoru KOMACHI -# @BLURB: Function for Canna compatible dictionaries -# @DESCRIPTION: -# The cannadic eclass is used for installation and setup of Canna -# compatible dictionaries within the Portage system. - -inherit eutils - -EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_postrm src_install - -HOMEPAGE="http://canna.osdn.jp/" # you need to change this! -SRC_URI="mirror://gentoo/${P}.tar.gz" - -DICSDIRFILE="${FILESDIR}/*.dics.dir" -CANNADICS="${CANNADICS}" # (optional) - -# You don't need to modify these -CANNADIC_CANNA_DIR="${EROOT:-${ROOT}}"var/lib/canna/dic/canna -CANNADIC_DICS_DIR="${EROOT:-${ROOT}}"var/lib/canna/dic/dics.d -readonly CANNADIC_CANNA_DIR CANNADIC_DICS_DIR - -# @FUNCTION: cannadic_pkg_setup -# @DESCRIPTION: -# Sets up ${CANNADIC_CANNA_DIR} -cannadic_pkg_setup() { - keepdir "${CANNADIC_CANNA_DIR}" - fowners bin:bin "${CANNADIC_CANNA_DIR}" - fperms 0775 "${CANNADIC_CANNA_DIR}" -} - -# @FUNCTION: cannadic-install -# @DESCRIPTION: -# Installs dictionaries to ${CANNADIC_CANNA_DIR} -cannadic-install() { - insinto "${CANNADIC_CANNA_DIR}" - insopts -m 0664 -o bin -g bin - doins "${@}" -} - -# @FUNCTION: dicsdir-install -# @DESCRIPTION: -# Installs dics.dir from ${DICSDIRFILE} -dicsdir-install() { - insinto "${CANNADIC_DICS_DIR}" - doins "${DICSDIRFILE}" -} - -# @FUNCTION: cannadic_src_install -# @DESCRIPTION: -# Installs all dictionaries under ${WORKDIR} -# plus dics.dir and docs -cannadic_src_install() { - local f - for f in *.c[btl]d *.t; do - if [[ -s "${f}" ]]; then - cannadic-install "${f}" - fi - done 2> /dev/null - - dicsdir-install || die - - einstalldocs -} - -# @FUNCTION: update-cannadic-dir -# @DESCRIPTION: -# Updates dics.dir for Canna Server, script for this part taken from Debian GNU/Linux -# -# compiles dics.dir files for Canna Server -# Copyright 2001 ISHIKAWA Mutsumi -# Licensed under the GNU General Public License, version 2. See the file -# /usr/portage/license/GPL-2 or . -update-cannadic-dir() { - einfo - einfo "Updating dics.dir for Canna ..." - einfo - - # write new dics.dir file in case we are interrupted - cat <<-EOF > "${CANNADIC_CANNA_DIR}"/dics.dir.update-new - # dics.dir -- automatically generated file by Portage. - # DO NOT EDIT BY HAND. - EOF - - local f - for f in "${CANNADIC_DICS_DIR}"/*.dics.dir; do - echo "# ${f}" >> "${CANNADIC_CANNA_DIR}"/dics.dir.update-new - cat "${f}" >> "${CANNADIC_CANNA_DIR}"/dics.dir.update-new - einfo "Added ${f}." - done - - mv "${CANNADIC_CANNA_DIR}"/dics.dir.update-new "${CANNADIC_CANNA_DIR}"/dics.dir - - einfo - einfo "Done." - einfo -} - -# @FUNCTION: cannadic_pkg_postinst -# @DESCRIPTION: -# Updates dics.dir and print out notice after install -cannadic_pkg_postinst() { - update-cannadic-dir - - einfo - einfo "Please restart cannaserver to fit the changes." - einfo "You need to modify your config file (~/.canna) to enable dictionaries." - - if [[ -n "${CANNADICS}" ]]; then - einfo "e.g) add $(for d in ${CANNADICS}; do echo -n "\"${d}\" "; done)to section use-dictionary()." - einfo "For details, see documents under /usr/share/doc/${PF}." - fi - - einfo "If you do not have ~/.canna, you can find sample files in /usr/share/canna." - ewarn "If you are upgrading from existing dictionary, you may need to recreate" - ewarn "user dictionary if you have one." - einfo -} - -# @FUNCTION: cannadic_pkg_postrm -# @DESCRIPTION: -# Updates dics.dir and print out notice after uninstall -cannadic_pkg_postrm() { - update-cannadic-dir - - einfo - einfo "Please restart cannaserver to fit changes." - einfo "and modify your config file (~/.canna) to disable dictionary." - - if [[ -n "${CANNADICS}" ]]; then - einfo "e.g) delete $(for d in ${CANNADICS}; do echo -n "\"${d}\" "; done)from section use-dictionary()." - fi - - einfo -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/cdrom.eclass b/sdk_container/src/third_party/portage-stable/eclass/cdrom.eclass deleted file mode 100644 index 7b0eb9c6c3..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/cdrom.eclass +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: cdrom.eclass -# @MAINTAINER: -# games@gentoo.org -# @BLURB: Functions for CD-ROM handling -# @DESCRIPTION: -# Acquire CD(s) for those lovely CD-based emerges. Yes, this violates -# the whole "non-interactive" policy, but damnit I want CD support! -# -# Do not call these functions in pkg_* phases like pkg_setup as they -# should not be used for binary packages. Most packages using this -# eclass will require RESTRICT="bindist" but the point still stands. -# The functions are generally called in src_unpack. - -if [[ -z ${_CDROM_ECLASS} ]]; then -_CDROM_ECLASS=1 - -inherit portability - -# @ECLASS-VARIABLE: CDROM_OPTIONAL -# @DEFAULT_UNSET -# @DESCRIPTION: -# By default, the eclass sets PROPERTIES="interactive" on the assumption -# that people will be using these. If your package optionally supports -# disc-based installs then set this to "yes" and we'll set things -# conditionally based on USE="cdinstall". -if [[ ${CDROM_OPTIONAL} == "yes" ]] ; then - IUSE="cdinstall" - PROPERTIES="cdinstall? ( interactive )" -else - PROPERTIES="interactive" -fi - -# @FUNCTION: cdrom_get_cds -# @USAGE: [:alt cd1 file] [cd2 file[:alt cd2 file]] [...] -# @DESCRIPTION: -# Attempt to locate a CD based upon a file that is on the CD. -# -# If the data spans multiple discs then additional arguments can be -# given to check for more files. Call cdrom_load_next_cd() to scan for -# the next disc in the set. -# -# Sometimes it is necessary to support alternative CD "sets" where the -# contents differ. Alternative files for each disc can be appended to -# each argument, separated by the : character. This feature is -# frequently used to support installing from an existing installation. -# Note that after the first disc is detected, the set is locked so -# cdrom_load_next_cd() will only scan for files in that specific set on -# subsequent discs. -# -# The given files can be within named subdirectories. It is not -# necessary to specify different casings of the same filename as -# matching is done case-insensitively. Filenames can include special -# characters such as spaces. Only : is not allowed. -# -# If you don't want each disc to be referred to as "CD #1", "CD #2", -# etc. then you can optionally provide your own names. Set CDROM_NAME -# for a single disc, CDROM_NAMES as an array for multiple discs, or -# individual CDROM_NAME_# variables for each disc starting from 1. -# -# Despite what you may have seen in older ebuilds, it has never been -# possible to provide per-set disc names. This would not make sense as -# all the names are initially displayed before the first disc has been -# detected. As a workaround, you can redefine the name variable(s) -# after the first disc has been detected. -# -# This function ends with a cdrom_load_next_cd() call to scan for the -# first disc. For more details about variables read and written by this -# eclass, see that function's description. -cdrom_get_cds() { - unset CDROM_SET - export CDROM_CURRENT_CD=0 - export CDROM_NUM_CDS="${#}" - local i - for i in $(seq ${#}); do - export CDROM_CHECK_${i}="${!i}" - done - - # If the user has set CD_ROOT or CD_ROOT_1, don't bother informing - # them about which discs are needed as they presumably already know. - if [[ -n ${CD_ROOT}${CD_ROOT_1} ]] ; then - : - - # Single disc info. - elif [[ ${#} -eq 1 ]] ; then - einfo "This ebuild will need the ${CDROM_NAME:-CD 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 - - # Multi disc info. - else - _cdrom_set_names - einfo "This package may need access to ${#} CDs." - local cdcnt - for cdcnt in $(seq ${#}); do - local 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:" - einfo $(printf "CD_ROOT_%d " $(seq ${#})) - echo - einfo "Or, if you have all the files in the same place, or" - einfo "you only have one CD, 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=/mnt/cdrom" - echo - fi - - # Scan for the first disc. - cdrom_load_next_cd -} - -# @FUNCTION: cdrom_load_next_cd -# @DESCRIPTION: -# If multiple arguments were given to cdrom_get_cds() then you can call -# this function to scan for the next disc. This function is also called -# implicitly to scan for the first disc. -# -# The file(s) given to cdrom_get_cds() are scanned for on any mounted -# filesystem that resembles optical media. If no match is found then -# the user is prompted to insert and mount the disc and press enter to -# rescan. This will loop continuously until a match is found or the -# user aborts with Ctrl+C. -# -# The user can override the scan location by setting CD_ROOT for a -# single disc, CD_ROOT if multiple discs are merged into the same -# directory tree (useful for existing installations), or individual -# CD_ROOT_# variables for each disc starting from 1. If no match is -# found then the function dies with an error as a rescan will not help -# in this instance. -# -# Users wanting to set CD_ROOT or CD_ROOT_# for specific packages -# persistently can do so using Portage's /etc/portage/env feature. -# -# Regardless of which scanning method is used, several variables are set -# by this function for you to use: -# -# CDROM_ROOT: Root path of the detected disc. -# CDROM_MATCH: Path of the matched file, relative to CDROM_ROOT. -# CDROM_ABSMATCH: Absolute path of the matched file. -# CDROM_SET: The matching set number, starting from 0. -# -# The casing of CDROM_MATCH may not be the same as the argument given to -# cdrom_get_cds() as matching is done case-insensitively. You should -# therefore use this variable (or CDROM_ABSMATCH) when performing file -# operations to ensure the file is found. Use newins rather than doins -# to keep the final result consistent and take advantage of Bash -# case-conversion features like ${FOO,,}. -# -# Chances are that you'll need more than just the matched file from each -# disc though. You should not assume the casing of these files either -# but dealing with this goes beyond the scope of this ebuild. For a -# good example, see games-action/descent2-data, which combines advanced -# globbing with advanced tar features to concisely deal with -# case-insensitive matching, case conversion, file moves, and -# conditional exclusion. -# -# Copying directly from a mounted disc using doins/newins will remove -# any read-only permissions but be aware of these when copying to an -# intermediate directory first. Attempting to clean a build directory -# containing read-only files as a non-root user will result in an error. -# If you're using tar as suggested above then you can easily work around -# this with --mode=u+w. -# -# Note that you can only go forwards in the disc list, so make sure you -# only call this function when you're done using the current disc. -# -# If you cd to any location within CDROM_ROOT then remember to leave the -# directory before calling this function again, otherwise the user won't -# be able to unmount the current disc. -cdrom_load_next_cd() { - local showedmsg=0 showjolietmsg=0 - - unset CDROM_ROOT - ((++CDROM_CURRENT_CD)) - - _cdrom_set_names - - while true ; do - local i cdset - : CD_ROOT_${CDROM_CURRENT_CD} - export CDROM_ROOT=${CD_ROOT:-${!_}} - local var="CDROM_CHECK_${CDROM_CURRENT_CD}" - IFS=: read -r -a cdset -d "" <<< "${!var}" - - for i in $(seq ${CDROM_SET:-0} ${CDROM_SET:-$((${#cdset[@]} - 1))}); do - local f=${cdset[${i}]} point= node= fs= opts= - - if [[ -z ${CDROM_ROOT} ]] ; then - while read point node fs opts ; do - has "${fs}" cd9660 iso9660 udf || continue - point=${point//\040/ } - export CDROM_MATCH=$(_cdrom_glob_match "${point}" "${f}") - [[ -z ${CDROM_MATCH} ]] && continue - export CDROM_ROOT=${point} - done <<< "$(get_mounts)" - else - export CDROM_MATCH=$(_cdrom_glob_match "${CDROM_ROOT}" "${f}") - fi - - if [[ -n ${CDROM_MATCH} ]] ; then - export CDROM_ABSMATCH=${CDROM_ROOT}/${CDROM_MATCH} - export CDROM_SET=${i} - break 2 - fi - done - - # If we get here then we were unable to locate a match. If - # CDROM_ROOT is non-empty then this implies that a CD_ROOT - # variable was given and we should therefore abort immediately. - if [[ -n ${CDROM_ROOT} ]] ; then - die "unable to locate CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}" - fi - - if [[ ${showedmsg} -eq 0 ]] ; then - if [[ ${CDROM_NUM_CDS} -eq 1 ]] ; then - einfo "Please insert+mount the ${CDROM_NAME:-CD for ${PN}} now !" - else - local var="CDROM_NAME_${CDROM_CURRENT_CD}" - if [[ -z ${!var} ]] ; then - einfo "Please insert+mount CD #${CDROM_CURRENT_CD} for ${PN} now !" - else - einfo "Please insert+mount the ${!var} now !" - fi - fi - showedmsg=1 - fi - - einfo "Press return to scan for the CD again" - einfo "or hit CTRL+C to abort the emerge." - - if [[ ${showjolietmsg} -eq 0 ]] ; then - showjolietmsg=1 - else - echo - 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." - fi - read || die "something is screwed with your system" - done - - einfo "Found CD #${CDROM_CURRENT_CD} root at ${CDROM_ROOT}" -} - -# @FUNCTION: _cdrom_glob_match -# @USAGE: -# @INTERNAL -# @DESCRIPTION: -# Locates the given path ($2) within the given root directory ($1) -# case-insensitively and returns the first actual matching path. This -# eclass previously used "find -iname" but it only checked the file -# case-insensitively and not the directories. There is "find -ipath" -# but this does not intelligently skip non-matching paths, making it -# slow. Case-insensitive matching can only be applied to patterns so -# extended globbing is used to turn regular strings into patterns. All -# special characters are escaped so don't worry about breaking this. -_cdrom_glob_match() { - # The following line turns this: - # foo*foo/bar bar/baz/file.zip - # - # Into this: - # ?(foo\*foo)/?(bar\ bar)/?(baz)/?(file\.zip) - # - # This turns every path component into an escaped extended glob - # pattern to allow case-insensitive matching. Globs cannot span - # directories so each component becomes an individual pattern. - local p=\?\($(sed -e 's:[^A-Za-z0-9/]:\\\0:g' -e 's:/:)/?(:g' <<< "$2" || die)\) - ( - cd "$1" 2>/dev/null || return - shopt -s extglob nocaseglob nullglob || die - # The first person to make this work without an eval wins a - # cookie. It breaks without it when spaces are present. - eval "ARRAY=( ${p%\?()} )" - echo ${ARRAY[0]} - ) -} - -# @FUNCTION: _cdrom_set_names -# @INTERNAL -# @DESCRIPTION: -# Populate CDROM_NAME_# variables with the CDROM_NAMES array. -_cdrom_set_names() { - if [[ -n ${CDROM_NAMES} ]] ; then - local i - for i in $(seq ${#CDROM_NAMES[@]}); do - export CDROM_NAME_${i}="${CDROM_NAMES[$((${i} - 1))]}" - done - fi -} - -fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/common-lisp-3.eclass b/sdk_container/src/third_party/portage-stable/eclass/common-lisp-3.eclass deleted file mode 100644 index ae22949102..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/common-lisp-3.eclass +++ /dev/null @@ -1,234 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: common-lisp-3.eclass -# @MAINTAINER: -# Common Lisp project -# @BLURB: functions to support the installation of Common Lisp libraries -# @DESCRIPTION: -# Since Common Lisp libraries share similar structure, this eclass aims -# to provide a simple way to write ebuilds with these characteristics. - -inherit eutils - -# @ECLASS-VARIABLE: CLIMPLEMENTATIONS -# @DESCRIPTION: -# Common Lisp implementations -CLIMPLEMENTATIONS="sbcl clisp clozurecl cmucl ecls gcl abcl" - -# @ECLASS-VARIABLE: CLSOURCEROOT -# @DESCRIPTION: -# Default path of Common Lisp libraries sources. Sources will -# be installed into ${CLSOURCEROOT}/${CLPACKAGE}. -CLSOURCEROOT="${ROOT%/}"/usr/share/common-lisp/source - -# @ECLASS-VARIABLE: CLSYSTEMROOT -# @DESCRIPTION: -# Default path to find any asdf file. Any asdf files will be -# symlinked in ${CLSYSTEMROOT}/${CLSYSTEM} as they may be in -# an arbitrarily deeply nested directory under ${CLSOURCEROOT}/${CLPACKAGE}. -CLSYSTEMROOT="${ROOT%/}"/usr/share/common-lisp/systems - -# @ECLASS-VARIABLE: CLPACKAGE -# @DESCRIPTION: -# Default package name. To override, set these after inheriting this eclass. -CLPACKAGE="${PN}" - -PDEPEND="virtual/commonlisp" - -EXPORT_FUNCTIONS src_compile src_install - -# @FUNCTION: common-lisp-3_src_compile -# @DESCRIPTION: -# Since there's nothing to build in most cases, default doesn't do -# anything. -common-lisp-3_src_compile() { - true; -} - -# @FUNCTION: absolute-path-p -# @DESCRIPTION: -# Returns true if ${1} is an absolute path. -absolute-path-p() { - [[ $# -eq 1 ]] || die "${FUNCNAME[0]} must receive one argument" - [[ ${1} == /* ]] -} - -# @FUNCTION: common-lisp-install-one-source -# @DESCRIPTION: -# Installs ${2} source file in ${3} inside CLSOURCEROOT/CLPACKAGE. -common-lisp-install-one-source() { - [[ $# -eq 3 ]] || die "${FUNCNAME[0]} must receive exactly three arguments" - - local fpredicate=${1} - local source=${2} - local target="${CLSOURCEROOT}/${CLPACKAGE}/${3}" - - if absolute-path-p "${source}" ; then - die "Cannot install files with absolute path: ${source}" - fi - - if ${fpredicate} "${source}" ; then - insinto "${target}" - doins "${source}" || die "Failed to install ${source} into $(dirname "${target}")" - fi -} - -# @FUNCTION: lisp-file-p -# @DESCRIPTION: -# Returns true if ${1} is lisp source file. -lisp-file-p() { - [[ $# -eq 1 ]] || die "${FUNCNAME[0]} must receive one argument" - - [[ ${1} =~ \.(lisp|lsp|cl)$ ]] -} - -# @FUNCTION: common-lisp-get-fpredicate -# @DESCRIPTION: -# Outputs the corresponding predicate to check files of type ${1}. -common-lisp-get-fpredicate() { - [[ $# -eq 1 ]] || die "${FUNCNAME[0]} must receive one argument" - - local ftype=${1} - case ${ftype} in - "lisp") echo "lisp-file-p" ;; - "all" ) echo "true" ;; - * ) die "Unknown filetype specifier ${ftype}" ;; - esac -} - -# @FUNCTION: common-lisp-install-sources -# @USAGE: common-lisp-install-sources path [...] -# @DESCRIPTION: -# Recursively install lisp sources of type ${2} if ${1} is -t or -# Lisp by default. When given a directory, it will be recursively -# scanned for Lisp source files with suffixes: .lisp, .lsp or .cl. -common-lisp-install-sources() { - local ftype="lisp" - if [[ ${1} == "-t" ]] ; then - ftype=${2} - shift ; shift - fi - - [[ $# -ge 1 ]] || die "${FUNCNAME[0]} must receive one non-option argument" - - local fpredicate=$(common-lisp-get-fpredicate "${ftype}") - - for path in "${@}" ; do - if [[ -f ${path} ]] ; then - common-lisp-install-one-source ${fpredicate} "${path}" "$(dirname "${path}")" - elif [[ -d ${path} ]] ; then - common-lisp-install-sources -t ${ftype} $(find "${path}" -type f) - else - die "${path} is neither a regular file nor a directory" - fi - done -} - -# @FUNCTION: common-lisp-install-one-asdf -# @DESCRIPTION: -# Installs ${1} asdf file in CLSOURCEROOT/CLPACKAGE and symlinks it in -# CLSYSTEMROOT. -common-lisp-install-one-asdf() { - [[ $# != 1 ]] && die "${FUNCNAME[0]} must receive exactly one argument" - - # the suffix «.asd» is optional - local source=${1/.asd}.asd - common-lisp-install-one-source true "${source}" "$(dirname "${source}")" - local target="${CLSOURCEROOT%/}/${CLPACKAGE}/${source}" - dosym "${target}" "${CLSYSTEMROOT%/}/$(basename ${target})" -} - -# @FUNCTION: common-lisp-install-asdf -# @USAGE: common-lisp-install-asdf path [...] -# @DESCRIPTION: -# Installs all ASDF files and creates symlinks in CLSYSTEMROOT. -# When given a directory, it will be recursively scanned for ASDF -# files with extension .asd. -common-lisp-install-asdf() { - dodir "${CLSYSTEMROOT}" - - [[ $# = 0 ]] && set - ${CLSYSTEMS} - [[ $# = 0 ]] && set - $(find . -type f -name \*.asd) - for sys in "${@}" ; do - common-lisp-install-one-asdf ${sys} - done -} - -# @FUNCTION: common-lisp-3_src_install -# @DESCRIPTION: -# Recursively install Lisp sources, asdf files and most common doc files. -common-lisp-3_src_install() { - common-lisp-install-sources . - common-lisp-install-asdf - for i in AUTHORS README* HEADER TODO* CHANGELOG Change[lL]og CHANGES BUGS CONTRIBUTORS *NEWS* ; do - [[ -f ${i} ]] && dodoc ${i} - done -} - -# @FUNCTION: common-lisp-find-lisp-impl -# @USAGE: common-lisp-find-lisp-impl -# @DESCRIPTION: -# Outputs an installed Common Lisp implementation. Transverses -# CLIMPLEMENTATIONS to find it. -common-lisp-find-lisp-impl() { - for lisp in ${CLIMPLEMENTATIONS} ; do - [[ "$(best_version dev-lisp/${lisp})" ]] && echo "${lisp}" && return - done - die "No CommonLisp implementation found" -} - -# @FUNCTION: common-lisp-export-impl-args -# @USAGE: common-lisp-export-impl-args -# @DESCRIPTION: -# Export a few variables containing the switches necessary -# to make the CL implementation perform basic functions: -# * CL_BINARY: Common Lisp implementation -# * CL_NORC: don't load syste-wide or user-specific initfiles -# * CL_LOAD: load a certain file -# * CL_EVAL: eval a certain expression at startup -common-lisp-export-impl-args() { - if [[ $# != 1 ]]; then - eerror "Usage: ${FUNCNAME[0]} lisp-implementation" - die "${FUNCNAME[0]}: wrong number of arguments: $#" - fi - CL_BINARY="${1}" - case "${CL_BINARY}" in - sbcl) - CL_NORC="--sysinit /dev/null --userinit /dev/null" - CL_LOAD="--load" - CL_EVAL="--eval" - ;; - clisp) - CL_NORC="-norc" - CL_LOAD="-i" - CL_EVAL="-x" - ;; - clozure | clozurecl | ccl | openmcl) - CL_BINARY="ccl" - CL_NORC="--no-init" - CL_LOAD="--load" - CL_EVAL="--eval" - ;; - cmucl) - CL_NORC="-nositeinit -noinit" - CL_LOAD="-load" - CL_EVAL="-eval" - ;; - ecl | ecls) - CL_BINARY="ecl" - CL_NORC="-norc" - CL_LOAD="-load" - CL_EVAL="-eval" - ;; - abcl) - CL_NORC="--noinit" - CL_LOAD="--load" - CL_EVAL="--eval" - ;; - *) - die "${CL_BINARY} is not supported by ${0}" - ;; - esac - export CL_BINARY CL_NORC CL_LOAD CL_EVAL -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/cvs.eclass b/sdk_container/src/third_party/portage-stable/eclass/cvs.eclass deleted file mode 100644 index e2121f4724..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/cvs.eclass +++ /dev/null @@ -1,582 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: cvs.eclass -# @MAINTAINER: -# vapier@gentoo.org (and anyone who wants to help) -# @BLURB: This eclass provides generic cvs fetching functions -# @DESCRIPTION: -# This eclass provides the generic cvs fetching functions. To use this from an -# ebuild, set the ECLASS VARIABLES as specified below in your ebuild before -# inheriting. Then either leave the default src_unpack or extend over -# cvs_src_unpack. If you find that you need to call the cvs_* functions -# directly, I'd be interested to hear about it. - -if [[ -z ${_CVS_ECLASS} ]]; then -_CVS_ECLASS=1 - -inherit eutils - -# TODO: - -# Implement more auth types (gserver?, kserver?) - -# Support additional remote shells with `ext' authentication (does -# anyone actually need to use it with anything other than SSH?) - - -# Users shouldn't change these settings! The ebuild/eclass inheriting -# this eclass will take care of that. If you want to set the global -# KDE cvs ebuilds' settings, see the comments in kde-source.eclass. - -# @ECLASS-VARIABLE: ECVS_CVS_COMPRESS -# @DESCRIPTION: -# Set the default compression level. Has no effect when ECVS_CVS_COMMAND -# is defined by ebuild/user. -: ${ECVS_CVS_COMPRESS:=-z1} - -# @ECLASS-VARIABLE: ECVS_CVS_OPTIONS -# @DESCRIPTION: -# Additional options to the cvs commands. Has no effect when ECVS_CVS_COMMAND -# is defined by ebuild/user. -: ${ECVS_CVS_OPTIONS:=-q -f} - -# @ECLASS-VARIABLE: ECVS_CVS_COMMAND -# @DESCRIPTION: -# CVS command to run -# -# You can set, for example, "cvs -t" for extensive debug information -# on the cvs connection. The default of "cvs -q -f -z4" means to be -# quiet, to disregard the ~/.cvsrc config file and to use maximum -# compression. -: ${ECVS_CVS_COMMAND:=cvs ${ECVS_CVS_OPTIONS} ${ECVS_CVS_COMPRESS}} - -# @ECLASS-VARIABLE: ECVS_UP_OPTS -# @DESCRIPTION: -# CVS options given after the cvs update command. Don't remove "-dP" or things -# won't work. -: ${ECVS_UP_OPTS:=-dP} - -# @ECLASS-VARIABLE: ECVS_CO_OPTS -# @DEFAULT_UNSET -# @DESCRIPTION: -# CVS options given after the cvs checkout command. - -# @ECLASS-VARIABLE: ECVS_OFFLINE -# @DESCRIPTION: -# Set this variable to a non-empty value to disable the automatic updating of -# a CVS source tree. This is intended to be set outside the cvs source -# tree by users. -: ${ECVS_OFFLINE:=${EVCS_OFFLINE}} - -# @ECLASS-VARIABLE: ECVS_LOCAL -# @DEFAULT_UNSET -# @DESCRIPTION: -# If this is set, the CVS module will be fetched non-recursively. -# Refer to the information in the CVS man page regarding the -l -# command option (not the -l global option). - -# @ECLASS-VARIABLE: ECVS_LOCALNAME -# @DEFAULT_UNSET -# @DESCRIPTION: -# Local name of checkout directory -# -# This is useful if the module on the server is called something -# common like 'driver' or is nested deep in a tree, and you don't like -# useless empty directories. -# -# WARNING: Set this only from within ebuilds! If set in your shell or -# some such, things will break because the ebuild won't expect it and -# have e.g. a wrong $S setting. - -# @ECLASS-VARIABLE: ECVS_TOP_DIR -# @DESCRIPTION: -# The directory under which CVS modules are checked out. -: ${ECVS_TOP_DIR:="${PORTAGE_ACTUAL_DISTDIR-${DISTDIR}}/cvs-src"} - -# @ECLASS-VARIABLE: ECVS_SERVER -# @DESCRIPTION: -# CVS path -# -# The format is "server:/dir", e.g. "anoncvs.kde.org:/home/kde". -# Remove the other parts of the full CVSROOT, which might look like -# ":pserver:anonymous@anoncvs.kde.org:/home/kde"; this is generated -# using other settings also. -# -# Set this to "offline" to disable fetching (i.e. to assume the module -# is already checked out in ECVS_TOP_DIR). -: ${ECVS_SERVER:="offline"} - -# @ECLASS-VARIABLE: ECVS_MODULE -# @REQUIRED -# @DESCRIPTION: -# The name of the CVS module to be fetched -# -# This must be set when cvs_src_unpack is called. This can include -# several directory levels, i.e. "foo/bar/baz" -#[[ -z ${ECVS_MODULE} ]] && die "$ECLASS: error: ECVS_MODULE not set, cannot continue" - -# @ECLASS-VARIABLE: ECVS_DATE -# @DEFAULT_UNSET -# @DESCRIPTION: -# The date of the checkout. See the -D date_spec option in the cvs -# man page for more details. - -# @ECLASS-VARIABLE: ECVS_BRANCH -# @DEFAULT_UNSET -# @DESCRIPTION: -# The name of the branch/tag to use -# -# The default is "HEAD". The following default _will_ reset your -# branch checkout to head if used. -#: ${ECVS_BRANCH:="HEAD"} - -# @ECLASS-VARIABLE: ECVS_AUTH -# @DESCRIPTION: -# Authentication method to use -# -# Possible values are "pserver" and "ext". If `ext' authentication is -# used, the remote shell to use can be specified in CVS_RSH (SSH is -# used by default). Currently, the only supported remote shell for -# `ext' authentication is SSH. -# -# Armando Di Cianno 2004/09/27 -# - Added "no" as a server type, which uses no AUTH method, nor -# does it login -# e.g. -# "cvs -danoncvs@savannah.gnu.org:/cvsroot/backbone co System" -# ( from gnustep-apps/textedit ) -: ${ECVS_AUTH:="pserver"} - -# @ECLASS-VARIABLE: ECVS_USER -# @DESCRIPTION: -# Username to use for authentication on the remote server. -: ${ECVS_USER:="anonymous"} - -# @ECLASS-VARIABLE: ECVS_PASS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Password to use for authentication on the remote server - -# @ECLASS-VARIABLE: ECVS_SSH_HOST_KEY -# @DEFAULT_UNSET -# @DESCRIPTION: -# If SSH is used for `ext' authentication, use this variable to -# specify the host key of the remote server. The format of the value -# should be the same format that is used for the SSH known hosts file. -# -# WARNING: If a SSH host key is not specified using this variable, the -# remote host key will not be verified. - -# @ECLASS-VARIABLE: ECVS_CLEAN -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set this to get a clean copy when updating (passes the -# -C option to cvs update) - -# @ECLASS-VARIABLE: ECVS_RUNAS -# @DEFAULT_UNSET -# @DESCRIPTION: -# Specifies an alternate (non-root) user to use to run cvs. Currently -# b0rked and wouldn't work with portage userpriv anyway without -# special magic. - -# : ${ECVS_RUNAS:=$(whoami)} - -# add cvs to deps -# ssh is used for ext auth -# sudo is used to run as a specified user -DEPEND="dev-vcs/cvs" - -[[ -n ${ECVS_RUNAS} ]] && DEPEND+=" app-admin/sudo" - -if [[ ${ECVS_AUTH} == "ext" ]] ; then - #default to ssh - [[ -z ${CVS_RSH} ]] && export CVS_RSH="ssh" - if [[ ${CVS_RSH} != "ssh" ]] ; then - die "Support for ext auth with clients other than ssh has not been implemented yet" - fi - DEPEND+=" net-misc/openssh" -fi - -# called from cvs_src_unpack -cvs_fetch() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - - # Make these options local variables so that the global values are - # not affected by modifications in this function. - - local ECVS_COMMAND=${ECVS_COMMAND} - local ECVS_UP_OPTS=${ECVS_UP_OPTS} - local ECVS_CO_OPTS=${ECVS_CO_OPTS} - - debug-print-function ${FUNCNAME} "$@" - - # Update variables that are modified by ebuild parameters, which - # should be effective every time cvs_fetch is called, and not just - # every time cvs.eclass is inherited - - # Handle parameter for local (non-recursive) fetching - - if [[ -n ${ECVS_LOCAL} ]] ; then - ECVS_UP_OPTS+=" -l" - ECVS_CO_OPTS+=" -l" - fi - - # Handle ECVS_BRANCH option - # - # Because CVS auto-switches branches, we just have to pass the - # correct -rBRANCH option when updating. - - if [[ -n ${ECVS_BRANCH} ]] ; then - ECVS_UP_OPTS+=" -r${ECVS_BRANCH}" - ECVS_CO_OPTS+=" -r${ECVS_BRANCH}" - fi - - # Handle ECVS_LOCALNAME, which specifies the local directory name - # to use. Note that the -d command option is not equivalent to - # the global -d option. - - if [[ ${ECVS_LOCALNAME} != "${ECVS_MODULE}" ]] ; then - ECVS_CO_OPTS+=" -d ${ECVS_LOCALNAME}" - fi - - if [[ -n ${ECVS_CLEAN} ]] ; then - ECVS_UP_OPTS+=" -C" - fi - - if [[ -n ${ECVS_DATE} ]] ; then - ECVS_CO_OPTS+=" -D ${ECVS_DATE}" - ECVS_UP_OPTS+=" -D ${ECVS_DATE}" - fi - - # It would be easiest to always be in "run-as mode", logic-wise, - # if sudo didn't ask for a password even when sudo'ing to `whoami`. - - if [[ -z ${ECVS_RUNAS} ]] ; then - run="" - else - run="sudo -u ${ECVS_RUNAS}" - fi - - # Create the top dir if needed - - if [[ ! -d ${ECVS_TOP_DIR} ]] ; then - # Note that the addwrite statements in this block are only - # there to allow creating ECVS_TOP_DIR; we allow writing - # inside it separately. - - # This is because it's simpler than trying to find out the - # parent path of the directory, which would need to be the - # real path and not a symlink for things to work (so we can't - # just remove the last path element in the string) - - debug-print "${FUNCNAME}: checkout mode. creating cvs directory" - addwrite /foobar - addwrite / - ${run} mkdir -p "/${ECVS_TOP_DIR}" - export SANDBOX_WRITE="${SANDBOX_WRITE//:\/foobar:\/}" - fi - - # In case ECVS_TOP_DIR is a symlink to a dir, get the real path, - # otherwise addwrite() doesn't work. - - cd -P "${ECVS_TOP_DIR}" >/dev/null - ECVS_TOP_DIR=$(pwd) - - # Disable the sandbox for this dir - addwrite "${ECVS_TOP_DIR}" - - # Chown the directory and all of its contents - if [[ -n ${ECVS_RUNAS} ]] ; then - ${run} chown -R "${ECVS_RUNAS}" "/${ECVS_TOP_DIR}" - fi - - # Determine the CVS command mode (checkout or update) - if [[ ! -d ${ECVS_TOP_DIR}/${ECVS_LOCALNAME}/CVS ]] ; then - mode=checkout - else - mode=update - fi - - # Our server string (i.e. CVSROOT) without the password so it can - # be put in Root - local connection="${ECVS_AUTH}" - if [[ ${ECVS_AUTH} == "no" ]] ; then - local server="${ECVS_USER}@${ECVS_SERVER}" - else - [[ -n ${ECVS_PROXY} ]] && connection+=";proxy=${ECVS_PROXY}" - [[ -n ${ECVS_PROXY_PORT} ]] && connection+=";proxyport=${ECVS_PROXY_PORT}" - local server=":${connection}:${ECVS_USER}@${ECVS_SERVER}" - fi - - # Switch servers automagically if needed - if [[ ${mode} == "update" ]] ; then - cd "/${ECVS_TOP_DIR}/${ECVS_LOCALNAME}" - local oldserver=$(${run} cat CVS/Root) - if [[ ${server} != "${oldserver}" ]] ; then - einfo "Changing the CVS server from ${oldserver} to ${server}:" - debug-print "${FUNCNAME}: Changing the CVS server from ${oldserver} to ${server}:" - - einfo "Searching for CVS directories ..." - local cvsdirs=$(${run} find . -iname CVS -print) - debug-print "${FUNCNAME}: CVS directories found:" - debug-print "${cvsdirs}" - - einfo "Modifying CVS directories ..." - local x - for x in ${cvsdirs} ; do - debug-print "In ${x}" - ${run} echo "${server}" > "${x}/Root" - done - fi - fi - - # Prepare a cvspass file just for this session, we don't want to - # mess with ~/.cvspass - touch "${T}/cvspass" - export CVS_PASSFILE="${T}/cvspass" - if [[ -n ${ECVS_RUNAS} ]] ; then - chown "${ECVS_RUNAS}" "${T}/cvspass" - fi - - # The server string with the password in it, for login (only used for pserver) - cvsroot_pass=":${connection}:${ECVS_USER}:${ECVS_PASS}@${ECVS_SERVER}" - - # Ditto without the password, for checkout/update after login, so - # that the CVS/Root files don't contain the password in plaintext - if [[ ${ECVS_AUTH} == "no" ]] ; then - cvsroot_nopass="${ECVS_USER}@${ECVS_SERVER}" - else - cvsroot_nopass=":${connection}:${ECVS_USER}@${ECVS_SERVER}" - fi - - # Commands to run - cmdlogin=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_pass}" login ) - cmdupdate=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_nopass}" update ${ECVS_UP_OPTS} ${ECVS_LOCALNAME} ) - cmdcheckout=( ${run} ${ECVS_CVS_COMMAND} -d "${cvsroot_nopass}" checkout ${ECVS_CO_OPTS} ${ECVS_MODULE} ) - - # Execute commands - - cd "${ECVS_TOP_DIR}" - if [[ ${ECVS_AUTH} == "pserver" ]] ; then - einfo "Running ${cmdlogin[*]}" - "${cmdlogin[@]}" || die "cvs login command failed" - if [[ ${mode} == "update" ]] ; then - einfo "Running ${cmdupdate[*]}" - "${cmdupdate[@]}" || die "cvs update command failed" - elif [[ ${mode} == "checkout" ]] ; then - einfo "Running ${cmdcheckout[*]}" - "${cmdcheckout[@]}" || die "cvs checkout command failed" - fi - elif [[ ${ECVS_AUTH} == "ext" || ${ECVS_AUTH} == "no" ]] ; then - # Hack to support SSH password authentication - - # Backup environment variable values - local CVS_ECLASS_ORIG_CVS_RSH="${CVS_RSH}" - - if [[ ${SSH_ASKPASS+set} == "set" ]] ; then - local CVS_ECLASS_ORIG_SSH_ASKPASS="${SSH_ASKPASS}" - else - unset CVS_ECLASS_ORIG_SSH_ASKPASS - fi - - if [[ ${DISPLAY+set} == "set" ]] ; then - local CVS_ECLASS_ORIG_DISPLAY="${DISPLAY}" - else - unset CVS_ECLASS_ORIG_DISPLAY - fi - - if [[ ${CVS_RSH} == "ssh" ]] ; then - # Force SSH to use SSH_ASKPASS by creating python wrapper - - export CVS_RSH="${T}/cvs_sshwrapper" - cat > "${CVS_RSH}"< - echo "newarglist.insert(1, '-oClearAllForwardings=yes')" \ - >> "${CVS_RSH}" - echo "newarglist.insert(1, '-oForwardX11=no')" \ - >> "${CVS_RSH}" - - # Handle SSH host key checking - - local CVS_ECLASS_KNOWN_HOSTS="${T}/cvs_ssh_known_hosts" - echo "newarglist.insert(1, '-oUserKnownHostsFile=${CVS_ECLASS_KNOWN_HOSTS}')" \ - >> "${CVS_RSH}" - - if [[ -z ${ECVS_SSH_HOST_KEY} ]] ; then - ewarn "Warning: The SSH host key of the remote server will not be verified." - einfo "A temporary known hosts list will be used." - local CVS_ECLASS_STRICT_HOST_CHECKING="no" - touch "${CVS_ECLASS_KNOWN_HOSTS}" - else - local CVS_ECLASS_STRICT_HOST_CHECKING="yes" - echo "${ECVS_SSH_HOST_KEY}" > "${CVS_ECLASS_KNOWN_HOSTS}" - fi - - echo -n "newarglist.insert(1, '-oStrictHostKeyChecking=" \ - >> "${CVS_RSH}" - echo "${CVS_ECLASS_STRICT_HOST_CHECKING}')" \ - >> "${CVS_RSH}" - echo "os.execv('${EPREFIX}/usr/bin/ssh', newarglist)" \ - >> "${CVS_RSH}" - - chmod a+x "${CVS_RSH}" - - # Make sure DISPLAY is set (SSH will not use SSH_ASKPASS - # if DISPLAY is not set) - - : ${DISPLAY:="DISPLAY"} - export DISPLAY - - # Create a dummy executable to echo ${ECVS_PASS} - - export SSH_ASKPASS="${T}/cvs_sshechopass" - if [[ ${ECVS_AUTH} != "no" ]] ; then - echo -en "#!/bin/bash\necho \"${ECVS_PASS}\"\n" \ - > "${SSH_ASKPASS}" - else - echo -en "#!/bin/bash\nreturn\n" \ - > "${SSH_ASKPASS}" - fi - chmod a+x "${SSH_ASKPASS}" - fi - - if [[ ${mode} == "update" ]] ; then - einfo "Running ${cmdupdate[*]}" - "${cmdupdate[@]}" || die "cvs update command failed" - elif [[ ${mode} == "checkout" ]] ; then - einfo "Running ${cmdcheckout[*]}" - "${cmdcheckout[@]}" || die "cvs checkout command failed" - fi - - # Restore environment variable values - export CVS_RSH="${CVS_ECLASS_ORIG_CVS_RSH}" - if [[ ${CVS_ECLASS_ORIG_SSH_ASKPASS+set} == "set" ]] ; then - export SSH_ASKPASS="${CVS_ECLASS_ORIG_SSH_ASKPASS}" - else - unset SSH_ASKPASS - fi - - if [[ ${CVS_ECLASS_ORIG_DISPLAY+set} == "set" ]] ; then - export DISPLAY="${CVS_ECLASS_ORIG_DISPLAY}" - else - unset DISPLAY - fi - fi - - # Restore ownership. Not sure why this is needed, but someone - # added it in the orig ECVS_RUNAS stuff. - if [[ -n ${ECVS_RUNAS} ]] ; then - chown $(whoami) "${T}/cvspass" - fi - -} - -# @FUNCTION: cvs_src_unpack -# @DESCRIPTION: -# The cvs src_unpack function, which will be exported -cvs_src_unpack() { - - debug-print-function ${FUNCNAME} "$@" - - debug-print "${FUNCNAME}: init: - ECVS_CVS_COMMAND=${ECVS_CVS_COMMAND} - ECVS_UP_OPTS=${ECVS_UP_OPTS} - ECVS_CO_OPTS=${ECVS_CO_OPTS} - ECVS_TOP_DIR=${ECVS_TOP_DIR} - ECVS_SERVER=${ECVS_SERVER} - ECVS_USER=${ECVS_USER} - ECVS_PASS=${ECVS_PASS} - ECVS_MODULE=${ECVS_MODULE} - ECVS_LOCAL=${ECVS_LOCAL} - ECVS_RUNAS=${ECVS_RUNAS} - ECVS_LOCALNAME=${ECVS_LOCALNAME}" - - [[ -z ${ECVS_MODULE} ]] && die "ERROR: CVS module not set, cannot continue." - - local ECVS_LOCALNAME=${ECVS_LOCALNAME:-${ECVS_MODULE}} - - local sanitized_pn=$(echo "${PN}" | LC_ALL=C sed -e 's:[^A-Za-z0-9_]:_:g') - local offline_pkg_var="ECVS_OFFLINE_${sanitized_pn}" - if [[ -n ${!offline_pkg_var}${ECVS_OFFLINE} ]] || [[ ${ECVS_SERVER} == "offline" ]] ; then - # We're not required to fetch anything; the module already - # exists and shouldn't be updated. - if [[ -d ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} ]] ; then - debug-print "${FUNCNAME}: offline mode" - else - debug-print "${FUNCNAME}: Offline mode specified but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found, exiting with error" - die "ERROR: Offline mode specified, but directory ${ECVS_TOP_DIR}/${ECVS_LOCALNAME} not found. Aborting." - fi - elif [[ -n ${ECVS_SERVER} ]] ; then # ECVS_SERVER!=offline --> real fetching mode - einfo "Fetching CVS module ${ECVS_MODULE} into ${ECVS_TOP_DIR} ..." - cvs_fetch - else # ECVS_SERVER not set - die "ERROR: CVS server not specified, cannot continue." - fi - - einfo "Copying ${ECVS_MODULE} from ${ECVS_TOP_DIR} ..." - debug-print "Copying module ${ECVS_MODULE} local_mode=${ECVS_LOCAL} from ${ECVS_TOP_DIR} ..." - - # This is probably redundant, but best to make sure. - mkdir -p "${WORKDIR}/${ECVS_LOCALNAME}" - - if [[ -n ${ECVS_LOCAL} ]] ; then - cp -f "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}"/* "${WORKDIR}/${ECVS_LOCALNAME}" - else - cp -Rf "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}" "${WORKDIR}/${ECVS_LOCALNAME}/.." - fi - - # Not exactly perfect, but should be pretty close #333773 - export ECVS_VERSION=$( - find "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}/" -ipath '*/CVS/Entries' -exec cat {} + | \ - LC_ALL=C sort | \ - sha1sum | \ - awk '{print $1}' - ) - - # If the directory is empty, remove it; empty directories cannot - # exist in cvs. This happens when, for example, kde-source - # requests module/doc/subdir which doesn't exist. Still create - # the empty directory in workdir though. - if [[ $(ls -A "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}") == "CVS" ]] ; then - debug-print "${FUNCNAME}: removing empty CVS directory ${ECVS_LOCALNAME}" - rm -rf "${ECVS_TOP_DIR}/${ECVS_LOCALNAME}" - fi - - # Implement some of base_src_unpack's functionality; note however - # that base.eclass may not have been inherited! - if [[ -n ${PATCHES} ]] ; then - debug-print "${FUNCNAME}: PATCHES=${PATCHES}, S=${S}, autopatching" - cd "${S}" - epatch ${PATCHES} - # Make sure we don't try to apply patches more than once, - # since cvs_src_unpack is usually called several times from - # e.g. kde-source_src_unpack - export PATCHES="" - fi - - einfo "CVS module ${ECVS_MODULE} is now in ${WORKDIR}" -} - -EXPORT_FUNCTIONS src_unpack - -fi diff --git a/sdk_container/src/third_party/portage-stable/eclass/db.eclass b/sdk_container/src/third_party/portage-stable/eclass/db.eclass deleted file mode 100644 index 5227601c45..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/db.eclass +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: db.eclass -# @MAINTAINER: -# base-system@gentoo.org -# @BLURB: Internal eclass used by sys-libs/db ebuilds - -inherit eutils multilib multiprocessing - -IUSE="doc test examples" - -EXPORT_FUNCTIONS src_test - -DEPEND="test? ( >=dev-lang/tcl-8.4 )" - -RDEPEND="" - -db_fix_so() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" - LIB="${EROOT}/usr/$(get_libdir)" - - cd "${LIB}" - - # first clean up old symlinks - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*so' -exec rm \{} \; - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*so.[23]' -exec rm \{} \; - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*a' -exec rm \{} \; - - # now rebuild all the correct ones - for ext in so a; do - for name in libdb libdb_{cxx,tcl,java,sql,stl}; do - target=`find . -maxdepth 1 -type f -name "${name}-*.${ext}" |sort -n |tail -n 1` - [ -n "${target}" ] && ln -sf ${target//.\//} ${name}.${ext} - done; - done; - - # db[23] gets some extra-special stuff - if [ -f libdb1.so.2 ]; then - ln -sf libdb1.so.2 libdb.so.2 - ln -sf libdb1.so.2 libdb1.so - ln -sf libdb1.so.2 libdb-1.so - fi - # what do we do if we ever get 3.3 ? - for i in libdb libdb_{cxx,tcl,java,sql,stl}; do - if [ -f $i-3.2.so ]; then - ln -sf $i-3.2.so $i-3.so - ln -sf $i-3.2.so $i.so.3 - fi - done - - # do the same for headers now - # but since there are only two of them, just overwrite them - cd "${EROOT}"/usr/include - target=`find . -maxdepth 1 -type d -name 'db[0-9]*' | sort -n |cut -d/ -f2- | tail -n1` - if [ -n "${target}" ] && [ -e "${target}/db.h" ] && ( ! [[ -e db.h ]] || [[ -h db.h ]] ); then - einfo "Creating db.h symlinks to ${target}" - ln -sf "${target}"/db.h . - ln -sf "${target}"/db_185.h . - elif [ ! -e "${target}/db.h" ]; then - if [ -n "${target}" ]; then - ewarn "Could not find ${target}/db.h" - elif [ -h db.h ]; then - einfo "Apparently you just removed the last instance of $PN. Removing the symlinks" - rm -f db.h db_185.h - fi - fi -} - -db_src_install_doc() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - # not everybody wants this wad of documentation as it is primarily API docs - if use doc; then - dodir /usr/share/doc/${PF}/html - mv "${ED}"/usr/docs/* "${ED}"/usr/share/doc/${PF}/html/ - rm -rf "${ED}"/usr/docs - else - rm -rf "${ED}"/usr/docs - fi - - db_src_install_examples -} - -db_src_install_examples() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - if use examples ; then - local langs="c cxx stl" - [[ "${IUSE/java}" != "${IUSE}" ]] \ - && use java \ - && langs="${langs} java" - for i in $langs ; do - destdir="/usr/share/doc/${PF}/" - src="${S}/../examples_${i}/" - if [ -f "${src}" ]; then - dodir "${destdir}" - cp -ra "${src}" "${ED}${destdir}/" - fi - done - fi -} - -db_src_install_usrbinslot() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - # slot all program names to avoid overwriting - for fname in "${ED}"/usr/bin/db* - do - dn="$(dirname "${fname}")" - bn="$(basename "${fname}")" - bn="${bn/db/db${SLOT}}" - mv "${fname}" "${dn}/${bn}" || \ - die "Failed to rename ${fname} to ${dn}/${bn}" - done -} - -db_src_install_headerslot() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - # install all headers in a slotted location - dodir /usr/include/db${SLOT} - mv "${ED}"/usr/include/*.h "${ED}"/usr/include/db${SLOT}/ -} - -db_src_install_usrlibcleanup() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && ED="${D}" - LIB="${ED}/usr/$(get_libdir)" - # Clean out the symlinks so that they will not be recorded in the - # contents (bug #60732) - - if [ "${ED}" = "" ]; then - die "Calling clean_links while \$ED not defined" - fi - - if [ -e "${LIB}"/libdb.a ] && [ ! -e "${LIB}"/libdb-${SLOT}.a ]; then - einfo "Moving libdb.a to a versioned name" - mv "${LIB}/libdb.a" "${LIB}/libdb-${SLOT}.a" - fi - - if [ -e "${LIB}"/libdb_cxx.a ] && [ ! -e "${LIB}"/libdb_cxx-${SLOT}.a ]; then - einfo "Moving libdb_cxx.a to a versioned name" - mv "${LIB}/libdb_cxx.a" "${LIB}/libdb_cxx-${SLOT}.a" - fi - - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*so' -exec rm \{} \; - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*so.[23]' -exec rm \{} \; - einfo "removing unversioned static archives" - find "${LIB}" -maxdepth 1 -type l -name 'libdb[1._-]*a' -exec rm \{} \; - - rm -f \ - "${ED}"/usr/include/{db,db_185}.h \ - "${LIB}"/libdb{,_{cxx,sql,stl,java,tcl}}.a -} - -db_src_test() { - if [[ $UID -eq 0 ]]; then - M="You must run the testsuite as non-root, skipping" - ewarn "${M}" - elog "${M}" - return 0 - fi - - if use tcl; then - einfo "Running sys-libs/db testsuite" - ewarn "This can take 6+ hours on modern machines" - # Fix stuff that fails with relative paths, and upstream moving files - # around... - local test_parallel='' - for t in \ - "${S}"/test/parallel.tcl \ - "${S}"/../test/parallel.tcl \ - "${S}"/test/tcl/parallel.tcl \ - "${S}"/../test/tcl/parallel.tcl \ - ; do - [[ -f "${t}" ]] && test_parallel="${t}" && break - done - - sed -ri \ - -e '/regsub .test_path ./s,(regsub),#\1,g' \ - -e '/regsub .src_root ./s,(regsub),#\1,g' \ - -e '/regsub .tcl_utils ./s,(regsub),#\1,g' \ - "${test_parallel}" - cd "${S}" - for t in \ - ../test/test.tcl \ - ../test/tcl/test.tcl \ - ; do - [[ -f "${t}" ]] && testbase="${t}" && break - done - echo "source ${t}" > testrunner.tcl - echo "run_parallel $(makeopts_jobs) run_std" >> testrunner.tcl - - tclsh testrunner.tcl - egrep -qs '^FAIL' ALL.OUT* && die "Some tests failed, please see ${S}/ALL.OUT*" - else - eerror "You must have USE=tcl to run the sys-libs/db testsuite." - fi -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/fdo-mime.eclass b/sdk_container/src/third_party/portage-stable/eclass/fdo-mime.eclass deleted file mode 100644 index 8e51d8a69d..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/fdo-mime.eclass +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: fdo-mime.eclass -# @MAINTAINER: -# freedesktop-bugs@gentoo.org -# @AUTHOR: -# Original author: foser -# @BLURB: Utility eclass to update the desktop mime info as laid out in the freedesktop specs & implementations -# @DESCRIPTION: -# This eclass is DEPRECATED. Please use xdg-utils or xdg instead. - -# @FUNCTION: fdo-mime_desktop_database_update -# @DESCRIPTION: -# Updates the desktop database. -# Generates a list of mimetypes linked to applications that can handle them -fdo-mime_desktop_database_update() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" - if [ -x "${EPREFIX}/usr/bin/update-desktop-database" ] - then - einfo "Updating desktop mime database ..." - "${EPREFIX}/usr/bin/update-desktop-database" -q "${EROOT}usr/share/applications" - fi -} - -# @FUNCTION: fdo-mime_mime_database_update -# @DESCRIPTION: -# Update the mime database. -# Creates a general list of mime types from several sources -fdo-mime_mime_database_update() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" - if [ -x "${EPREFIX}/usr/bin/update-mime-database" ] - then - einfo "Updating shared mime info database ..." - "${EPREFIX}/usr/bin/update-mime-database" "${EROOT}usr/share/mime" - fi -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/kodi-addon.eclass b/sdk_container/src/third_party/portage-stable/eclass/kodi-addon.eclass deleted file mode 100644 index 8f34ccd92a..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/kodi-addon.eclass +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: kodi-addon.eclass -# @MAINTAINER: -# candrews@gentoo.org -# @SUPPORTED_EAPIS: 4 5 6 -# @BLURB: Helper for correct building and (importantly) installing Kodi addon packages. -# @DESCRIPTION: -# Provides a src_configure function for correct CMake configuration - -inherit multilib cmake-utils - -case "${EAPI:-0}" in - 4|5|6) - EXPORT_FUNCTIONS src_configure - ;; - *) die "EAPI=${EAPI} is not supported" ;; -esac - -# @FUNCTION: kodi-addon_src_configure -# @DESCRIPTION: -# Configure handling for Kodi addons -kodi-addon_src_configure() { - - mycmakeargs+=( - -DCMAKE_INSTALL_LIBDIR=$(get_libdir)/kodi - ) - - cmake-utils_src_configure -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/mate-desktop.org.eclass b/sdk_container/src/third_party/portage-stable/eclass/mate-desktop.org.eclass deleted file mode 100644 index 418f3f8ce0..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/mate-desktop.org.eclass +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: mate-desktop.org.eclass -# @MAINTAINER: -# mate@gentoo.org -# @AUTHOR: -# Authors: NP-Hardass based upon the gnome.org eclass. -# @SUPPORTED_EAPIS: 6 -# @BLURB: Helper eclass for mate-desktop.org hosted archives -# @DESCRIPTION: -# Provide a default SRC_URI and EGIT_REPO_URI for MATE packages as well as -# exporting some useful values like the MATE_BRANCH - -# EAPIs < 6 are banned. -case "${EAPI:-0}" in - 6) ;; - *) die "EAPI=${EAPI:-0} is not supported" ;; -esac - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 -fi - -inherit versionator - -# @ECLASS-VARIABLE: MATE_TARBALL_SUFFIX -# @INTERNAL -# @DESCRIPTION: -# All projects hosted on mate-desktop.org provide tarballs as tar.xz. -# Undefined in live ebuilds. -[[ ${PV} != 9999 ]] && : ${MATE_TARBALL_SUFFIX:="xz"} - -# @ECLASS-VARIABLE: MATE_DESKTOP_ORG_PN -# @DESCRIPTION: -# Name of the package as hosted on mate-desktop.org. -# Leave unset if package name matches PN. -: ${MATE_DESKTOP_ORG_PN:=$PN} - -# @ECLASS-VARIABLE: MATE_DESKTOP_ORG_PV -# @DESCRIPTION: -# Package version string as listed on mate-desktop.org. -# Leave unset if package version string matches PV. -: ${MATE_DESKTOP_ORG_PV:=$PV} - -# @ECLASS-VARIABLE: MATE_BRANCH -# @DESCRIPTION: -# Major and minor numbers of the version number, unless live. -# If live ebuild, will be set to '9999'. -: ${MATE_BRANCH:=$(get_version_component_range 1-2)} - -# Set SRC_URI or EGIT_REPO_URI based on whether live -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://github.com/mate-desktop/${MATE_DESKTOP_ORG_PN}.git" - SRC_URI="" -else - SRC_URI="https://pub.mate-desktop.org/releases/${MATE_BRANCH}/${MATE_DESKTOP_ORG_PN}-${MATE_DESKTOP_ORG_PV}.tar.${MATE_TARBALL_SUFFIX}" -fi - -# Set HOMEPAGE for all ebuilds -HOMEPAGE="https://mate-desktop.org" diff --git a/sdk_container/src/third_party/portage-stable/eclass/postgres-multi.eclass b/sdk_container/src/third_party/portage-stable/eclass/postgres-multi.eclass deleted file mode 100644 index 48ef79dc29..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/postgres-multi.eclass +++ /dev/null @@ -1,176 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -inherit multibuild postgres -EXPORT_FUNCTIONS pkg_setup src_prepare src_compile src_install src_test - - -# @ECLASS: postgres-multi.eclass -# @MAINTAINER: -# PostgreSQL -# @AUTHOR: Aaron W. Swenson -# @SUPPORTED_EAPIS: 5 6 -# @BLURB: An eclass to build PostgreSQL-related packages against multiple slots -# @DESCRIPTION: -# postgres-multi enables ebuilds, particularly PostgreSQL extensions, to -# build and install for one or more PostgreSQL slots as specified by -# POSTGRES_TARGETS use flags. - - -case ${EAPI:-0} in - 5|6) ;; - *) die "Unsupported EAPI=${EAPI} (unknown) for ${ECLASS}" ;; -esac - - -# @ECLASS-VARIABLE: POSTGRES_COMPAT -# @REQUIRED -# @DESCRIPTION: -# A Bash array containing a list of compatible PostgreSQL slots as -# defined by the developer. Must be declared before inheriting this -# eclass. Example: -#@CODE -#POSTGRES_COMPAT=( 9.2 9.3 9.4 9.5 9.6 10 ) -#POSTGRES_COMPAT=( 9.{2,3} 9.{4..6} 10 ) # Same as previous -#@CODE -if ! declare -p POSTGRES_COMPAT &>/dev/null; then - die 'Required variable POSTGRES_COMPAT not declared.' -fi - -# @ECLASS-VARIABLE: _POSTGRES_INTERSECT_SLOTS -# @INTERNAL -# @DESCRIPTION: -# A Bash array containing the intersect of POSTGRES_TARGETS and -# POSTGRES_COMPAT. -export _POSTGRES_INTERSECT_SLOTS=( ) - -# @FUNCTION: _postgres-multi_multibuild_wrapper -# @USAGE: [arg ...] -# @INTERNAL -# @DESCRIPTION: -# For the given variant, set the values of the PG_SLOT, PG_CONFIG, and -# PKG_CONFIG_PATH environment variables accordingly and replace any -# appearance of @PG_SLOT@ in the command and arguments with value of -# ${PG_SLOT}. -_postgres-multi_multibuild_wrapper() { - debug-print-function ${FUNCNAME} "${@}" - export PG_SLOT=${MULTIBUILD_VARIANT} - export PG_CONFIG=$(which pg_config${MULTIBUILD_VARIANT//./}) - if [[ -n ${PKG_CONFIG_PATH} ]] ; then - PKG_CONFIG_PATH="$(${PG_CONFIG} --libdir)/pkgconfig:${PKG_CONFIG_PATH}" - else - PKG_CONFIG_PATH="$(${PG_CONFIG} --libdir)/pkgconfig" - fi - export PKG_CONFIG_PATH - - $(echo "${@}" | sed "s/@PG_SLOT@/${PG_SLOT}/g") -} - -# @FUNCTION: postgres-multi_foreach -# @USAGE: [arg ...] -# @DESCRIPTION: -# Run the given command in the package's build directory for each -# PostgreSQL slot in the intersect of POSTGRES_TARGETS and -# POSTGRES_COMPAT. The PG_CONFIG and PKG_CONFIG_PATH environment -# variables are updated on each iteration to point to the matching -# pg_config command and pkg-config metadata files, respectively, for the -# current slot. Any appearance of @PG_SLOT@ in the command or arguments -# will be substituted with the slot (e.g., 9.5) of the current -# iteration. -postgres-multi_foreach() { - local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[@]}") - - multibuild_foreach_variant \ - _postgres-multi_multibuild_wrapper run_in_build_dir ${@} -} - -# @FUNCTION: postgres-multi_forbest -# @USAGE: [arg ...] -# @DESCRIPTION: -# Run the given command in the package's build directory for the highest -# slot in the intersect of POSTGRES_COMPAT and POSTGRES_TARGETS. The -# PG_CONFIG and PKG_CONFIG_PATH environment variables are set to the -# matching pg_config command and pkg-config metadata files, -# respectively. Any appearance of @PG_SLOT@ in the command or arguments -# will be substituted with the matching slot (e.g., 9.5). -postgres-multi_forbest() { - # POSTGRES_COMPAT is reverse sorted once in postgres.eclass so - # element 0 has the highest slot version. - local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[0]}") - - multibuild_foreach_variant \ - _postgres-multi_multibuild_wrapper run_in_build_dir ${@} -} - -# @FUNCTION: postgres-multi_pkg_setup -# @DESCRIPTION: -# Initialize internal environment variable(s). This is required if -# pkg_setup() is declared in the ebuild. -postgres-multi_pkg_setup() { - local user_slot - - # _POSTGRES_COMPAT is created in postgres.eclass - for user_slot in "${_POSTGRES_COMPAT[@]}"; do - use "postgres_targets_postgres${user_slot/\./_}" && \ - _POSTGRES_INTERSECT_SLOTS+=( "${user_slot}" ) - done - - if [[ "${#_POSTGRES_INTERSECT_SLOTS[@]}" -eq "0" ]]; then - die "One of the postgres_targets_postgresSL_OT use flags must be enabled" - fi - - einfo "Multibuild variants: ${_POSTGRES_INTERSECT_SLOTS[@]}" -} - -# @FUNCTION: postgres-multi_src_prepare -# @DESCRIPTION: -# Calls eapply_user then copies ${S} into a build directory for each -# intersect of POSTGRES_TARGETS and POSTGRES_COMPAT. -postgres-multi_src_prepare() { - if [[ "${#_POSTGRES_INTERSECT_SLOTS[@]}" -eq "0" ]]; then - eerror "Internal array _POSTGRES_INTERSECT_SLOTS is empty." - die "Did you forget to call postgres-multi_pkg_setup?" - fi - - # Check that the slot has been emerged (Should be prevented by - # Portage, but won't be caught by /usr/bin/ebuild) - local slot - for slot in ${_POSTGRES_INTERSECT_SLOTS[@]} ; do - if [[ -z $(which pg_config${slot/.} 2> /dev/null) ]] ; then - eerror - eerror "postgres_targets_postgres${slot/.} use flag is enabled, but hasn't been emerged." - eerror - die "a postgres_targets use flag is enabled, but not emerged" - fi - done - - case ${EAPI:-0} in - 0|1|2|3|4|5) epatch_user ;; - 6) eapply_user ;; - esac - - local MULTIBUILD_VARIANT - local MULTIBUILD_VARIANTS=("${_POSTGRES_INTERSECT_SLOTS[@]}") - multibuild_copy_sources -} - -# @FUNCTION: postgres-multi_src_compile -# @DESCRIPTION: -# Runs `emake' in each build directory -postgres-multi_src_compile() { - postgres-multi_foreach emake -} - -# @FUNCTION: postgres-multi_src_install -# @DESCRIPTION: -# Runs `emake install DESTDIR="${D}"' in each build directory. -postgres-multi_src_install() { - postgres-multi_foreach emake install DESTDIR="${D}" -} - -# @FUNCTION: postgres-multi_src_test -# @DESCRIPTION: -# Runs `emake installcheck' in each build directory. -postgres-multi_src_test() { - postgres-multi_foreach emake installcheck -} diff --git a/sdk_container/src/third_party/portage-stable/eclass/sgml-catalog.eclass b/sdk_container/src/third_party/portage-stable/eclass/sgml-catalog.eclass deleted file mode 100644 index 5486533c2e..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/sgml-catalog.eclass +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: sgml-catalog.eclass -# @MAINTAINER: -# No maintainer -# @AUTHOR: -# Author Matthew Turk -# @BLURB: Functions for installing SGML catalogs - -case ${EAPI:-0} in - 0|1|2|3|4|5) inherit base ;; - *) ;; -esac - -DEPEND=">=app-text/sgml-common-0.6.3-r2" - -# @ECLASS-VARIABLE: SGML_TOINSTALL -# @DESCRIPTION: -# An array of catalogs, arranged in pairs. -# Each pair consists of a centralized catalog followed by an ordinary catalog. -SGML_TOINSTALL=() - -# @FUNCTION: sgml-catalog_cat_include -# @USAGE: -# @DESCRIPTION: -# Appends a catalog pair to the SGML_TOINSTALL array. -sgml-catalog_cat_include() { - debug-print function $FUNCNAME $* - SGML_TOINSTALL+=("$1" "$2") -} - -# @FUNCTION: sgml-catalog_cat_doinstall -# @USAGE: -# @DESCRIPTION: -# Adds an ordinary catalog to a centralized catalog. -sgml-catalog_cat_doinstall() { - debug-print function $FUNCNAME $* - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - "${EPREFIX}"/usr/bin/install-catalog --add "${EPREFIX}$1" "${EPREFIX}$2" &>/dev/null -} - -# @FUNCTION: sgml-catalog_cat_doremove -# @USAGE: -# @DESCRIPTION: -# Removes an ordinary catalog from a centralized catalog. -sgml-catalog_cat_doremove() { - debug-print function $FUNCNAME $* - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - "${EPREFIX}"/usr/bin/install-catalog --remove "${EPREFIX}$1" "${EPREFIX}$2" &>/dev/null -} - -sgml-catalog_pkg_postinst() { - debug-print function $FUNCNAME $* - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - - set -- "${SGML_TOINSTALL[@]}" - - while (( $# )); do - if [[ ! -e "${EPREFIX}$2" ]]; then - ewarn "${EPREFIX}$2 doesn't appear to exist, although it ought to!" - shift 2 - continue - fi - einfo "Now adding ${EPREFIX}$2 to ${EPREFIX}$1 and ${EPREFIX}/etc/sgml/catalog" - sgml-catalog_cat_doinstall "$1" "$2" - shift 2 - done - sgml-catalog_cleanup -} - -sgml-catalog_pkg_prerm() { - sgml-catalog_cleanup -} - -sgml-catalog_pkg_postrm() { - debug-print function $FUNCNAME $* - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - - set -- "${SGML_TOINSTALL[@]}" - - while (( $# )); do - einfo "Now removing ${EPREFIX}$2 from ${EPREFIX}$1 and ${EPREFIX}/etc/sgml/catalog" - sgml-catalog_cat_doremove "$1" "$2" - shift 2 - done -} - -sgml-catalog_cleanup() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EPREFIX= - if [ -e "${EPREFIX}/usr/bin/gensgmlenv" ] - then - einfo Regenerating SGML environment variables ... - gensgmlenv - grep -v export "${EPREFIX}/etc/sgml/sgml.env" > "${EPREFIX}/etc/env.d/93sgmltools-lite" - fi -} - -sgml-catalog_src_compile() { - return -} - -EXPORT_FUNCTIONS pkg_postrm pkg_postinst src_compile pkg_prerm diff --git a/sdk_container/src/third_party/portage-stable/eclass/vim-spell.eclass b/sdk_container/src/third_party/portage-stable/eclass/vim-spell.eclass deleted file mode 100644 index 828a45310e..0000000000 --- a/sdk_container/src/third_party/portage-stable/eclass/vim-spell.eclass +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# @ECLASS: vim-spell.eclass -# @MAINTAINER: -# Vim Maintainers -# @AUTHOR: -# Ciaran McCreesh -# @BLURB: Eclass for managing Vim spell files. -# @DESCRIPTION: -# How to make a vim spell file package using prebuilt spell lists -# from upstream (${CODE} is the language's two letter code): -# -# * Get the ${CODE}.*.spl, ${CODE}.*.sug (if your language has them) and -# README_${CODE}.txt files. Currently they're at -# ftp://ftp.vim.org/pub/vim/unstable/runtime/spell/ (except for English, -# which should be taken from CVS instead). -# -# * Stick them in vim-spell-${CODE}-$(date --iso | tr -d - ).tar.bz2 . Make sure -# that they're in the appropriately named subdirectory to avoid having to mess -# with S=. -# -# * Upload the tarball to the Gentoo mirrors. -# -# * Add your spell file to package.mask next to the other vim things. Vim -# Project members will handle unmasking your spell packages when vim comes out -# of package.mask. -# -# * Create the app-vim/vim-spell-${CODE} package. You should base your ebuild -# upon app-vim/vim-spell-en. You will need to change VIM_SPELL_LANGUAGE, -# KEYWORDS and LICENSE. Check the license carefully! The README will tell -# you what it is. -# -# * Don't forget metadata.xml. You should list the Vim project and yourself -# as maintainers. There is no need to join the Vim project just for spell -# files. Here's an example of a metadata.xml file: -# -# -# -# -# -# your@email.tld -# Your Name -# -# -# vim@gentoo.org -# Vim Maintainers -# -# -# -# Vim spell files for French (fr). Supported character sets are -# UTF-8 and latin1. -# -# -# -# * Send an email to vim@gentoo.org to let us know. -# -# Don't forget to update your package as necessary. -# -# If there isn't an upstream-provided pregenerated spell file for your language -# yet, read :help spell.txt from inside vim for instructions on how to create -# spell files. It's best to let upstream know if you've generated spell files -# for another language rather than keeping them Gentoo-specific. - -inherit eutils - -EXPORT_FUNCTIONS src_install pkg_postinst - -SRC_URI="mirror://gentoo/${P}.tar.bz2" -SLOT="0" - -# @ECLASS-VARIABLE: VIM_SPELL_LANGUAGE -# @DESCRIPTION: -# This variable defines the language for the spell package being -# installed. -# The default value is "English". -: ${VIM_SPELL_LANGUAGE:="English"} - -# @ECLASS-VARIABLE: VIM_SPELL_LOCALE -# @INTERNAL -# @DESCRIPTION: -# This variable defines the locale for the current ebuild. -# The default value is ${PN} stripped of the "vim-spell-" string. -: ${VIM_SPELL_LOCALE:="${PN/vim-spell-/}"} - -# @ECLASS-VARIABLE: VIM_SPELL_DIRECTORY -# @INTERNAL -# @DESCRIPTION: -# This variable defines the path to Vim spell files. -: ${VIM_SPELL_DIRECTORY:="${EPREFIX}/usr/share/vim/vimfiles/spell/"} - -# @ECLASS-VARIABLE: DESCRIPTION -# @DESCRIPTION: -# This variable defines the DESCRIPTION for Vim spell ebuilds. -: ${DESCRIPTION:="vim spell files: ${VIM_SPELL_LANGUAGE} (${VIM_SPELL_LOCALE})"} - -# @ECLASS-VARIABLE: HOMEPAGE -# @DESCRIPTION: -# This variable defines the HOMEPAGE for Vim spell ebuilds. -: ${HOMEPAGE:="https://www.vim.org"} - -# @FUNCTION: vim-spell_src_install -# @DESCRIPTION: -# This function installs Vim spell files. -vim-spell_src_install() { - dodir "${VIM_SPELL_DIRECTORY}" - insinto "${VIM_SPELL_DIRECTORY}" - - local had_spell_file= - local f - for f in *.spl; do - if [[ -f "${f}" ]]; then - doins "${f}" - had_spell_file="yes" - fi - done - - for f in *.sug; do - if [[ -f "${f}" ]]; then - doins "${f}" - fi - done - - for f in README*; do - dodoc "${f}" - done - - [[ -z "${had_spell_file}" ]] && die "Didn't install any spell files?" -} - -# @FUNCTION: vim-spell_pkg_postinst -# @DESCRIPTION: -# This function displays installed Vim spell files. -vim-spell_pkg_postinst() { - has "${EAPI:-0}" 0 1 2 && ! use prefix && EROOT="${ROOT}" - echo - elog "To enable ${VIM_SPELL_LANGUAGE} spell checking, use" - elog " :setlocal spell spelllang=${VIM_SPELL_LOCALE}" - echo - elog "The following (Vim internal, not file) encodings are supported for" - elog "this language:" - local f enc - for f in "${EROOT}${VIM_SPELL_DIRECTORY}/${VIM_SPELL_LOCALE}".*.spl; do - enc="${f##*/${VIM_SPELL_LOCALE}.}" - enc="${enc%.spl}" - [[ -z "${enc}" ]] && continue - elog " ${enc}" - done - echo - elog "For further documentation, use:" - elog " :help spell" - echo -}