From eef0962cf60ef226033e8c6a3eaad3ec1c2ec675 Mon Sep 17 00:00:00 2001 From: Krzesimir Nowak Date: Fri, 7 Jan 2022 15:48:36 +0100 Subject: [PATCH] eclass/virtualx: Sync with gentoo It's from gentoo commit 3a34d9930357ff882123aa4004ac7f568d2269fd. --- .../portage-stable/eclass/virtualx.eclass | 146 ++++-------------- 1 file changed, 28 insertions(+), 118 deletions(-) diff --git a/sdk_container/src/third_party/portage-stable/eclass/virtualx.eclass b/sdk_container/src/third_party/portage-stable/eclass/virtualx.eclass index fb6a867a35..9d446cfdd3 100644 --- a/sdk_container/src/third_party/portage-stable/eclass/virtualx.eclass +++ b/sdk_container/src/third_party/portage-stable/eclass/virtualx.eclass @@ -1,4 +1,4 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # @ECLASS: virtualx.eclass @@ -6,25 +6,19 @@ # x11@gentoo.org # @AUTHOR: # Original author: Martin Schlemmer -# @SUPPORTED_EAPIS: 4 5 6 7 -# @BLURB: This eclass can be used for packages that needs a working X environment to build. +# @SUPPORTED_EAPIS: 6 7 8 +# @BLURB: This eclass can be used for packages that need a working X environment to build. -if [[ ! ${_VIRTUAL_X} ]]; then - -case "${EAPI:-0}" in - 0|1|2|3) - die "virtualx.eclass: EAPI ${EAPI} is too old." - ;; - 4|5|6|7) - ;; - *) - die "virtualx.eclass: EAPI ${EAPI} is not supported yet." - ;; +case ${EAPI} in + 6|7|8) ;; + *) die "${ECLASS}: EAPI ${EAPI:-0} is not supported." ;; esac -[[ ${EAPI} == [45] ]] && inherit eutils +if [[ ! ${_VIRTUALX_ECLASS} ]]; then +_VIRTUALX_ECLASS=1 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED +# @PRE_INHERIT # @DESCRIPTION: # Variable specifying the dependency on xorg-server and xhost. # Possible special values are "always" and "manual", which specify @@ -35,83 +29,36 @@ esac : ${VIRTUALX_REQUIRED:=test} # @ECLASS-VARIABLE: VIRTUALX_DEPEND +# @OUTPUT_VARIABLE # @DESCRIPTION: -# Dep string available for use outside of eclass, in case a more -# complicated dep is needed. -# You can specify the variable BEFORE inherit to add more dependencies. -VIRTUALX_DEPEND="${VIRTUALX_DEPEND} - !prefix? ( x11-base/xorg-server[xvfb] ) +# Standard dependencies string that is automatically added to BDEPEND +# (in EAPI-6: DEPEND) unless VIRTUALX_REQUIRED is set to "manual". +# DEPRECATED: Pre-EAPI-8 you can specify the variable BEFORE inherit +# to add more dependencies. +[[ ${EAPI} != [67] ]] && VIRTUALX_DEPEND="" +VIRTUALX_DEPEND+=" + x11-base/xorg-server[xvfb] x11-apps/xhost " +[[ ${EAPI} != [67] ]] && readonly VIRTUALX_DEPEND -# @ECLASS-VARIABLE: VIRTUALX_COMMAND -# @DESCRIPTION: -# Command (or eclass function call) to be run in the X11 environment -# (within virtualmake function). -: ${VIRTUALX_COMMAND:="emake"} +[[ ${VIRTUALX_COMMAND} ]] && die "VIRTUALX_COMMAND has been removed and is a no-op" case ${VIRTUALX_REQUIRED} in manual) ;; always) - if [[ ${EAPI:-0} != [0123456] ]]; then - BDEPEND="${VIRTUALX_DEPEND}" - else - DEPEND="${VIRTUALX_DEPEND}" - fi - RDEPEND="" - ;; - optional|tests) - [[ ${EAPI} == [45] ]] \ - || die 'Values "optional" and "tests" for VIRTUALX_REQUIRED are banned in EAPI > 5' - # deprecated section YAY. - eqawarn "VIRTUALX_REQUIRED=optional and VIRTUALX_REQUIRED=tests are deprecated." - eqawarn "You can drop the variable definition completely from ebuild," - eqawarn "because it is default behaviour." - - if [[ -n ${VIRTUALX_USE} ]]; then - # so they like to specify the useflag - eqawarn "VIRTUALX_USE variable is deprecated." - eqawarn "Please read eclass manpage to find out how to use VIRTUALX_REQUIRED" - eqawarn "to achieve the same behaviour." - fi - - [[ -z ${VIRTUALX_USE} ]] && VIRTUALX_USE="test" - DEPEND="${VIRTUALX_USE}? ( ${VIRTUALX_DEPEND} )" - RDEPEND="" - IUSE="${VIRTUALX_USE}" + BDEPEND="${VIRTUALX_DEPEND}" ;; *) - if [[ ${EAPI:-0} != [0123456] ]]; then - BDEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" - else - DEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" - fi - RDEPEND="" + BDEPEND="${VIRTUALX_REQUIRED}? ( ${VIRTUALX_DEPEND} )" IUSE="${VIRTUALX_REQUIRED}" + [[ ${VIRTUALX_REQUIRED} == test ]] && + RESTRICT+=" !test? ( test )" ;; esac -# @FUNCTION: virtualmake -# @DESCRIPTION: -# Function which start new Xvfb session -# where the VIRTUALX_COMMAND variable content gets executed. -virtualmake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use virtx" - - # backcompat for maketype - if [[ -n ${maketype} ]]; then - [[ ${EAPI} == [45] ]] || die "maketype is banned in EAPI > 5" - eqawarn "ebuild is exporting \$maketype=${maketype}" - eqawarn "Ebuild should be migrated to use 'virtx command' instead." - VIRTUALX_COMMAND=${maketype} - fi - - virtx "${VIRTUALX_COMMAND}" "${@}" -} +[[ ${EAPI} == 6 ]] && DEPEND="${BDEPEND}" # @FUNCTION: virtx @@ -178,7 +125,10 @@ virtx() { # Xvfb is started, else bump the display number # # Azarah - 5 May 2002 - XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo ${i}) + # GNOME GDM may have started X on DISPLAY :0 with a + # lock file /tmp/.X1024-lock, therefore start the search at 1. + # Else a leftover /tmp/.X1-lock will prevent finding an available display. + XDISPLAY=$(i=1; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo ${i}) debug-print "${FUNCNAME}: XDISPLAY=${XDISPLAY}" # We really do not want SANDBOX enabled here @@ -226,44 +176,4 @@ virtx() { return 0 # always return 0, it can be altered by failed kill for Xvfb } -# @FUNCTION: Xmake -# @DESCRIPTION: -# Same as "make", but set up the Xvfb hack if needed. -# Deprecated call. -Xmake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx emake -j1 ....'" - - eqawarn "you should not execute make directly" - eqawarn "rather execute Xemake -j1 if you have issues with parallel make" - VIRTUALX_COMMAND="emake -j1" virtualmake "$@" -} - -# @FUNCTION: Xemake -# @DESCRIPTION: -# Same as "emake", but set up the Xvfb hack if needed. -Xemake() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx emake ....'" - - VIRTUALX_COMMAND="emake" virtualmake "$@" -} - -# @FUNCTION: Xeconf -# @DESCRIPTION: -# Same as "econf", but set up the Xvfb hack if needed. -Xeconf() { - debug-print-function ${FUNCNAME} "$@" - - [[ ${EAPI} == [45] ]] \ - || die "${FUNCNAME} is unsupported in EAPI > 5, please use 'virtx econf ....'" - - VIRTUALX_COMMAND="econf" virtualmake "$@" -} - -_VIRTUAL_X=1 fi