summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <eradicator@gentoo.org>2005-02-07 07:43:44 +0000
committerJeremy Huddleston <eradicator@gentoo.org>2005-02-07 07:43:44 +0000
commita96e7ee5252fcb55f49ebe455d2b1f5e860464dd (patch)
tree04c2894f151ef73e99cbe7e91bf4785d210e42c3 /x11-base/opengl-update
parentupdating for startup notification for Openbox (diff)
downloadgentoo-2-a96e7ee5252fcb55f49ebe455d2b1f5e860464dd.tar.gz
gentoo-2-a96e7ee5252fcb55f49ebe455d2b1f5e860464dd.tar.bz2
gentoo-2-a96e7ee5252fcb55f49ebe455d2b1f5e860464dd.zip
Fixed bug which made lib32/tls directory on systems that don't use lib32.
(Portage version: 2.0.51-r15)
Diffstat (limited to 'x11-base/opengl-update')
-rw-r--r--x11-base/opengl-update/ChangeLog8
-rw-r--r--x11-base/opengl-update/Manifest25
-rw-r--r--x11-base/opengl-update/files/digest-opengl-update-2.1_pre51
-rw-r--r--x11-base/opengl-update/files/opengl-update-2.1_pre5300
-rw-r--r--x11-base/opengl-update/metadata.xml3
-rw-r--r--x11-base/opengl-update/opengl-update-2.1_pre5.ebuild69
6 files changed, 393 insertions, 13 deletions
diff --git a/x11-base/opengl-update/ChangeLog b/x11-base/opengl-update/ChangeLog
index bf1944c9af66..fc5d53005289 100644
--- a/x11-base/opengl-update/ChangeLog
+++ b/x11-base/opengl-update/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for x11-base/opengl-update
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-base/opengl-update/ChangeLog,v 1.65 2005/02/06 16:31:27 lu_zero Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-base/opengl-update/ChangeLog,v 1.66 2005/02/07 07:43:44 eradicator Exp $
+
+*opengl-update-2.1_pre5 (06 Feb 2005)
+
+ 06 Feb 2005; Jeremy Huddleston <eradicator@gentoo.org>
+ +files/opengl-update-2.1_pre5, +opengl-update-2.1_pre5.ebuild:
+ Fixed bug which made lib32/tls directory on systems that don't use lib32.
06 Feb 2005; Luca Barbato <lu_zero@gentoo.org>
opengl-update-2.0_pre5.ebuild:
diff --git a/x11-base/opengl-update/Manifest b/x11-base/opengl-update/Manifest
index ed34e1973f1a..1844e26e7b4f 100644
--- a/x11-base/opengl-update/Manifest
+++ b/x11-base/opengl-update/Manifest
@@ -1,20 +1,23 @@
+MD5 d243ac57d9f2691c22b0979b81c08525 ChangeLog 11797
MD5 06e66398889b0eaf43fd1a634521bdb0 metadata.xml 318
MD5 5b48e832f6c2794525ab473968ad7071 opengl-update-1.5.ebuild 525
-MD5 c4bd3ca5f011edc8adfaff3f32c0babd opengl-update-2.0_pre5.ebuild 1741
-MD5 1a24f101a73042eef1bc8ded313b9984 opengl-update-2.0_pre4-r1.ebuild 1740
-MD5 d243ac57d9f2691c22b0979b81c08525 ChangeLog 11797
+MD5 4e8eebd835dbf4f24182d7cce7af8ab7 opengl-update-1.7.2.ebuild 541
MD5 020171f71e450cf568dac04eabd695f4 opengl-update-1.8.2.ebuild 1594
+MD5 1a24f101a73042eef1bc8ded313b9984 opengl-update-2.0_pre4-r1.ebuild 1740
MD5 763f994c2b49a6c6ba2c418ab334617c opengl-update-2.1_pre4.ebuild 2184
-MD5 4e8eebd835dbf4f24182d7cce7af8ab7 opengl-update-1.7.2.ebuild 541
+MD5 c4bd3ca5f011edc8adfaff3f32c0babd opengl-update-2.0_pre5.ebuild 1741
+MD5 763f994c2b49a6c6ba2c418ab334617c opengl-update-2.1_pre5.ebuild 2184
+MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-opengl-update-1.5 0
MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-opengl-update-1.7.2 0
-MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.0_pre5 64
-MD5 17ebb42dcebb9fcf0d717b135586fca3 files/opengl-update-1.8.2 8303
-MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.1_pre4 64
-MD5 bd56a074f4d53f9ff26e828e0a34cbf3 files/opengl-update-1.7.2 4975
-MD5 976b6bf00cfdfeaa6cdadbfd49cd2e95 files/opengl-update-2.0_pre4 9755
-MD5 b31a661444c7d54a6782b9e075f6744a files/opengl-update-2.1_pre4 7624
MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-1.8.2 64
MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.0_pre4-r1 64
MD5 0ca46fbf32086f062609ee83fc042c87 files/opengl-update-1.5 3774
+MD5 bd56a074f4d53f9ff26e828e0a34cbf3 files/opengl-update-1.7.2 4975
+MD5 17ebb42dcebb9fcf0d717b135586fca3 files/opengl-update-1.8.2 8303
+MD5 976b6bf00cfdfeaa6cdadbfd49cd2e95 files/opengl-update-2.0_pre4 9755
+MD5 b31a661444c7d54a6782b9e075f6744a files/opengl-update-2.1_pre4 7624
+MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.1_pre4 64
+MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.0_pre5 64
MD5 f21996de10b91b58cced8fbcc6c44792 files/opengl-update-2.0_pre5 9738
-MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-opengl-update-1.5 0
+MD5 fd403c3de7ddc9cdce1df58505713005 files/opengl-update-2.1_pre5 7764
+MD5 745fdf145b2e08f0c996a3ca40b1ca16 files/digest-opengl-update-2.1_pre5 64
diff --git a/x11-base/opengl-update/files/digest-opengl-update-2.1_pre5 b/x11-base/opengl-update/files/digest-opengl-update-2.1_pre5
new file mode 100644
index 000000000000..23c2e8979086
--- /dev/null
+++ b/x11-base/opengl-update/files/digest-opengl-update-2.1_pre5
@@ -0,0 +1 @@
+MD5 e16a3144742d1a5409fe18477a88f8b6 glext.h-20040830.bz2 30982
diff --git a/x11-base/opengl-update/files/opengl-update-2.1_pre5 b/x11-base/opengl-update/files/opengl-update-2.1_pre5
new file mode 100644
index 000000000000..37059ae0f174
--- /dev/null
+++ b/x11-base/opengl-update/files/opengl-update-2.1_pre5
@@ -0,0 +1,300 @@
+#!/bin/bash
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/opengl-update/files/opengl-update-2.1_pre5,v 1.1 2005/02/07 07:43:44 eradicator Exp $
+# Author: Martin Schlemmer <azarah@gentoo.org>
+# Further modifications by Donnie Berkholz <spyderous@gentoo.org>
+# Further modifications based off submissions to bug #54984 <cyfred@gentoo.org>
+# Further modifications by Jeremy Huddleston <eradicator@gentoo.org>
+
+. /etc/init.d/functions.sh
+
+need_version() {
+ local X11 X11_VER X11_MAJOR_VER X11_MINOR_VER X11_MICRO_VER ERROR_MSG
+ ERROR_MSG="This version requires >=x11-base/xorg-x11-6.8.0-r4"
+ X11="$(portageq match / virtual/x11)"
+ # Got the egrep from ferringb, who got it from portage code
+ X11_VER="$(echo ${X11} | egrep -o '(cvs\.)?([[:digit:]]+)((\.[[:digit:]]+)*)([a-z]?)((_(pre|p|beta|alpha|rc)[[:digit:]]*)*)(-r([[:digit:]]+))?$')"
+ X11_MAJOR_VER="${X11_VER%%.*}"
+ # Hack around a little to get the minor version
+ X11_MINOR_VER="${X11_VER#*.}"
+ X11_MINOR_VER="${X11_MINOR_VER%%.*}"
+ X11_REVISION_VER="${X11_VER##*-r}"
+
+ # If version <6.*, die
+ if [ ${X11_MAJOR_VER} -lt 6 ]
+ then
+ einfo "Detected X ${X11_MAJOR_VER}.${X11_MINOR_VER} series, revision ${X11_REVISION_VER}"
+ eerror "${ERROR_MSG}"
+ exit 1
+ # If version =6.* and <6.8.*, die
+ elif [ ${X11_MAJOR_VER} -eq 6 -a ${X11_MINOR_VER} -lt 8 ]
+ then
+ einfo "Detected X ${X11_MAJOR_VER}.${X11_MINOR_VER} series, revision ${X11_REVISION_VER}"
+ eerror "${ERROR_MSG}"
+ exit 1
+ # If version =6.8.0 and <r4, die
+ elif [ "${X11_VER}" = "6.8.0" ]
+ then
+ if [ ! ${X11_REVISION_VER} -lt 4 ]
+ then
+ einfo "Detected X ${X11_MAJOR_VER}.${X11_MINOR_VER} series, revision ${X11_REVISION_VER}"
+ eerror "${ERROR_MSG}"
+ exit 1
+ fi
+ fi
+}
+
+count_implementations() {
+ local DIR
+ COUNT="0"
+ for DIR in $(ls /usr/lib/opengl)
+ do
+ if [ "${DIR}" != "global" ]
+ then
+ DIRS="${DIRS} ${DIR}"
+ COUNT="$((COUNT + 1))"
+ fi
+ done
+}
+
+usage() {
+# In addition to the below function, there are two extra uses for this.
+#
+# They aren't in the printed help message because they're intended
+# for developer use.
+# 1) --use-old $NEW_IMPLEM will switch to the new implementation only if
+# no old setup existed (i.e., X has never been installed)
+# 2) --get-implementation will return the implementation
+
+count_implementations
+
+# Get grammar right in message
+local IS_ARE IMPLEM_PLURAL
+if [ ${COUNT} -eq 1 ]
+then
+ IS_ARE="is"
+ IMPLEM_PLURAL=""
+else
+ IS_ARE="are"
+ IMPLEM_PLURAL="s"
+fi
+
+cat << FOO
+usage: ${0##*/} <GL implementation>
+
+note:
+ This utility switches between OpenGL implementations. There ${IS_ARE}
+ ${COUNT} available implementation${IMPLEM_PLURAL}: ${DIRS}.
+
+examples:
+ ${0##*/} xorg-x11
+ This will setup things to use libGL.so from X.org.
+
+ ${0##*/} nvidia
+ This will setup things to use libGL.so from the nVidia drivers.
+
+FOO
+ exit 1
+}
+
+need_version
+
+if [ "$#" -ne 1 -a "$#" -ne 2 ] || \
+ [ "$#" -eq 2 -a "$1" != "--use-old" ]
+then
+ usage
+fi
+
+GL_IMPLEM=""
+
+# Discover GL implementation if it exists
+get_implem() {
+ if [ -f /etc/env.d/03opengl ]
+ then
+ source /etc/env.d/03opengl
+ if [ -n "${LDPATH}" ]
+ then
+ GL_IMPLEM="${LDPATH%%:*}"
+ GL_IMPLEM="${GL_IMPLEM##*opengl/}"
+ GL_IMPLEM="${GL_IMPLEM%/lib*}"
+ unset LDPATH
+ fi
+ fi
+}
+
+# Return current GL implementation
+if [ "$1" = "--get-implementation" ]
+then
+ get_implem
+
+ if [ -n "${GL_IMPLEM}" ]
+ then
+ echo "${GL_IMPLEM}"
+ fi
+
+ if [ -z "${GL_IMPLEM}" ]
+ then
+ exit 2
+ fi
+
+ exit 0
+fi
+
+if [ $(id -u) -ne 0 ]
+then
+ eerror "${0}: must be root."
+ exit 1
+fi
+
+# Only use specified implementation if it is not already selected.
+if [ "$1" = "--use-old" ]
+then
+ shift
+
+ get_implem
+
+ if [ -z "${GL_IMPLEM}" ]
+ then
+ GL_IMPLEM="$1"
+ fi
+else
+ GL_IMPLEM="$1"
+fi
+
+if [ ! -d /usr/lib/opengl/${GL_IMPLEM} ]
+then
+ usage
+fi
+
+ebegin "Switching to ${GL_IMPLEM} OpenGL interface"
+ rm -f /etc/env.d/03opengl &> /dev/null
+
+ LIBDIRS="lib lib32 lib64"
+ for LIBDIR in ${LIBDIRS}; do
+ # Special case handling of lib32 because it can be a symlink to
+ # emul libs
+ if [ "${LIBDIR}" = "lib32" ]; then
+ [ -d "/usr/${LIBDIR}" ] || continue
+ else
+ [ -d "/usr/${LIBDIR}" -a ! -h "/usr/${LIBDIR}" ] || continue
+ fi
+
+ # System wide tls stuff
+ [ -h "/usr/${LIBDIR}/tls" ] && rm -f /usr/${LIBDIR}/tls
+ [ -d "/usr/${LIBDIR}/tls" ] || mkdir -p /usr/${LIBDIR}/tls
+
+ # Fallback on xorg-x11 if we don't have this implementation for this LIBDIR.
+ if [ ! -d /usr/${LIBDIR}/opengl/"${GL_IMPLEM}" ]; then
+ GL_LOCAL="xorg-x11"
+ else
+ GL_LOCAL="${GL_IMPLEM}"
+ fi
+
+ # Provide the right libnvidia-tls depending on ntpl or not
+ if [ "${GL_LOCAL}" = "nvidia" ]; then
+ if [ -e "/usr/${LIBDIR}/opengl/${GL_LOCAL}/lib/tls" ]; then
+ rm -f /usr/${LIBDIR}/opengl/${GL_LOCAL}/lib/tls
+ fi
+
+ if getconf GNU_LIBPTHREAD_VERSION | grep -i nptl; then
+ ln -sf /usr/${LIBDIR}/opengl/${GL_LOCAL}/tls /usr/${LIBDIR}/opengl/${GL_IMPLEM}/lib/tls
+ # This shouldn't be neccessary...
+ #ldpath="${ldpath:+${ldpath}:}/usr/${LIBDIR}/opengl/${GL_LOCAL}/lib/tls"
+ fi
+ fi
+
+ pushd /usr/${LIBDIR}
+ # First remove old symlinks
+ for file in libGL.so* libGLcore.so* libnvidia-tls.so* tls/libnvidia-tls.so*; do
+ [ -h ${file} ] && rm -f ${file}
+ done
+
+ # Note that we don't do .so*, just .so on purpose. The
+ # loader knows to look in the profile dir, and the
+ # linked just needs the .so
+ for file in opengl/${GL_LOCAL}/lib/*.{so,a,la}; do
+ [ -f "${file}" ] || continue
+ rm -f $(basename ${file})
+
+ # Fix libtool archives (#48297)
+ if [ "${file%.la}" != "${file}" ]; then
+ sed "s:/usr/[^/]*/opengl/[^/]*/lib:/usr/${LIBDIR}:g" ${file} > $(basename ${file})
+ else
+ ln -s ${file}
+ fi
+ done
+ popd
+
+ if [ -e "/usr/${LIBDIR}/opengl/${GL_LOCAL}/lib/tls" ]; then
+ pushd /usr/${LIBDIR}/tls
+ for file in ../opengl/${GL_LOCAL}/lib/tls/*.{so,a,la}; do
+ [ -f "${file}" ] || continue
+ rm -f $(basename ${file})
+
+ # Fix libtool archives (#48297)
+ if [ "${file%.la}" != "${file}" ]; then
+ sed "s:/usr/[^/]*/opengl/[^/]*/lib:/usr/${LIBDIR}:g" ${file} > $(basename ${file})
+ else
+ ln -s ${file}
+ fi
+ done
+ popd
+ fi
+
+ if [ -e "/usr/${LIBDIR}/opengl/${GL_LOCAL}/extensions" ]; then
+ mkdir -p /usr/${LIBDIR}/modules/extensions
+ pushd /usr/${LIBDIR}/modules/extensions
+ # First remove old symlinks
+ for file in libglx.so libglx.a; do
+ [ -h ${file} ] && rm -f ${file}
+ done
+
+ for file in ../../opengl/${GL_LOCAL}/extensions/*.{so,a,la}; do
+ [ -f "${file}" ] || continue
+ rm -f $(basename ${file})
+
+ # Fix libtool archives (#48297)
+ if [ "${file%.la}" != "${file}" ]; then
+ sed "s:/usr/[^/]*/opengl/[^/]*/lib:/usr/${LIBDIR}:g" ${file} > $(basename ${file})
+ else
+ ln -s ${file}
+ fi
+ done
+ popd
+ fi
+
+ # Setup the includes
+ if [ -e "/usr/${LIBDIR}/opengl/${GL_LOCAL}/include" ]; then
+ for x in gl.h glx.h glxtokens.h glext.h; do
+ if [ -e /usr/X11R6/include/GL/${x} ]; then
+ rm -f /usr/X11R6/include/GL/${x}
+ fi
+
+ # IMPORTANT
+ # It is preferable currently to use the standard glext.h file
+ # however if an OpenGL provider must use a self produced glext.h
+ # then it should be installed to ${GL_IMPLEM}/include
+
+ if [ -e /usr/${LIBDIR}/opengl/${GL_IMPLEM}/include/${x} ]; then
+ ln -sf /usr/${LIBDIR}/opengl/${GL_IMPLEM}/include/${x} \
+ /usr/X11R6/include/GL/${x}
+ else
+ ln -sf /usr/${LIBDIR}/opengl/global/include/${x} \
+ /usr/X11R6/include/GL/${x}
+ fi
+ done
+ fi
+
+ # Setup the $LDPATH
+ ldpath="${ldpath:+${ldpath}:}/usr/${LIBDIR}/opengl/${GL_LOCAL}/lib"
+
+ done &> /dev/null
+
+ echo "LDPATH=\"${ldpath}\"" > /etc/env.d/03opengl
+
+ env-update
+
+eend 0
+
+# vim:ts=4
diff --git a/x11-base/opengl-update/metadata.xml b/x11-base/opengl-update/metadata.xml
index 5c10876fea20..ed760d269a49 100644
--- a/x11-base/opengl-update/metadata.xml
+++ b/x11-base/opengl-update/metadata.xml
@@ -3,7 +3,8 @@
<pkgmetadata>
<herd>X11</herd>
<maintainer>
- <email>x11@gentoo.org</email>
+ <email>eradicator@gentoo.org</email>
+ <name>Jeremy Huddleston</name>
</maintainer>
<longdescription>Utility to switch opengl implementations between various providers.</longdescription>
</pkgmetadata>
diff --git a/x11-base/opengl-update/opengl-update-2.1_pre5.ebuild b/x11-base/opengl-update/opengl-update-2.1_pre5.ebuild
new file mode 100644
index 000000000000..bd296884438b
--- /dev/null
+++ b/x11-base/opengl-update/opengl-update-2.1_pre5.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-base/opengl-update/opengl-update-2.1_pre5.ebuild,v 1.1 2005/02/07 07:43:44 eradicator Exp $
+
+inherit multilib toolchain-funcs
+
+DESCRIPTION="Utility to change the OpenGL interface being used"
+HOMEPAGE="http://www.gentoo.org/"
+GLEXT="20040830"
+SRC_URI="http://dev.gentoo.org/~cyfred/distfiles/glext.h-${GLEXT}.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+#KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+KEYWORDS="~alpha ~amd64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+#Removed: ~arm ~hppa ~ia64 due to insufficient xorg-x11 version
+IUSE=""
+RESTRICT="multilib-pkg-force"
+
+DEPEND="virtual/libc
+ app-arch/bzip2"
+
+RDEPEND="!x11-base/xfree86
+ !<x11-base/xorg-x11-6.8.0-r4
+ !<media-video/ati-drivers-8.8.25-r3"
+
+src_unpack() {
+ bzcat ${DISTDIR}/glext.h-${GLEXT}.bz2 > ${WORKDIR}/glext.h || die
+}
+
+pkg_preinst() {
+ # It needs to be before 04multilib
+ [ -f "${ROOT}/etc/env.d/09opengl" ] && mv ${ROOT}/etc/env.d/09opengl ${ROOT}/etc/env.d/03opengl
+
+ OABI="${ABI}"
+ for ABI in $(get_install_abis); do
+ if [ -e "${ROOT}/usr/$(get_libdir)/opengl/xorg-x11/lib/libMesaGL.so" ]; then
+ einfo "Removing libMesaGL.so from xorg-x11 profile. See bug #47598."
+ rm -f ${ROOT}/usr/$(get_libdir)/opengl/xorg-x11/lib/libMesaGL.so
+ fi
+ if [ -e "${ROOT}/usr/$(get_libdir)/libMesaGL.so" ]; then
+ einfo "Removing libMesaGL.so from /usr/$(get_libdir). See bug #47598."
+ rm -f ${ROOT}/usr/$(get_libdir)/libMesaGL.so
+ fi
+ done
+ ABI="${OABI}"
+ unset OABI
+}
+
+src_install() {
+ newsbin ${FILESDIR}/opengl-update-${PV} opengl-update || die
+
+ # MULTILIB-CLEANUP: Fix this when FEATURES=multilib-pkg is in portage
+ local MLTEST=$(type dyn_unpack)
+ if has_multilib_profile && [ "${MLTEST/set_abi}" = "${MLTEST}" ]; then
+ OABI="${ABI}"
+ for ABI in $(get_install_abis); do
+ # Install default glext.h
+ insinto /usr/$(get_libdir)/opengl/global/include
+ doins ${WORKDIR}/glext.h || die
+ done
+ ABI="${OABI}"
+ unset OABI
+ else
+ # Install default glext.h
+ insinto /usr/$(get_libdir)/opengl/global/include
+ doins ${WORKDIR}/glext.h || die
+ fi
+}