diff options
author | Jeremy Huddleston <eradicator@gentoo.org> | 2005-02-07 07:43:44 +0000 |
---|---|---|
committer | Jeremy Huddleston <eradicator@gentoo.org> | 2005-02-07 07:43:44 +0000 |
commit | a96e7ee5252fcb55f49ebe455d2b1f5e860464dd (patch) | |
tree | 04c2894f151ef73e99cbe7e91bf4785d210e42c3 /x11-base/opengl-update | |
parent | updating for startup notification for Openbox (diff) | |
download | gentoo-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/ChangeLog | 8 | ||||
-rw-r--r-- | x11-base/opengl-update/Manifest | 25 | ||||
-rw-r--r-- | x11-base/opengl-update/files/digest-opengl-update-2.1_pre5 | 1 | ||||
-rw-r--r-- | x11-base/opengl-update/files/opengl-update-2.1_pre5 | 300 | ||||
-rw-r--r-- | x11-base/opengl-update/metadata.xml | 3 | ||||
-rw-r--r-- | x11-base/opengl-update/opengl-update-2.1_pre5.ebuild | 69 |
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 +} |