diff --git a/smgl/smgl-gl_select/INSTALL b/smgl/smgl-gl_select/INSTALL
index 437eaa9..2c5409d 100755
--- a/smgl/smgl-gl_select/INSTALL
+++ b/smgl/smgl-gl_select/INSTALL
@@ -1,2 +1,6 @@
cp -v $SPELL_DIRECTORY/smgl-gl_select /usr/sbin &&
-chmod +x /usr/sbin/smgl-gl_select
+chmod +x $INSTALL_ROOT/usr/sbin/smgl-gl_select &&
+mkdir -vp $INSTALL_ROOT/usr/share/gl_select/ &&
+cp -v $SPELL_DIRECTORY/*-filelist $INSTALL_ROOT/usr/share/gl_select/ &&
+install_config_file $SPELL_DIRECTORY/gl_select \
+ $INSTALL_ROOT/etc/sysconfig/gl_select
diff --git a/smgl/smgl-gl_select/ati-filelist
b/smgl/smgl-gl_select/ati-filelist
new file mode 100644
index 0000000..007df47
--- /dev/null
+++ b/smgl/smgl-gl_select/ati-filelist
@@ -0,0 +1,11 @@
+/usr/lib/ati/libGL.so
+/usr/lib/ati/libGL.so.1.2
+/usr/lib/xorg/modules/extensions/ati/libdri.so
+/usr/lib/xorg/modules/extensions/ati/libglx.so
+/usr/lib/xorg/modules/mesa/libwfb.la
+/usr/lib/xorg/modules/mesa/libwfb.so
+/usr/include/GL/mesa/gl.h
+/usr/include/GL/mesa/glext.h
+/usr/include/GL/mesa/glx.h
+/usr/include/GL/mesa/glxext.h
+
diff --git a/smgl/smgl-gl_select/gl_select b/smgl/smgl-gl_select/gl_select
new file mode 100644
index 0000000..3e75305
--- /dev/null
+++ b/smgl/smgl-gl_select/gl_select
@@ -0,0 +1,2 @@
+# you can put here any of the available GL libraries
+GL_LIB=mesa
diff --git a/smgl/smgl-gl_select/mesa-filelist
b/smgl/smgl-gl_select/mesa-filelist
new file mode 100644
index 0000000..3e0a4dc
--- /dev/null
+++ b/smgl/smgl-gl_select/mesa-filelist
@@ -0,0 +1,14 @@
+/usr/include/GL/mesa/gl.h
+/usr/include/GL/mesa/glext.h
+/usr/include/GL/mesa/glx.h
+/usr/include/GL/mesa/glxext.h
+/usr/lib/mesa/libGL.so
+/usr/lib/mesa/libGL.so.1
+/usr/lib/mesa/libGL.so.1.2
+/usr/lib/xorg/modules/extensions/mesa/libdri.la
+/usr/lib/xorg/modules/extensions/mesa/libdri.so
+/usr/lib/xorg/modules/extensions/mesa/libglx.la
+/usr/lib/xorg/modules/extensions/mesa/libglx.so
+/usr/lib/xorg/modules/mesa/libwfb.la
+/usr/lib/xorg/modules/mesa/libwfb.so
+
diff --git a/smgl/smgl-gl_select/nvidia-filelist
b/smgl/smgl-gl_select/nvidia-filelist
new file mode 100644
index 0000000..d65dde6
--- /dev/null
+++ b/smgl/smgl-gl_select/nvidia-filelist
@@ -0,0 +1,17 @@
+/usr/include/GL/nvidia/gl.h
+/usr/include/GL/nvidia/glext.h
+/usr/include/GL/nvidia/glx.h
+/usr/include/GL/nvidia/glxext.h
+/usr/lib/nvidia/libGL.so
+/usr/lib/nvidia/libGL.so.1
+/usr/lib/nvidia/libGL.so.177.78
+/usr/lib/xorg/modules/extensions/nvidia/libGLcore.so.1
+/usr/lib/xorg/modules/extensions/nvidia/libGLcore.so.177.78
+/usr/lib/xorg/modules/extensions/mesa/libdri.la
+/usr/lib/xorg/modules/extensions/mesa/libdri.so
+/usr/lib/xorg/modules/extensions/nvidia/libglx.so
+/usr/lib/xorg/modules/extensions/nvidia/libglx.so.177.78
+/usr/lib/xorg/modules/nvidia/libnvidia-wfb.so
+/usr/lib/xorg/modules/nvidia/libnvidia-wfb.so.177.78
+/usr/lib/xorg/modules/nvidia/libwfb.so
+
diff --git a/smgl/smgl-gl_select/smgl-gl_select
b/smgl/smgl-gl_select/smgl-gl_select
index cf7557c..9a81c66 100755
--- a/smgl/smgl-gl_select/smgl-gl_select
+++ b/smgl/smgl-gl_select/smgl-gl_select
@@ -1,6 +1,16 @@
#!/bin/bash
-GL_SELECT_VERSION="0.5"
+#
+# Versioning
+# Major.Minor.Point
+# Major - complete rewrites
+# Minor - new GL provider added/removed
+# Point - bugfixes/filelist changes and so on
+#
+GL_SELECT_VERSION="1.0.0"
GL_LIBS="$(ls ${TRACK_ROOT}/usr/lib/*/libGL.so | awk -F"/" '{print $4}' 2>
/dev/null )"
+GL_FILELIST_DIR="${TRACK_ROOT}/usr/share/gl_select/"
+. /etc/sysconfig/gl_select
+
. /var/lib/sorcery/modules/libmedia
LOCAL_MEDIA_CONFIG=/etc/sorcery/local/media source /etc/sorcery/media
function message() {
@@ -9,54 +19,90 @@ function message() {
function gl_list() {
message "Available GL Libraries on the system"
- ls ${TRACK_ROOT}/usr/lib/*/libGL.so | awk -F"/" '{print $4}' 2> /dev/null
+ /bin/ls -1 --color=none ${TRACK_ROOT}/usr/lib/*/libGL.so \
+ | awk -F"/" '{print $4}' 2> /dev/null
exit 0
}
function gl_pick() {
- if ! grep -q "$1" <<< "$GL_LIBS"
+ local i ii
+ local gl_lib=$1
+ if ! grep -q "$gl_lib" <<< "$GL_LIBS"
then
- message "Error $1 is not a valid GL Library"
+ message "Error $gl_lib is not a valid GL Library"
exit 1
fi
- message "Selecting $1 as the default system GL library"
+ message "Selecting $gl_lib as the default system GL library"
if [[ -L ${INSTALL_ROOT}/usr/lib/libGL.so ]] ||
[[ ! -e ${INSTALL_ROOT}/usr/lib/libGL.so ]]
then
- ln -vfs ${TRACK_ROOT}/usr/lib/$1/libGL.so* ${INSTALL_ROOT}/usr/lib/
+ message "Cleaning all previous GL providers..."
+ for i in $(grep "/ati" $GL_FILELIST_DIR/ati-filelist)
+ do
+ ii=${i/\/ati}
+ rm -f $ii
+ echo -n "."
+ done
+ echo "."
+ unset i ii
+ for i in $(grep "/mesa" $GL_FILELIST_DIR/mesa-filelist)
+ do
+ ii=${i/\/mesa}
+ rm -f $ii
+ echo -n "."
+ done
+ echo "."
+ unset i ii
+ for i in $(grep "/nvidia" $GL_FILELIST_DIR/nvidia-filelist)
+ do
+ ii=${i/\/nvidia}
+ rm -f $ii
+ echo -n "."
+ done
+ unset i ii
+ echo ""
+ message "Done."
case "$1" in
- ati) if gaze installed xorg-server ; then
- ln -vfs ${TRACK_ROOT}/usr/include/GL/mesa/*.h
\
- ${INSTALL_ROOT}/usr/include/GL/
&&
- ln -vfs ${TRACK_ROOT}/usr/lib/xorg/modules/extensions/mesa/*
\
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/
- else
- ln -vfs ${TRACK_ROOT}/usr/X11R6/include/GL/monolithic/*.h
\
- ${INSTALL_ROOT}/usr/X11R6/include/GL/
&&
- ln -vfs
${TRACK_ROOT}/usr/X11R6/lib/modules/extensions/monolithic/* \
- ${INSTALL_ROOT}/usr/X11R6/lib/modules/extensions/
- fi
;;
- mesa) ln -vfs ${TRACK_ROOT}/usr/include/GL/mesa/*.h
\
- ${INSTALL_ROOT}/usr/include/GL/
&&
- ln -vfs ${TRACK_ROOT}/usr/lib/xorg/modules/extensions/mesa/*
\
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/
;;
- nvidia) if gaze installed xorg-server ; then
- ln -vfs ${TRACK_ROOT}/usr/include/GL/nvidia/*.h
\
- ${INSTALL_ROOT}/usr/include/GL/
&&
- ln -vfs ${TRACK_ROOT}/usr/lib/xorg/modules/extensions/nvidia/*
\
- ${INSTALL_ROOT}/usr/lib/xorg/modules/extensions/
- else
- ln -vfs ${TRACK_ROOT}/usr/X11R6/include/GL/nvidia/*.h
\
- ${INSTALL_ROOT}/usr/X11R6/include/GL/
&&
- ln -vfs ${TRACK_ROOT}/usr/X11R6/lib/modules/extensions/nvidia/*
\
- ${INSTALL_ROOT}/usr/X11R6/lib/modules/extensions/
- fi
;;
-
-monolithic) ln -vfs ${TRACK_ROOT}/usr/X11R6/include/GL/monolithic/*.h
\
- ${INSTALL_ROOT}/usr/X11R6/include/GL/
&&
- ln -vfs
${TRACK_ROOT}/usr/X11R6/lib/modules/extensions/monolithic/* \
- ${INSTALL_ROOT}/usr/X11R6/lib/modules/extensions/
;;
- *) message "Unknown secondary files so I only linked the libGL.so"
;;
+ ati)
+ for i in $(grep "/mesa" $GL_FILELIST_DIR/ati-filelist)
+ do
+ ii=${i/\/mesa}
+ ln -svf ${INSTALL_ROOT}${i} ${INSTALL_ROOT}${ii}
+ echo -n "."
+ done
+ for i in $(grep "/ati" $GL_FILELIST_DIR/ati-filelist)
+ do
+ ii=${i/\/ati}
+ ln -svf ${INSTALL_ROOT}${i} ${INSTALL_ROOT}${ii}
+ echo -n "."
+ done
+ ;;
+ mesa)
+ for i in $(cat $GL_FILELIST_DIR/mesa-filelist)
+ do
+ ii=${i/\/mesa}
+ ln -svf ${INSTALL_ROOT}${i} ${INSTALL_ROOT}${ii}
+ echo -n "."
+ done
+ ;;
+ nvidia)
+ for i in $(grep "/mesa" $GL_FILELIST_DIR/nvidia-filelist)
+ do
+ ii=${i/\/mesa}
+ ln -svf ${INSTALL_ROOT}${i} ${INSTALL_ROOT}${ii}
+ echo -n "."
+ done
+ for i in $(grep "/nvidia" $GL_FILELIST_DIR/nvidia-filelist)
+ do
+ ii=${i/\/nvidia}
+ ln -svf ${INSTALL_ROOT}${i} ${INSTALL_ROOT}${ii}
+ echo -n "."
+ done
+ ;;
+ *) message "Unknown secondary files so I only linked the libGL.so"
&&
+ rm -fv ${TRACK_ROOT}/usr/lib/libGL.so*
&&
+ ln -vfs ${TRACK_ROOT}/usr/lib/$gl_lib/libGL.so*
\
+ ${INSTALL_ROOT}/usr/lib/
;;
esac
exit 0
else
@@ -68,7 +114,7 @@ monolithic) ln -vfs
${TRACK_ROOT}/usr/X11R6/include/GL/monolithic/*.h \
function gl_help() {
message "gl_select -$GL_SELECT_VERSION
-Copyright (C) 2006 Source Mage
+Copyright (C) 2006-2009 Source Mage
This is free software. You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
@@ -81,9 +127,13 @@ function gl_usage() {
message "USAGE: gl_select OPTIONS
OPTIONS:
+ --default, -d Use the default GL Library defined in config.
--list, -l List available GL Libraries on the system.
- --select, -s <PARAM> Select a GL Library that's available.
- --help, -h Print the help message."
+ --select, -s <PARAM> Select a GL Library that's available.
+ --help, -h Print the help message.
+
+FILES:
+ /etc/sysconfig/gl_select"
exit 0
}
@@ -93,6 +143,7 @@ while [[ -n "$1" ]]; do
--list|-l)gl_list ;;
--help|-h)gl_help ;;
--select|-s)gl_pick $2 ; shift 2 ;;
+ --default|-d)export GL_LIB ; shift ; gl_pick $GL_LIB ;;
*)gl_usage ;;
esac
else
diff --git a/xorg-xserver/xorg-server/DETAILS
b/xorg-xserver/xorg-server/DETAILS
index 9fd745f..8b01746 100755
--- a/xorg-xserver/xorg-server/DETAILS
+++ b/xorg-xserver/xorg-server/DETAILS
@@ -14,7 +14,7 @@ SOURCE2_DIRECTORY="$BUILD_DIRECTORY/Mesa-$VERSION2"
ENTERED=20051125
LICENSE[0]=XCL
SECURITY_PATCH=4
- PATCHLEVEL=1
+ PATCHLEVEL=2
SHORT="X servers (including Xorg, Xprt, Xvfb, Xnest & Xdmx)"
cat << EOF
X servers (including Xorg, Xprt, Xvfb, Xnest & Xdmx), the core of the X
diff --git a/xorg-xserver/xorg-server/HISTORY
b/xorg-xserver/xorg-server/HISTORY
index 2c59d19..e20db06 100644
--- a/xorg-xserver/xorg-server/HISTORY
+++ b/xorg-xserver/xorg-server/HISTORY
@@ -1,3 +1,9 @@
+2009-02-08 Andraž "ruskie" Levstik <ruskie AT mages.ath.cx>
+ * PRE_BUILD: added smgl-gl_select patch
+ * DEPENDS: added smgl-gl_select
+ * gl_select.patch: patch to modify some installation paths
+ * DETAILS: patchlevel++
+
2009-01-26 Andraž "ruskie" Levstik <ruskie AT mages.ath.cx>
* DEPENDS: no more XPrint
diff --git a/xorg-xserver/xorg-server/PRE_BUILD
b/xorg-xserver/xorg-server/PRE_BUILD
index 016f982..02f4164 100755
--- a/xorg-xserver/xorg-server/PRE_BUILD
+++ b/xorg-xserver/xorg-server/PRE_BUILD
@@ -1,8 +1,7 @@
default_pre_build &&
cd "$SOURCE_DIRECTORY" &&
unpack_file 2 &&
-
-#patch -p0 < "$SPELL_DIRECTORY/randr.patch"
+patch -p1 < $SPELL_DIRECTORY/gl_select.patch &&
if [[ "$XORG_SERVER_MESA_PATH_PATCH" == "t" ]] ; then
patch -p0 < "$SPELL_DIRECTORY/xorg-server-mesa.patch"
fi &&
diff --git a/xorg-xserver/xorg-server/gl_select.patch
b/xorg-xserver/xorg-server/gl_select.patch
new file mode 100644
index 0000000..931ba5f
--- /dev/null
+++ b/xorg-xserver/xorg-server/gl_select.patch
@@ -0,0 +1,69 @@
+diff -Nuar xorg-server-1.5.3.orig.orig/hw/xfree86/dixmods/Makefile.in
xorg-server-1.5.3.orig/hw/xfree86/dixmods/Makefile.in
+--- xorg-server-1.5.3.orig.orig/hw/xfree86/dixmods/Makefile.in 2009-02-08
22:58:50.000000000 +0000
++++ xorg-server-1.5.3.orig/hw/xfree86/dixmods/Makefile.in 2009-02-08
23:49:07.000000000 +0000
+@@ -512,14 +512,12 @@
+ module_LTLIBRARIES = $(AFBMOD) \
+ $(CFBMOD) \
+ libfb.la \
+- libwfb.la \
+ $(MFBMOD) \
+ libshadow.la
+
+ extsmoduledir = $(moduledir)/extensions
+ extsmodule_LTLIBRARIES = $(RECORDMOD) \
+ $(DBEMOD) \
+- $(GLXMODS) \
+ $(XTRAPMOD)
+
+ fontsmoduledir = $(moduledir)/fonts
+@@ -612,6 +610,14 @@
+ install-extsmoduleLTLIBRARIES: $(extsmodule_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(extsmoduledir)" || $(MKDIR_P) "$(DESTDIR)$(extsmoduledir)"
++ $(MKDIR_P) "$(DESTDIR)$(extsmoduledir)/mesa"
++ @lst='$(GLXMODS)'; for r in $$lst; do \
++ if test -f $$r; then \
++ h=$(am__strip_dir) \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(extsmoduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$r'
'$(DESTDIR)$(extsmoduledir)/mesa/$$h'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(extsmoduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$r"
"$(DESTDIR)$(extsmoduledir)/mesa/$$h"; \
++ else :; fi; \
++ done
+ @list='$(extsmodule_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+@@ -666,6 +672,14 @@
+ install-moduleLTLIBRARIES: $(module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(moduledir)" || $(MKDIR_P) "$(DESTDIR)$(moduledir)"
++ $(MKDIR_P) "$(DESTDIR)$(moduledir)/mesa"
++ @lst='libwfb.la'; for r in $$lst; do \
++ if test -f $$r; then \
++ h=$(am__strip_dir) \
++ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$r'
'$(DESTDIR)$(moduledir)/mesa/$$h'"; \
++ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$r"
"$(DESTDIR)$(moduledir)/mesa/$$h"; \
++ else :; fi; \
++ done
+ @list='$(module_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+@@ -990,7 +1004,7 @@
+ done
+ check-am: all-am
+ check: check-recursive
+-all-am: Makefile $(LTLIBRARIES)
++all-am: Makefile $(LTLIBRARIES) libwfb.la $(GLXMODS)
+ installdirs: installdirs-recursive
+ installdirs-am:
+ for dir in "$(DESTDIR)$(extsmoduledir)" "$(DESTDIR)$(fontsmoduledir)"
"$(DESTDIR)$(moduledir)"; do \
+diff -Nuar xorg-server-1.5.3.orig.orig/hw/xfree86/dri/Makefile.in
xorg-server-1.5.3.orig/hw/xfree86/dri/Makefile.in
+--- xorg-server-1.5.3.orig.orig/hw/xfree86/dri/Makefile.in 2009-02-08
22:58:50.000000000 +0000
++++ xorg-server-1.5.3.orig/hw/xfree86/dri/Makefile.in 2009-02-08
22:59:46.000000000 +0000
+@@ -408,7 +408,7 @@
+ @GL_CFLAGS@
+
+ libdri_la_LDFLAGS = -module -avoid-version @LIBDRM_LIBS@
+-libdri_ladir = $(moduledir)/extensions
++libdri_ladir = $(moduledir)/extensions/mesa
+ libdri_la_SOURCES = \
+ dri.c \
+ dri.h \
[SM-Commit] GIT changes to master grimoire by Andraž Levstik (0ed15c22f9a24508b2e75b25f10e4fdaad33c8d7),
Andraž Levstik, 02/07/2009