Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 424150 Details for
Bug 572274
=app-eselect/eselect-opengl-1.3.1 - should media-libs/mesa GL libraries be placed directly in main system library paths - potential conflict with proprietary AMD/Nvidia graphics drivers (?)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
crux example of GL* select
gl-select (text/plain), 5.62 KB, created by
Oleh
on 2016-01-29 12:25:24 UTC
(
hide
)
Description:
crux example of GL* select
Filename:
MIME Type:
Creator:
Oleh
Created:
2016-01-29 12:25:24 UTC
Size:
5.62 KB
patch
obsolete
>#!/bin/bash ># ># gl-select: select active gl/glx libraries/extensions ># ># Matt Housh, jaeger at morpheus dot net ># Jose V Beneyto, sepen at crux dot nu ># ># For changelog, see: ># http://crux.nu/gitweb/?p=ports/opt.git;a=history;f=gl-select/gl-select ># > >infoUsage() { > echo "Usage: $(basename $0) [ status | use [xorg|nvidia|ati] ]" > exit 0 >} > >infoMissing() { > echo "One or more of the non-xorg gl/glx backup files are missing." > echo "This means either you're not using a non-xorg gl/glx setup, in which" > echo "case nothing needs to be changed, OR your xorg backups are missing," > echo "which can be solved by reinstalling xorg-server and mesa3d packages." > echo > echo "Files:" > getMissBackups > exit 1 >} > >infoRevert() { > echo "You appear to already be using a non-xorg gl/glx setup. Check that by" > echo "using 'gl-select status', OR if the one selected isn't the correct one," > echo "revert to xorg and then select the correct new setup using:" > echo "'gl-select use xorg; gl-select use <new gl/glx>'." > echo > echo "Files:" > getExistBackups > exit 1 >} > >infoOldStuff() { > echo "You appear to be using a non-xorg gl/glx setup. You should revert your" > echo "selection to xorg and then select the correct new setup, but seems you" > echo "are using the old stuff setup due to gl-select 1.3, so you need to use" > echo "something like:" > echo "'gl-select use xorg --old-stuff; gl-select use <new gl/glx>'." > exit 1 >} > >checkInstalled() { > # checks either a single port or list of ports > local notInstalled=1 > for arg in $@; do > if [ ! -z "`pkginfo -i | awk '{ print $1 }' | grep -e ^$arg$`" ]; then > notInstalled=0 > fi > done > if [ $notInstalled -eq 1 ]; then > if [ $# -eq 1 ]; then > echo "$arg isn't installed!" > else > echo "None of the following ports are installed! (one is required)" > for i in $@; do echo " $i"; done > fi > exit 1 > fi >} > >getMissBackups() { > # get missing xorg backup'ed files > for b in $BACKUPS; do if [ ! -f $b ]; then echo $b; fi; done >} > >getExistBackups() { > # get existing xorg backup'ed files > for b in $BACKUPS; do if [ -f $b ]; then echo $b; fi; done >} > >doGLsymlinks() { > [ ! -L /usr/lib/libGL.so.1 ] && ln -sf libGL.so.1.2 /usr/lib/libGL.so.1 > [ ! -L /usr/lib/libGL.so ] && ln -sf libGL.so.1 /usr/lib/libGL.so > return 0 >} > >doStatus() { > # check which selection its being used > local file=$(file -h /usr/lib/libGL.so.1.2.0 | awk '{ if (/symbolic link/) print $5; else print $1; }' | sed 's|:||') > case $file in > *libGL.so.1.2.0) echo "* xorg gl/glx is selected" ;; > *libGL_so_1_2_nvidia) echo "* nvidia gl/glx is selected" ;; > *libGL_so_1_2_ati) echo "* ati gl/glx is selected" ;; > *) echo "unsupported: $file"; infoOldStuff ;; > esac >} > >doUse() { > # perform the selection for the following supported gl/glx setups > local selection=$1 > local options=$2 > [ -z "$selection" ] && infoUsage > case $selection in > "xorg") > [ "$options" == "--old-stuff" ] && oldStuff > # check for missing xorg backup'ed files > local mbackups="$(getMissBackups)" > [ ! -z "$mbackups" ] && infoMissing $mbackups > # switch to xorg stuff > ( > # libglx > rm -f /usr/lib/xorg/modules/extensions/libglx.so > mv /usr/lib/xorg/modules/extensions/libglx{_so,.so} > # libGL > rm -f usr/lib/libGL.so.1.2.0 > mv /usr/lib/libGL{_so_1_2,.so.1.2.0} > doGLsymlinks > ) && echo "* xorg gl/glx selected" > ;; > "nvidia") > # is an nvidia port installed? > checkInstalled nvidia nvidia-sl nvidia-legacy-96xx nvidia-legacy-71xx > # check for the existence of xorg backups > local ebackups="$(getExistBackups)" > [ ! -z "$ebackups" ] && infoRevert $ebackups > # switch to nvidia stuff > # conflicting files which ati provides: > # libglx_so_nvidia, libGL_so_1_2_nvidia > ( > # libglx > mv /usr/lib/xorg/modules/extensions/libglx{.so,_so} > ln -s libglx_so_nvidia /usr/lib/xorg/modules/extensions/libglx.so > # libGL > mv /usr/lib/libGL{.so.1.2.0,_so_1_2} > ln -sf libGL_so_1_2_nvidia /usr/lib/libGL.so.1.2.0 > doGLsymlinks > ) && echo "* nvidia gl/glx selected" > ;; > "ati") > # is the ati port installed? > checkInstalled ati > # check for the existence of xorg backups > local ebackups="$(getExistBackups)" > [ ! -z "$ebackups" ] && infoRevert $ebackups > # switch to ati stuff > # conflicting files which ati provides: > # libglx_so_ati, libGL_so_1_2_ati > ( > # libglx > mv /usr/lib/xorg/modules/extensions/libglx{.so,_so} > ln -s libglx_so_ati /usr/lib/xorg/modules/extensions/libglx.so > # libGL > mv /usr/lib/libGL{.so.1.2.0,_so_1_2} > ln -sf libGL_so_1_2_ati /usr/lib/libGL.so.1.2.0 > doGLsymlinks > ) && echo "* ati gl/glx selected" > ;; > *) > infoUsage > ;; > esac > /sbin/ldconfig > /dev/null 2>&1 >} > >oldStuff() { > for f in /usr/lib/xorg/modules/extensions/libglx_so \ > /usr/lib/libGL_so_1_2; do > [ ! -e $f ] && infoMissing $f > done > # move the old xorg backups back into place > ( > # libglx > rm -f /usr/lib/xorg/modules/extensions/libglx.so > mv /usr/lib/xorg/modules/extensions/libglx{_so,.so} > # libGL > mv /usr/lib/libGL{_so_1_2,.so.1.2.0} > rm -f /usr/lib/libGL.so /usr/lib/libGL.so.1 > doGLsymlinks || echo "done" > ) && echo "* xorg gl/glx selected" > exit 0 >} > ># backup files which are also provided by nvidia and ati ports >BACKUPS=" >/usr/lib/xorg/modules/extensions/libglx_so >/usr/lib/libGL_so_1_2 >" > ># check for xorg ports; if they are not installed, why is this script even run? >checkInstalled xorg-server mesa3d > >case $1 in > status) doStatus ;; > use) shift 1; doUse $@ ;; > *) infoUsage ;; >esac > ># End of file
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 572274
:
423738
|
423740
| 424150 |
425290
|
430844
|
433000