Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 188562 Details for
Bug 219864
app-admin/eselect fails on env variables with whitespace in value, despite quoting
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
bash trace
bash-trace.txt (text/plain), 38.64 KB, created by
Holger Hoffstätte
on 2009-04-16 13:19:27 UTC
(
hide
)
Description:
bash trace
Filename:
MIME Type:
Creator:
Holger Hoffstätte
Created:
2009-04-16 13:19:27 UTC
Size:
38.64 KB
patch
obsolete
> >root>bash -vx /usr/bin/eselect opengl set xorg-x11 >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># Where is our data? >ESELECT_DATA_PATH="/usr/share/eselect/" >+ ESELECT_DATA_PATH=/usr/share/eselect/ > ># Look in these places for modules >ESELECT_MODULES_PATH=( \ > "${HOME}/.eselect/modules" \ > "${ESELECT_DATA_PATH}/modules" ) >+ ESELECT_MODULES_PATH=("${HOME}/.eselect/modules" "${ESELECT_DATA_PATH}/modules") > ># Look in this place for libraries >ESELECT_CORE_PATH="${ESELECT_DATA_PATH}/libs" >+ ESELECT_CORE_PATH=/usr/share/eselect//libs > ># Look here for the default contents of a module >ESELECT_DEFAULT_ACTIONS="${ESELECT_CORE_PATH}/default.eselect" >+ ESELECT_DEFAULT_ACTIONS=/usr/share/eselect//libs/default.eselect > ># Our program name and version >ESELECT_VERSION="1.0.11" >+ ESELECT_VERSION=1.0.11 >ESELECT_PROGRAM_NAME="eselect" >+ ESELECT_PROGRAM_NAME=eselect > ># Invokation information >ESELECT_BINARY_NAME="${0}" >+ ESELECT_BINARY_NAME=/usr/bin/eselect >ESELECT_KILL_TARGET="$$" >+ ESELECT_KILL_TARGET=20226 > ># Global options >ESELECT_KNOWN_OPTIONS="no-colour no-color" >+ ESELECT_KNOWN_OPTIONS='no-colour no-color' >ESELECT_OPTIONS="" >+ ESELECT_OPTIONS= > >shopt -s extglob >+ shopt -s extglob >shopt -s expand_aliases >+ shopt -s expand_aliases > ># Load core functions >source "${ESELECT_CORE_PATH}/core.bash" || exit 255 >+ source /usr/share/eselect//libs/core.bash >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># check_do function args ># Check that function exists, and call it with args. >check_do() { > local function="${1}" > shift > if is_function "${function}" ; then > ${function} "$@" > else > die "No function ${function}" > fi >} > ># die [-q] "Message" PUBLIC ># Display "Message" as an error. If -q is not provided, gives a stacktrace. >die() { > local item funcname="" sourcefile="" lineno="" n e s="yes" > > # do we have a working write_error_msg? > if is_function "write_error_msg" ; then > e="write_error_msg" > else > e="echo" > fi > > # quiet? > if [[ ${1} == "-q" ]] ; then > s="" > shift > fi > > $e "${@:-(no message)}" > > if [[ -n "${s}" ]] ; then > echo "Call stack:" 1>&2 > for (( n = 1 ; n < ${#FUNCNAME[@]} ; ++n )) ; do > funcname=${FUNCNAME[${n}]} > sourcefile=$(basename ${BASH_SOURCE[${n}]}) > lineno=${BASH_LINENO[$(( n - 1 ))]} > echo " * ${funcname} (${sourcefile}:${lineno})" 1>&2 > done > fi > > # Evil, but effective. > kill ${ESELECT_KILL_TARGET} > childs=$(pgrep -P ${ESELECT_KILL_TARGET}) > for process in ${ESELECT_KILL_TARGET} ${childs} ; do > kill -9 ${process} > done > exit 249 >} > ># do_action action args... ># Load and do 'action' with the specified args >do_action() { > local action="${1##--}" modfile="" subaction="${2##--}" > [[ -z ${action} ]] && die "Usage: do_action <action> <args>" > shift 2 > > ESELECT_MODULE_NAME="${action}" > ESELECT_COMMAND="${ESELECT_PROGRAM_NAME} ${ESELECT_MODULE_NAME}" > > [[ ${ESELECT_BINARY_NAME##*/} != ${ESELECT_PROGRAM_NAME} ]] && \ > ESELECT_COMMAND="${ESELECT_BINARY_NAME##*/}" > > modfile=$( ec_find_module "${action}" ) > ( > source "$ESELECT_DEFAULT_ACTIONS" 2>/dev/null \ > || die "Couldn't source ${ESELECT_DEFAULT_ACTIONS}" > source "${modfile}" 2>/dev/null \ > || die "Couldn't source ${modfile}" > if [[ -z ${subaction} ]] ; then > check_do "do_${DEFAULT_ACTION:-usage}" "$@" > else > is_function "do_${subaction}" \ > || die -q "Action ${subaction} unknown" > check_do "do_${subaction}" "$@" > fi > ) >} > ># inherit module PUBLIC ># Sources a given eselect library file >inherit() { > local x > for x in ${@} ; do > [[ -e "${ESELECT_CORE_PATH}/${x}.bash" ]] \ > || die "Couldn't find ${x}.bash" > source "${ESELECT_CORE_PATH}/${x}.bash" \ > || die "Couldn't source ${x}.bash" > done >} > ># make eval not work, because it's evil >eval() { > die "Don't use eval. Find another way." >} > ># GNU sed wrapper (real path to GNU sed determined by configure) >sed() { > /bin/sed "$@" >} > ># vim: set sw=4 et sts=4 tw=80 : ># Load necessary functions for the main script >inherit manip output path-manipulation tests >+ inherit manip output path-manipulation tests >+ local x >+ for x in '${@}' >+ [[ -e /usr/share/eselect//libs/manip.bash ]] >+ source /usr/share/eselect//libs/manip.bash >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># svn_date_to_version PUBLIC ># Turn an svn date string into a nice version number, for those of us who ># are too lazy to manually update VERSION in modules. Safe to use in global ># scope. >svn_date_to_version() { > local s=${1} > s=${s#* } > s=${s%% *} > s=${s//-} > echo "${s}" >} > ># vim: set sw=4 et sts=4 tw=80 : > > >+ for x in '${@}' >+ [[ -e /usr/share/eselect//libs/output.bash ]] >+ source /usr/share/eselect//libs/output.bash >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># Colours >COLOUR_LIST_HEADER="\033[1;32m" >++ COLOUR_LIST_HEADER='\033[1;32m' >COLOUR_LIST_LEFT="\033[0;1m" >++ COLOUR_LIST_LEFT='\033[0;1m' >COLOUR_LIST_RIGHT="\033[00m" >++ COLOUR_LIST_RIGHT='\033[00m' >COLOUR_ERROR="\033[1;31m" >++ COLOUR_ERROR='\033[1;31m' >COLOUR_NORMAL="\033[00m" >++ COLOUR_NORMAL='\033[00m' >COLOUR_HI="\033[1;34m" >++ COLOUR_HI='\033[1;34m' >COLOUR_WARN="\033[1;31m" >++ COLOUR_WARN='\033[1;31m' > ># set all colours to COLOURS_NORMAL >nocolours() { > COLOUR_LIST_HEADER="" > COLOUR_LIST_LEFT="" > COLOUR_LIST_RIGHT="" > COLOUR_ERROR="" > COLOUR_NORMAL="" > COLOUR_HI="" > COLOUR_WARN="" >} > ># write_error_msg PUBLIC ># write an error >write_error_msg() { > echo -e "${COLOUR_ERROR}!!! Error: ${COLOUR_NORMAL}${*}" 1>&2 >} > ># write_warning_msg PUBLIC ># write a warning >write_warning_msg() { > echo -e "${COLOUR_WARN}!!! Warning: ${COLOUR_NORMAL}${*}" 1>&2 >} > ># write_list_start PUBLIC ># Write a list heading. Args may include text highlighting. If -p is passed, ># use 'plain' highlighting. >write_list_start() { > local colour="${COLOUR_LIST_HEADER}" > if [[ ${1} == "-p" ]] ; then > colour= > shift > fi > echo -n -e "${colour}" > echo -n -e $(apply_text_highlights "${colour}" "$*") > echo -n -e "${COLOUR_NORMAL}" > echo >} > ># write_kv_list_entry PUBLIC ># Write a key/value list entry with $1 on the left and $2 on the right. ># Args may include text highlighting. If -p is passed, use 'plain' ># highlighting rather than bold. >write_kv_list_entry() { > local n text left="${COLOUR_LIST_LEFT}" right="${COLOUR_LIST_RIGHT}" > local key val lindent rindent ifs_save="${IFS}" > > IFS=$' \t\n' > > if [[ ${1} == "-p" ]] ; then > left= > right= > shift > fi > > lindent=${1%%[^[:space:]]*} > rindent=${2%%[^[:space:]]*} > key=${1##*([[:space:]])} > val=${2##*([[:space:]])} > > echo -n -e " ${lindent}${left}" > echo -n -e "$(apply_text_highlights "${left}" "${key}")" > echo -n -e "${COLOUR_NORMAL} " > > text=${key//\%%%??%%%/} > n=$(( 25 - ${#text} )) > > # if ${n} is less than or equal to zero then we have a long ${key} > # that will mess up the formatting of ${val}, so end the line, indent > # and let ${val} go on the next line. > if [[ ${n} -le 0 ]] ; then > n=$(( ${#rindent} + 28 )) > echo -n -e "\n$(space ${n})${right}" > else > space ${n} > n=$(( ${n} + 2 + ${#text} )) > # ${val} will already be indented by ${lindent} so only use the > # difference of ${rindent} and ${lindent} as the right indent > if [[ ${#rindent} -eq ${#lindent} ]] ; then > n=$(( ${n} + ${#lindent} )) > else > space $(( ${#rindent} - ${#lindent} )) > n=$(( ${n} + ${#rindent} - ${#lindent} )) > fi > echo -n -e "${right}" > fi > > local cols=$(get_column_width) \ > cwords="$(apply_text_highlights "${right}" "${val}")" > > text=${val//\%%%??%%%/} > # only loop if it doesn't fit on the same line > if [[ $(( ${n} + ${#text} )) -ge ${cols} ]] ; then > local i=0 > rindent="${rindent}$(space 28)" > cwords=( ${cwords} ) > for text in ${val} ; do > text=${text//\%%%??%%%/} > # put the word on the same line if it fits > if [[ $(( ${n} + ${#text} + 1 )) -lt ${cols} ]] ; then > echo -n -e "${cwords[i]}" > n=$(( ${n} + ${#text} )) > # only append a space if we're not on the last word > if [[ ${i} -ne ${#cwords} ]] ; then > echo -n ' ' > n=$(( ${n} + 1 )) > fi > # otherwise, start a new line and indent > else > echo -n -e "\n${rindent}${cwords[i]}" > n=$(( ${#rindent} + ${#text} )) > # only append a space if we're not on the last word > if [[ ${i} -ne ${#cwords} ]] ; then > echo -n ' ' > n=$(( ${n} + 1 )) > fi > fi > i=$(( ${i} + 1 )) > done > else > echo -n -e "${cwords}" > fi > echo -e "${COLOUR_NORMAL}" > IFS="${ifs_save}" >} > ># write_numbered_list_entry PUBLIC ># Write out a numbered list entry with index $1 and text $2. Args may ># include text highlighting. If -p is passed, use 'plain' highlighting. >write_numbered_list_entry() { > local n left="${COLOUR_LIST_LEFT}" right="${COLOUR_LIST_RIGHT}" > if [[ ${1} == "-p" ]] ; then > left="" > right="" > shift > fi > echo -n -e " ${left}" > echo -n -e "[$(apply_text_highlights "${left}" "$1")]" > echo -n -e "${COLOUR_NORMAL}" > space $(( 4 - ${#1} )) > echo -n -e "${right}" > echo -n -e "$(apply_text_highlights "${right}" "$2")" > echo -n -e "${COLOUR_NORMAL}" > echo >} > ># write_numbered_list PUBLIC ># Write out a numbered list. Args may include text highlighting. >write_numbered_list() { > local n=1 p= > if [[ ${1} == "-p" ]] ; then > p="-p" > shift > fi > > while [[ ${#@} -gt 0 ]] ; do > item=${1} > shift > if [[ ${item##*\\} == "" ]] ; then > item="${item%\\} ${1}" > shift > fi > write_numbered_list_entry ${p} "${n}" "${item}" > n=$(( ${n} + 1 )) > done >} > ># get_column_width INTERNAL ># Get current column width >get_column_width() { > if [[ -z "${COLS}" ]] ; then > COLS=( $(stty size 2>/dev/null) ) > is_number "${COLS[1]}" && COLS=${COLS[1]} || COLS=79 > fi > > echo -n ${COLS} >} > ># apply_text_highlights INTERNAL ># Apply text highlights. First arg is the 'restore' colour, second arg ># is the text. >apply_text_highlights() { > local restore=${1} text=${2} > text="${text//?%%HI%%%/${COLOUR_HI}}" > text="${text//?%%WA%%%/${COLOUR_WARN}}" > text="${text//?%%RE%%%/${restore}}" > echo -n "${text}" >} > ># highlight PUBLIC ># Highlight all arguments. Text highlighting function. >highlight() { > echo -n -e "%%%HI%%%${*}%%%RE%%%" >} > ># highlight_warning PUBLIC ># Highlight all arguments as a warning (red). Text highlighting function. >highlight_warning() { > echo -n -e "%%%WA%%%${*}%%%RE%%%" >} > ># space PUBLIC ># Write $1 numbers of spaces >space() { > local ret="" > for (( n = 1 ; n <= ${1} ; ++n )) ; do > ret="${ret} " > done > echo -n "${ret}" >} > ># vim: set sw=4 et sts=4 tw=80 : >+ for x in '${@}' >+ [[ -e /usr/share/eselect//libs/path-manipulation.bash ]] >+ source /usr/share/eselect//libs/path-manipulation.bash >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># basename wrapper >basename() { > echo ${1##*/} >} > ># dirname wrapper >dirname() { > echo ${1%/*} >} > >canonicalise() { > /bin/readlink -f $* >} > ># vim: set sw=4 et sts=4 tw=80 : > > >+ for x in '${@}' >+ [[ -e /usr/share/eselect//libs/tests.bash ]] >+ source /usr/share/eselect//libs/tests.bash >#!/bin/bash > ># Copyright (c) 2005 Gentoo Foundation. ># $Id$ ># This file is part of the 'eselect' tools framework. ># ># eselect is free software; you can redistribute it and/or modify it under the ># terms of the GNU General Public License as published by the Free Software ># Foundation; either version 2 of the License, or (at your option) any later ># version. ># ># eselect is distributed in the hope that it will be useful, but WITHOUT ANY ># WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR ># A PARTICULAR PURPOSE. See the GNU General Public License for more details. ># ># You should have received a copy of the GNU General Public License along with ># eselect; if not, write to the Free Software Foundation, Inc., 59 Temple ># Place, Suite 330, Boston, MA 02111-1307 USA > ># has test list ># Return true if list contains test >has() { > local test=${1} item > shift > for item in $@ ; do > [[ ${item} == ${test} ]] && return 0 > done > return 1 >} > ># is_function function PUBLIC ># Test whether function exists >is_function() { > [[ $(type -t "${1}" ) == "function" ]] >} > ># is_number PUBLIC ># Returns true if and only if $1 is a positive whole number >is_number() { > [[ -n ${1} ]] && [[ -z ${1//[[:digit:]]} ]] >} > ># vim: set sw=4 et sts=4 tw=80 : > > ># Sneaky trick to make die in subshells work. If you don't get ># it, don't ask... >trap 'echo "exiting." ; exit 250' 15 >+ trap 'echo "exiting." ; exit 250' 15 > ># ec_find_module foo ># Find and echo the filename of the foo module. If there's no foo module, ># die. >ec_find_module() { > local modname="$1" modpath="" modfile="" > [[ -z ${modname} ]] && die "Usage: ${FUNCNAME} <module>" > for modpath in "${ESELECT_MODULES_PATH[@]}" ; do > [[ -f ${modpath}/${modname}.eselect ]] && break > done > > modfile="${modpath}/${modname}.eselect" > [[ -r ${modfile} ]] || die -q "Can't load module ${modname}" > echo ${modfile} >} > ># ec_do_usage ># Display eselect usage >ec_do_usage() { > echo "Usage: eselect <global options> <module name> <module options>" >} > ># ec_do_help ># Display eselect help >ec_do_help() { > ec_do_usage > echo > ec_do_list-options > echo > ec_do_list-modules >} > ># ec_do_version ># Display eselect version >ec_do_version() { > echo "eselect ${ESELECT_VERSION}" > echo > echo "Copyright (c) 2005 Gentoo Foundation. Distributed under the" > echo "terms of the GNU General Public License v2." >} > ># ec_do_list-options ># Display all recognized global options >ec_do_list-options() { > write_list_start "Global options:" > write_kv_list_entry "--no-color,--no-colour" "Disable coloured output" >} > ># ec_do_list-modules ># Display all available eselect modules >ec_do_list-modules() { > local path file module name desc > > write_list_start "Built-in modules:" > write_kv_list_entry "help" "Display a help message" > write_kv_list_entry "list-modules" "Find and display available modules" > write_kv_list_entry "usage" "Display a usage message" > write_kv_list_entry "version" "Display version information" > > extra_modules=() > for path in "${ESELECT_MODULES_PATH[@]}" ; do > [[ -d ${path} ]] || continue > for file in ${path}/*.eselect ; do > [[ -f ${file} ]] || continue > extra_modules=( ${extra_modules[@]} "${file}" ) > done > done > > if [[ ${#extra_modules[@]} -gt 0 ]] ; then > echo > write_list_start "Extra modules:" > for module in ${extra_modules[@]} ; do > name=${module##*/} > name=${name%%.eselect} > desc=$( > source "$ESELECT_DEFAULT_ACTIONS" 2>/dev/null \ > || die "Couldn't source ${ESELECT_DEFAULT_ACTIONS}" > source "${module}" 2>/dev/null \ > || die "Couldn't source ${module}" > echo "${DESCRIPTION}" > ) > write_kv_list_entry "${name}" "${desc}" > done > fi >} > >### main code ### > ># figure out what the action is. we need to know whether we're ># invoked as a something-config/something-update. >action="" >+ action= > >for suffix in config update{,r} tool manager reader ; do > if [[ ${0%%-${suffix}} != ${0} ]] ; then > action=$(basename "${0}" ) > action=${action%%-${suffix}} > break > fi >done >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >+ for suffix in config 'update{,r}' tool manager reader >+ [[ /usr/bin/eselect != /usr/bin/eselect ]] >unset suffix >+ unset suffix > >if [[ -z ${action} ]] ; then > binname=$(basename "${0}" ) > for prefix in config update{,r} manage 'read' ; do > if [[ ${binname##${prefix}-} != ${binname} ]] ; then > action=$(basename "${0}" ) > action=${action##${prefix}-} > break > fi > done > unset binname prefix >fi >+ [[ -z '' ]] >basename "${0}" ) >basename "${0}" >++ basename /usr/bin/eselect >++ echo eselect >+ binname=eselect >+ for prefix in config 'update{,r}' manage ''\''read'\''' >+ [[ eselect != eselect ]] >+ for prefix in config 'update{,r}' manage ''\''read'\''' >+ [[ eselect != eselect ]] >+ for prefix in config 'update{,r}' manage ''\''read'\''' >+ [[ eselect != eselect ]] >+ for prefix in config 'update{,r}' manage ''\''read'\''' >+ [[ eselect != eselect ]] >+ for prefix in config 'update{,r}' manage ''\''read'\''' >+ [[ eselect != eselect ]] >+ unset binname prefix > >if [[ -z ${action} ]] && [[ -n ${1##--} ]] ; then > while [[ ${1##--} != ${1} ]] ; do > has ${1##--} "${ESELECT_KNOWN_OPTIONS[@]}" || \ > die -q "Unknown option ${1}!" > case ${1##--} in > no-colour|no-color) > ESELECT_OPTIONS=(${ESELECT_OPTIONS[@]} "NOCOLOUR") > nocolours > shift > ;; > esac > done > action=${1} > shift >fi >+ [[ -z '' ]] >+ [[ -n opengl ]] >+ [[ opengl != opengl ]] >+ action=opengl >+ shift > >if [[ -n "${action}" ]] ; then > if is_function "ec_do_${action}" ; then > ec_do_${action} "${@}" > else > do_action "${action}" "${@}" > fi >else > ec_do_help >fi >+ [[ -n opengl ]] >+ is_function ec_do_opengl >type -t "${1}" ) >type -t "${1}" >++ type -t ec_do_opengl >+ [[ '' == \f\u\n\c\t\i\o\n ]] >+ do_action opengl set xorg-x11 >+ local action=opengl modfile= subaction=set >+ [[ -z opengl ]] >+ shift 2 >+ ESELECT_MODULE_NAME=opengl >+ ESELECT_COMMAND='eselect opengl' >+ [[ eselect != eselect ]] > ec_find_module "${action}" ) > ec_find_module "${action}" >++ ec_find_module opengl >++ local modname=opengl modpath= modfile= >++ [[ -z opengl ]] >++ for modpath in '"${ESELECT_MODULES_PATH[@]}"' >++ [[ -f /root/.eselect/modules/opengl.eselect ]] >++ for modpath in '"${ESELECT_MODULES_PATH[@]}"' >++ [[ -f /usr/share/eselect//modules/opengl.eselect ]] >++ break >++ modfile=/usr/share/eselect//modules/opengl.eselect >++ [[ -r /usr/share/eselect//modules/opengl.eselect ]] >++ echo /usr/share/eselect//modules/opengl.eselect >+ modfile=/usr/share/eselect//modules/opengl.eselect >+ source /usr/share/eselect//libs/default.eselect >+ source /usr/share/eselect//modules/opengl.eselect >+ [[ -z set ]] >+ is_function do_set >type -t "${1}" ) >type -t "${1}" >++ type -t do_set >+ [[ function == \f\u\n\c\t\i\o\n ]] >+ check_do do_set xorg-x11 >+ local function=do_set >+ shift >+ is_function do_set >type -t "${1}" ) >type -t "${1}" >++ type -t do_set >+ [[ function == \f\u\n\c\t\i\o\n ]] >+ do_set xorg-x11 >+ local action=error >get_current_implementation) >get_current_implementation >++ get_current_implementation >++ local ret >load_config "${ENV_FILE}" LDPATH) >load_config "${ENV_FILE}" LDPATH) >load_config "${ENV_FILE}" LDPATH >+++ load_config /etc/env.d/03opengl LDPATH >+++ [[ 2 -eq 2 ]] >+++ local configfile key value >+++ configfile=/etc/env.d/03opengl >+++ key=LDPATH >+++ [[ ! -e /etc/env.d/03opengl ]] > > unset ${key} > source ${configfile} 1>&2 > /dev/null || die "Failed to source ${configfile}." > echo "${!key}" > ) > > unset ${key} >++++ unset LDPATH > source ${configfile} 1>&2 > /dev/null || die "Failed to source ${configfile}." >++++ source /etc/env.d/03opengl ># Configuration file for eselect ># This file has been automatically generated. >LDPATH="/usr/lib/opengl/xorg-x11/lib" >+++++ LDPATH=/usr/lib/opengl/xorg-x11/lib >OPENGL_PROFILE="xorg-x11" >+++++ OPENGL_PROFILE=xorg-x11 > echo "${!key}" >++++ echo /usr/lib/opengl/xorg-x11/lib > >+++ value=/usr/lib/opengl/xorg-x11/lib >+++ echo /usr/lib/opengl/xorg-x11/lib >++ local ldpath=/usr/lib/opengl/xorg-x11/lib >load_config "${ENV_FILE}" OPENGL_PROFILE) >load_config "${ENV_FILE}" OPENGL_PROFILE) >load_config "${ENV_FILE}" OPENGL_PROFILE >+++ load_config /etc/env.d/03opengl OPENGL_PROFILE >+++ [[ 2 -eq 2 ]] >+++ local configfile key value >+++ configfile=/etc/env.d/03opengl >+++ key=OPENGL_PROFILE >+++ [[ ! -e /etc/env.d/03opengl ]] > > unset ${key} > source ${configfile} 1>&2 > /dev/null || die "Failed to source ${configfile}." > echo "${!key}" > ) > > unset ${key} >++++ unset OPENGL_PROFILE > source ${configfile} 1>&2 > /dev/null || die "Failed to source ${configfile}." >++++ source /etc/env.d/03opengl ># Configuration file for eselect ># This file has been automatically generated. >LDPATH="/usr/lib/opengl/xorg-x11/lib" >+++++ LDPATH=/usr/lib/opengl/xorg-x11/lib >OPENGL_PROFILE="xorg-x11" >+++++ OPENGL_PROFILE=xorg-x11 > echo "${!key}" >++++ echo xorg-x11 > >+++ value=xorg-x11 >+++ echo xorg-x11 >++ local opengl_profile=xorg-x11 >++ [[ -n xorg-x11 ]] >++ ret=xorg-x11 >++ echo xorg-x11 >+ local current=xorg-x11 >get_implementations) >get_implementations >++ get_implementations >++ local ret dir >list_libdirs) >list_libdirs >+++ list_libdirs >+++ local dir libdirs >+++ libdirs= >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib\(\|/\)$' /etc/ld.so.conf >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib32\(\|/\)$' /etc/ld.so.conf >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib64\(\|/\)$' /etc/ld.so.conf >+++ [[ -z '' ]] >+++ libdirs=(${ROOT}/lib*) >+++ libdirs=(${libdirs[@]/\/lib/lib}) >+++ echo lib >++ for x in '$(list_libdirs)' >++ [[ '' != / ]] >++ x=lib >++ for dir in '"${PREFIX}/${x}"/opengl/*' >++ [[ -d /usr/lib/opengl/global ]] >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/global >+++ echo global >++ [[ global != \g\l\o\b\a\l ]] >++ continue >++ for dir in '"${PREFIX}/${x}"/opengl/*' >++ [[ -d /usr/lib/opengl/xorg-x11 ]] >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ [[ xorg-x11 != \g\l\o\b\a\l ]] >basename "${dir}") >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ has xorg-x11 >++ local test=xorg-x11 item >++ shift >++ return 1 >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ ret=xorg-x11 >++ echo xorg-x11 >+ local available=xorg-x11 >+ local new >+ [[ 1 -gt 0 ]] >+ local opt=xorg-x11 >+ shift >+ case ${opt} in >+ [[ error != \o\l\d\-\i\m\p\l\e\m\e\n\t\a\t\i\o\n ]] >+ action=set-implementation >+ is_number xorg-x11 >+ [[ -n xorg-x11 ]] >+ [[ -z xorg-x ]] >+ has xorg-x11 xorg-x11 >+ local test=xorg-x11 item >+ shift >+ for item in '$@' >+ [[ xorg-x11 == xorg-x11 ]] >+ return 0 >+ new=xorg-x11 >+ [[ 0 -gt 0 ]] >+ case ${action} in >+ [[ -n xorg-x11 ]] >+ set_new_implementation xorg-x11 >+ local gl_implem=xorg-x11 >get_implementations) >get_implementations >++ get_implementations >++ local ret dir >list_libdirs) >list_libdirs >+++ list_libdirs >+++ local dir libdirs >+++ libdirs= >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib\(\|/\)$' /etc/ld.so.conf >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib32\(\|/\)$' /etc/ld.so.conf >+++ for dir in '${ES_VALID_MULTILIB_DIRS}' >+++ grep -q '^/lib64\(\|/\)$' /etc/ld.so.conf >+++ [[ -z '' ]] >+++ libdirs=(${ROOT}/lib*) >+++ libdirs=(${libdirs[@]/\/lib/lib}) >+++ echo lib >++ for x in '$(list_libdirs)' >++ [[ '' != / ]] >++ x=lib >++ for dir in '"${PREFIX}/${x}"/opengl/*' >++ [[ -d /usr/lib/opengl/global ]] >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/global >+++ echo global >++ [[ global != \g\l\o\b\a\l ]] >++ continue >++ for dir in '"${PREFIX}/${x}"/opengl/*' >++ [[ -d /usr/lib/opengl/xorg-x11 ]] >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ [[ xorg-x11 != \g\l\o\b\a\l ]] >basename "${dir}") >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ has xorg-x11 >++ local test=xorg-x11 item >++ shift >++ return 1 >basename "${dir}") >basename "${dir}" >+++ basename /usr/lib/opengl/xorg-x11 >+++ echo xorg-x11 >++ ret=xorg-x11 >++ echo xorg-x11 >+ local avail_implems=xorg-x11 >+ check_version >+ portageq has_version / x11-base/xorg-x11 >+ /usr/lib/portage/bin/ebuild-helpers/portageq has_version / x11-base/xorg-x11 >+ portageq has_version / '>=x11-base/xorg-x11-6.8.0-r4' >+ /usr/lib/portage/bin/ebuild-helpers/portageq has_version / '>=x11-base/xorg-x11-6.8.0-r4' >+ umask 022 >+ has xorg-x11 xorg-x11 >+ local test=xorg-x11 item >+ shift >+ for item in '$@' >+ [[ xorg-x11 == xorg-x11 ]] >+ return 0 >+ echo -n 'Switching to xorg-x11 OpenGL interface...' >Switching to xorg-x11 OpenGL interface...+ [[ -f /etc/env.d/03opengl ]] >+ rm -f /etc/env.d/03opengl >+ local libdir >list_libdirs) >list_libdirs >++ list_libdirs >++ local dir libdirs >++ libdirs= >++ for dir in '${ES_VALID_MULTILIB_DIRS}' >++ grep -q '^/lib\(\|/\)$' /etc/ld.so.conf >++ for dir in '${ES_VALID_MULTILIB_DIRS}' >++ grep -q '^/lib32\(\|/\)$' /etc/ld.so.conf >++ for dir in '${ES_VALID_MULTILIB_DIRS}' >++ grep -q '^/lib64\(\|/\)$' /etc/ld.so.conf >++ [[ -z '' ]] >++ libdirs=(${ROOT}/lib*) >++ libdirs=(${libdirs[@]/\/lib/lib}) >++ echo lib >+ for libdir in '$(list_libdirs)' >+ [[ '' != / ]] >+ libdir=lib >+ [[ -d /usr/lib/opengl ]] >+ [[ ! -h /usr/lib ]] >+ local gl_local >+ [[ ! -d /usr/lib/opengl/xorg-x11 ]] >+ gl_local=xorg-x11 >+ setup_lib_symlinks /usr/lib/opengl/xorg-x11/lib /usr/lib >+ local profile_libdir=/usr/lib/opengl/xorg-x11/lib >+ local libdir=/usr/lib >+ local file >+ local rootfile >+ mkdir -p /usr/lib >+ pushd /usr/lib >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGL.a ]] >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGL.so ]] >+ rm -f libGL.so >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGL.la ]] >+ rm -f libGL.la >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGLcore.a ]] >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGLcore.so ]] >+ for file in 'libGL{,core}.{a,so,la}' >+ [[ -e libGLcore.la ]] >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGL.so >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGL.so ]] >basename "${file}") >basename "${file}" >++ basename /usr/lib/opengl/xorg-x11/lib/libGL.so >++ echo libGL.so >+ [[ -f libGL.so ]] >+ [[ /usr/lib/opengl/xorg-x11/lib/libGL.so != /usr/lib/opengl/xorg-x11/lib/libGL.so ]] >+ ln -s /usr/lib/opengl/xorg-x11/lib/libGL.so >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGL.a >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGL.a ]] >+ continue >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGL.la >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGL.la ]] >basename "${file}") >basename "${file}" >++ basename /usr/lib/opengl/xorg-x11/lib/libGL.la >++ echo libGL.la >+ [[ -f libGL.la ]] >+ [[ /usr/lib/opengl/xorg-x11/lib/libGL != /usr/lib/opengl/xorg-x11/lib/libGL.la ]] >+ sed s:/usr/lib/opengl/xorg-x11/lib:/usr/lib:g /usr/lib/opengl/xorg-x11/lib/libGL.la >basename "${file}")" >basename "${file}") >basename "${file}" >++ basename /usr/lib/opengl/xorg-x11/lib/libGL.la >++ echo libGL.la >+ /bin/sed s:/usr/lib/opengl/xorg-x11/lib:/usr/lib:g /usr/lib/opengl/xorg-x11/lib/libGL.la >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGLcore.so >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGLcore.so ]] >+ continue >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGLcore.a >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGLcore.a ]] >+ continue >+ for file in '${profile_libdir}/libGL{,core}.{so,a,la}' >+ [[ '' != / ]] >+ rootfile=/usr/lib/opengl/xorg-x11/lib/libGLcore.la >+ [[ -f /usr/lib/opengl/xorg-x11/lib/libGLcore.la ]] >+ continue >+ popd >+ [[ -e /usr/lib/opengl/xorg-x11/lib/tls ]] >+ local moduledir >+ [[ -e /usr/lib/xorg/modules ]] >+ moduledir=xorg/modules >+ [[ -e /usr/lib/opengl/xorg-x11/extensions ]] >+ mkdir -p /usr/lib/xorg/modules/extensions >+ pushd /usr/lib/xorg/modules/extensions >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libwfb.a ]] >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libwfb.so ]] >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libwfb.la ]] >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libglx.a ]] >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libglx.so ]] >+ rm -f libglx.so >+ for file in 'lib{wfb,glx}.{a,so,la}' >+ [[ -e libglx.la ]] >+ for file in '${PREFIX}/${libdir}/opengl/${gl_local}/extensions/*.{so,a,la}' >+ [[ -f /usr/lib/opengl/xorg-x11/extensions/libglx.so ]] >basename "${file}") >basename "${file}" >++ basename /usr/lib/opengl/xorg-x11/extensions/libglx.so >++ echo libglx.so >+ [[ -f libglx.so ]] >+ [[ /usr/lib/opengl/xorg-x11/extensions/libglx.so != /usr/lib/opengl/xorg-x11/extensions/libglx.so ]] >+ ln -s /usr/lib/opengl/xorg-x11/extensions/libglx.so >+ for file in '${PREFIX}/${libdir}/opengl/${gl_local}/extensions/*.{so,a,la}' >+ [[ -f /usr/lib/opengl/xorg-x11/extensions/*.a ]] >+ continue >+ for file in '${PREFIX}/${libdir}/opengl/${gl_local}/extensions/*.{so,a,la}' >+ [[ -f /usr/lib/opengl/xorg-x11/extensions/*.la ]] >+ continue >+ popd >+ mkdir -p /usr/include/GL >+ pushd /usr/include/GL >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/gl.h ]] >+ [[ -e /usr/lib/opengl/xorg-x11/include/gl.h ]] >+ [[ -f gl.h ]] >+ rm -f gl.h >+ ln -s /usr/lib/opengl/xorg-x11/include/gl.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glx.h ]] >+ [[ -e /usr/lib/opengl/xorg-x11/include/glx.h ]] >+ [[ -f glx.h ]] >+ rm -f glx.h >+ ln -s /usr/lib/opengl/xorg-x11/include/glx.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glxtokens.h ]] >+ [[ -e /usr/lib/opengl/xorg-x11/include/glxtokens.h ]] >+ [[ -f glxtokens.h ]] >+ rm -f glxtokens.h >+ ln -s /usr/lib/opengl/xorg-x11/include/glxtokens.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glext.h ]] >+ [[ -f glext.h ]] >+ rm -f glext.h >+ ln -s /usr/lib/opengl/global/include/glext.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glxext.h ]] >+ [[ -f glxext.h ]] >+ rm -f glxext.h >+ ln -s /usr/lib/opengl/global/include/glxext.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glxmd.h ]] >+ [[ -e /usr/lib/opengl/xorg-x11/include/glxmd.h ]] >+ [[ -f glxmd.h ]] >+ rm -f glxmd.h >+ ln -s /usr/lib/opengl/xorg-x11/include/glxmd.h >+ for file in gl.h glx.h glxtokens.h glext.h glxext.h glxmd.h glxproto.h >+ [[ no == \y\e\s ]] >+ [[ -e /usr/lib/opengl/global/include/glxproto.h ]] >+ [[ -e /usr/lib/opengl/xorg-x11/include/glxproto.h ]] >+ [[ -f glxproto.h ]] >+ rm -f glxproto.h >+ ln -s /usr/lib/opengl/xorg-x11/include/glxproto.h >+ popd >+ ldpath=/usr/lib/opengl/xorg-x11/lib >+ store_config /etc/env.d/03opengl LDPATH /usr/lib/opengl/xorg-x11/lib >+ [[ 3 -ge 2 ]] >+ local configfile=/etc/env.d/03opengl key=LDPATH value content vars line= changed=0 >+ shift 2 >+ value=/usr/lib/opengl/xorg-x11/lib >+ [[ ! -e /etc/env.d/03opengl ]] >+ mkdir -p /etc/env.d >+ [[ ! -f /etc/env.d/03opengl ]] >+ store_config_header >+ echo '# Configuration file for eselect' >+ echo '# This file has been automatically generated.' >+ echo 'LDPATH="/usr/lib/opengl/xorg-x11/lib"' >+ return >+ store_config /etc/env.d/03opengl OPENGL_PROFILE xorg-x11 >+ [[ 3 -ge 2 ]] >+ local configfile=/etc/env.d/03opengl key=OPENGL_PROFILE value content vars line= changed=0 >+ shift 2 >+ value=xorg-x11 >+ [[ ! -e /etc/env.d/03opengl ]] >+ [[ ! -f /etc/env.d/03opengl ]] ><${configfile}) ><${configfile} >+ content='# Configuration file for eselect ># This file has been automatically generated. >LDPATH="/usr/lib/opengl/xorg-x11/lib"' >+ [[ -z # Configuration file for eselect # This file has been automatically generated. LDPATH="/usr/lib/opengl/xorg-x11/lib" ]] >+ for line in '${content[@]}' >+ [[ # != # ]] >+ continue >+ for line in '${content[@]}' >+ [[ Configuration != Configuration ]] >+ continue >+ for line in '${content[@]}' >+ [[ file != file ]] >+ continue >+ for line in '${content[@]}' >+ [[ for != for ]] >+ continue >+ for line in '${content[@]}' >+ [[ eselect != eselect ]] >+ continue >+ for line in '${content[@]}' >+ [[ # != # ]] >+ continue >+ for line in '${content[@]}' >+ [[ This != This ]] >+ continue >+ for line in '${content[@]}' >+ [[ file != file ]] >+ continue >+ for line in '${content[@]}' >+ [[ has != has ]] >+ continue >+ for line in '${content[@]}' >+ [[ been != been ]] >+ continue >+ for line in '${content[@]}' >+ [[ automatically != automatically ]] >+ continue >+ for line in '${content[@]}' >+ [[ generated. != generated. ]] >+ continue >+ for line in '${content[@]}' >+ [[ LDPATH"/usr/lib/opengl/xorg-x11/lib" != LDPATH="/usr/lib/opengl/xorg-x11/lib" ]] >+ line=LDPATH >+ local LDPATH= >+ vars=(${vars[@]} ${line}) >+ source /etc/env.d/03opengl ># Configuration file for eselect ># This file has been automatically generated. >LDPATH="/usr/lib/opengl/xorg-x11/lib" >++ LDPATH=/usr/lib/opengl/xorg-x11/lib >+ store_config_header >+ echo '# Configuration file for eselect' >+ echo '# This file has been automatically generated.' >+ for var in '${vars[@]}' >+ [[ LDPATH == OPENGL_PROFILE ]] >+ echo 'LDPATH="/usr/lib/opengl/xorg-x11/lib"' >+ [[ 0 == 1 ]] >+ echo 'OPENGL_PROFILE="xorg-x11"' >+ do_action env update >zsh: killed bash -vx /usr/bin/eselect opengl set xorg-x11 >root>+ echo ' done' > done >+ return 0 > >root>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 219864
: 188562 |
188570