From d4ad3feae9a44715e973ae237cf01d4f91c212b3 Mon Sep 17 00:00:00 2001 From: Fabian Fingerle Date: Tue, 5 May 2009 10:49:27 +0200 Subject: [PATCH] x11-drivers/nvidia-drivers-186.18.08: fixes --- Documentation/package.keywords/nvidia-beta | 4 +- media-video/nvidia-settings/ChangeLog | 4 + media-video/nvidia-settings/Manifest | 4 +- .../nvidia-settings-185.18.08.ebuild | 69 +++ x11-drivers/nvidia-drivers/ChangeLog | 2 +- .../nvidia-drivers/nvidia-drivers-185.18.04.ebuild | 527 +++++++++++++++++++++ 6 files changed, 606 insertions(+), 4 deletions(-) create mode 100644 media-video/nvidia-settings/nvidia-settings-185.18.08.ebuild create mode 100644 x11-drivers/nvidia-drivers/nvidia-drivers-185.18.04.ebuild diff --git a/Documentation/package.keywords/nvidia-beta b/Documentation/package.keywords/nvidia-beta index 07b6da4..fc8e4db 100644 --- a/Documentation/package.keywords/nvidia-beta +++ b/Documentation/package.keywords/nvidia-beta @@ -1,2 +1,2 @@ -=media-video/nvidia-settings-185.18.08 ** -=x11-drivers/nvidia-drivers-185.18.08 ** +=media-video/nvidia-settings-185.18.04 ** +=x11-drivers/nvidia-drivers-185.18.04 ** diff --git a/media-video/nvidia-settings/ChangeLog b/media-video/nvidia-settings/ChangeLog index 2c9a0b0..93cf5ac 100644 --- a/media-video/nvidia-settings/ChangeLog +++ b/media-video/nvidia-settings/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for x11-drivers/nvidia-drivers # Copyright 2006-2009 Otih Overlay; distributed under the GPL version 2 + 05 May 2009, Fabian Fingerle + +nvidia-settings-185.18.08: + Bump + 24 Apr 2009, Fabian Fingerle +nvidia-settings-185.18.04.ebuild, -nvidia-settings-185.19.ebuild: Bump, 185.18.04 is newer than 185.19 diff --git a/media-video/nvidia-settings/Manifest b/media-video/nvidia-settings/Manifest index b4e2efb..0a41422 100644 --- a/media-video/nvidia-settings/Manifest +++ b/media-video/nvidia-settings/Manifest @@ -2,7 +2,9 @@ AUX icon/nvidia-settings.desktop 194 RMD160 a59dae254f65d9665118629b489b33b0fd87 AUX icon/nvidia-settings.png 3790 RMD160 a0a8c319ca4b0100d2b7502b6a3dba20a3dc71b9 SHA1 ff485bf300c6e0c56b3d1f08ee87e4d9a425db65 SHA256 171e2d20dfe7fbbb86bf9d3c0bb22909529b351fb06b614018a9597ff2456f12 DIST nvidia-settings-180.53.tar.gz 1342071 RMD160 1e9a361b64adb2c1fc7cf23e09f3aee82f30502c SHA1 228edfe359b8251ae19cc49a6fbbd777173b1975 SHA256 ee8e169779346d52ca563d96864b669d3c12dbcdfb1ce66184766ceac138f639 DIST nvidia-settings-185.18.04.tar.gz 1347205 RMD160 f882ce07a1022fc354031ff3a0f67c05c9ae4f2b SHA1 9fd3cc81219b1adda86ce0a5bb1965f2d4352189 SHA256 15865e6630ca48b049f04a01bf7e00565dc0e85979d87500f056b942d2ddb44f +DIST nvidia-settings-185.18.08.tar.gz 1347259 RMD160 bf45ba984d767a2ec2a156a63858f6c02346ae1f SHA1 5891ec8753154d419d9ff1e84c2acb8f20c3b8af SHA256 b043c00d9703bfccfe7f21241ab99701bba85aa2c37d190dba2c9ec84d38dba4 EBUILD nvidia-settings-180.53.ebuild 1721 RMD160 f7d6e47cad4e905b8e92208dc97dd1938bbc2394 SHA1 4446f0471e2c2057c9c9bdb1a99e568d69e29390 SHA256 55fbb7c79182e1c8ac8d1edf7b68feccd3f885c0e95520e5c1f2e45965108b10 EBUILD nvidia-settings-185.18.04.ebuild 1721 RMD160 f7d6e47cad4e905b8e92208dc97dd1938bbc2394 SHA1 4446f0471e2c2057c9c9bdb1a99e568d69e29390 SHA256 55fbb7c79182e1c8ac8d1edf7b68feccd3f885c0e95520e5c1f2e45965108b10 -MISC ChangeLog 1629 RMD160 550bf556009f7dfed76f884da19eefdb7c9592ec SHA1 013fdf50d1e97d6505d6bdfdd4260a1466665f22 SHA256 c3363b993ee66448290cc552e4ec9b6554a1279f74cfdfa635a0bc993bcc71fe +EBUILD nvidia-settings-185.18.08.ebuild 1721 RMD160 f7d6e47cad4e905b8e92208dc97dd1938bbc2394 SHA1 4446f0471e2c2057c9c9bdb1a99e568d69e29390 SHA256 55fbb7c79182e1c8ac8d1edf7b68feccd3f885c0e95520e5c1f2e45965108b10 +MISC ChangeLog 1721 RMD160 e1c8ec6be44096eac617e82f2d730723253d77e3 SHA1 ed2a55d63c9fc3c2b4a1875f93c47c4c079b0700 SHA256 fe422b9209787d6f19ed079b3e7447280f8db3857a03ecf94acc1cf2cdb5aa5f MISC metadata.xml 313 RMD160 ef0fd7e80d48cd3ca74f690da28124320f1a5bd9 SHA1 07663307a196dcdd3ae7fd14a87476f7a7aaa67a SHA256 d6e8ff073fd6c7c27d8401c2ccc11bd62003fca57618d4ebc2c3bcc2f3beec21 diff --git a/media-video/nvidia-settings/nvidia-settings-185.18.08.ebuild b/media-video/nvidia-settings/nvidia-settings-185.18.08.ebuild new file mode 100644 index 0000000..f164781 --- /dev/null +++ b/media-video/nvidia-settings/nvidia-settings-185.18.08.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit eutils toolchain-funcs multilib + +MY_P="${PN}-1.0" + +DESCRIPTION="NVIDIA Linux X11 Settings Utility" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="ftp://download.nvidia.com/XFree86/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="" +IUSE="" + +# xorg-server is used in the depends as nvidia-settings builds against some +# headers in /usr/include/xorg/. +# This also allows us to optimize out a lot of the other dependancies, as +# between gtk and xorg-server, almost all libraries and headers are accounted +# for. +DEPEND=">=x11-libs/gtk+-2 + dev-util/pkgconfig + x11-base/xorg-server + x11-libs/libXt + x11-libs/libXv + x11-proto/xf86driproto + x11-proto/xf86vidmodeproto" + +RDEPEND=">=x11-libs/gtk+-2 + x11-base/xorg-server + x11-libs/libXt + x11-drivers/nvidia-drivers" + +S="${WORKDIR}/${MY_P}" + +src_compile() { + einfo "Building libXNVCtrl..." + cd "${S}/src/libXNVCtrl" + make clean || die "Cleaning old libXNVCtrl failed" + emake CDEBUGFLAGS="${CFLAGS}" CC="$(tc-getCC)" libXNVCtrl.a || die "Building libXNVCtrl failed!" + + cd "${S}" + einfo "Building nVidia-Settings..." + emake CC="$(tc-getCC)" || die "Failed to build nvidia-settings" +} + +src_install() { + # Install the executable + exeinto /usr/bin + doexe nvidia-settings + + # Install libXNVCtrl and headers + insinto "/usr/$(get_libdir)" + doins src/libXNVCtrl/libXNVCtrl.a + insinto /usr/include/NVCtrl + doins src/libXNVCtrl/{NVCtrl,NVCtrlLib}.h + + # Install icon and .desktop entry + doicon "${FILESDIR}/icon/${PN}.png" + domenu "${FILESDIR}/icon/${PN}.desktop" + + # Install manpage + doman doc/nvidia-settings.1 + + # Now install documentation + dodoc doc/*.txt +} diff --git a/x11-drivers/nvidia-drivers/ChangeLog b/x11-drivers/nvidia-drivers/ChangeLog index 628d9b5..b7c660b 100644 --- a/x11-drivers/nvidia-drivers/ChangeLog +++ b/x11-drivers/nvidia-drivers/ChangeLog @@ -2,7 +2,7 @@ # Copyright 2006-2009 Otih Overlay; distributed under the GPL version 2 05 May 2009, Fabian Fingerle - -nvidia-drivers-185.18.04.ebuild, +nvidia-drivers-185.18.08.ebuild: + +nvidia-drivers-185.18.08.ebuild: Bump 24 Apr 2009, Fabian Fingerle diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-185.18.04.ebuild b/x11-drivers/nvidia-drivers/nvidia-drivers-185.18.04.ebuild new file mode 100644 index 0000000..8a72922 --- /dev/null +++ b/x11-drivers/nvidia-drivers/nvidia-drivers-185.18.04.ebuild @@ -0,0 +1,527 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver + +X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}" +AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}" +X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}" + +DESCRIPTION="NVIDIA X11 driver and GLX libraries" +HOMEPAGE="http://www.nvidia.com/" +SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}-pkg0.run ) + amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}-pkg2.run ) + x86-fbsd? ( ftp://download.nvidia.com/freebsd/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )" + +LICENSE="NVIDIA" +SLOT="0" +KEYWORDS="" +IUSE="acpi custom-cflags gtk multilib kernel_linux" +RESTRICT="strip" +EMULTILIB_PKG="true" + +COMMON="= 2.6.7" + echo + ewarn "DO NOT file bug reports for kernel versions less than 2.6.7 as they will be ignored." + fi + + if ! use x86-fbsd; then + mkdir "${S}" + cd "${S}" + unpack_makeself + else + unpack ${A} + fi + + # Patches go below here, add brief description + cd "${S}" + use x86-fbsd && cd doc + + # Use the correct defines to make gtkglext build work + epatch "${FILESDIR}"/NVIDIA_glx-defines.patch + # Use some more sensible gl headers and make way for new glext.h + epatch "${FILESDIR}"/NVIDIA_glx-glheader.patch + + # allow on board sensors to work with lm_sensors + if use kernel_linux; then + epatch "${FILESDIR}"/NVIDIA_i2c-hwmon.patch + fi + + if use kernel_linux; then + # Quiet down warnings the user does not need to see + sed -i \ + -e 's:-Wpointer-arith::g' \ + -e 's:-Wsign-compare::g' \ + "${NV_SRC}"/Makefile.kbuild + + # If you set this then it's your own fault when stuff breaks :) + use custom-cflags && sed -i "s:-O:${CFLAGS}:" "${NV_SRC}"/Makefile.* + + # If greater than 2.6.5 use M= instead of SUBDIR= + convert_to_m "${NV_SRC}"/Makefile.kbuild + fi +} + +src_compile() { + # This is already the default on Linux, as there's no toplevel Makefile, but + # on FreeBSD there's one and triggers the kernel module build, as we install + # it by itself, pass this. + + cd "${NV_SRC}" + if use x86-fbsd; then + MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \ + LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die + elif use kernel_linux; then + linux-mod_src_compile + fi +} + +src_install() { + local MLTEST=$(type dyn_unpack) + + cd "${S}" + + if use kernel_linux; then + linux-mod_src_install + + VIDEOGROUP="$(egetent group video | cut -d ':' -f 3)" + if [ -z "$VIDEOGROUP" ]; then + eerror "Failed to determine the video group gid." + die "Failed to determine the video group gid." + fi + + # Add the aliases + [ -f "${FILESDIR}/nvidia" ] || die "nvidia missing in FILESDIR" + sed -e 's:PACKAGE:'${PF}':g' \ + -e 's:VIDEOGID:'${VIDEOGROUP}':' "${FILESDIR}"/nvidia-169.07 > \ + "${WORKDIR}"/nvidia + insinto /etc/modprobe.d + doins "${WORKDIR}"/nvidia || die + elif use x86-fbsd; then + insinto /boot/modules + doins "${WORKDIR}/${NV_PACKAGE}/src/nvidia.kld" || die + + exeinto /boot/modules + doexe "${WORKDIR}/${NV_PACKAGE}/src/nvidia.ko" || die + fi + + if has_multilib_profile ; then + local OABI=${ABI} + for ABI in $(get_install_abis) ; do + src_install-libs + done + ABI=${OABI} + unset OABI + elif use amd64 ; then + src_install-libs lib32 $(get_multilibdir) + src_install-libs lib $(get_libdir) + + rm -rf "${D}"/usr/$(get_multilibdir)/opengl/nvidia/include + rm -rf "${D}"/usr/$(get_multilibdir)/opengl/nvidia/extensions + else + src_install-libs + fi + + is_final_abi || return 0 + + # Documentation + dodoc "${NV_DOC}"/{XF86Config.sample,Copyrights} + dohtml "${NV_DOC}"/html/* + if use x86-fbsd; then + dodoc "${NV_DOC}/README" + else + # Docs + newdoc "${NV_DOC}/README.txt" README + dodoc "${NV_DOC}/NVIDIA_Changelog" + fi + + # Helper Apps + dobin ${NV_EXEC}/nvidia-xconfig || die + dobin ${NV_EXEC}/nvidia-bug-report.sh || die +} + +# Install nvidia library: +# the first parameter is the place where to install it +# the second parameter is the base name of the library +# the third parameter is the provided soversion +donvidia() { + dodir $1 + exeinto $1 + + libname=$(basename $2) + + # libnvidia-cfg.so is no longer supplied in lib32; step over it gracefully + if [ -e $2.$3 ] ; then + doexe $2.$3 + dosym ${libname}.$3 $1/${libname} + [[ $3 != "1" ]] && dosym ${libname}.$3 $1/${libname}.1 + fi +} + +src_install-libs() { + local pkglibdir=lib + local inslibdir=$(get_libdir) + + if [[ ${#} -eq 2 ]] ; then + pkglibdir=${1} + inslibdir=${2} + elif has_multilib_profile && [[ ${ABI} == "x86" ]] ; then + pkglibdir=lib32 + fi + + local usrpkglibdir=usr/${pkglibdir} + local libdir=usr/X11R6/${pkglibdir} + local drvdir=${libdir}/modules/drivers + local extdir=${libdir}/modules/extensions + local incdir=usr/include/GL + local sover=${PV} + local NV_ROOT="/usr/${inslibdir}/opengl/nvidia" + local NO_TLS_ROOT="${NV_ROOT}/no-tls" + local TLS_ROOT="${NV_ROOT}/tls" + local X11_LIB_DIR="/usr/${inslibdir}/xorg" + + if use x86-fbsd; then + # on FreeBSD everything is on obj/ + pkglibdir=obj + usrpkglibdir=obj + x11pkglibdir=obj + drvdir=obj + extdir=obj + + # don't ask me why the headers are there.. glxext.h is missing + incdir=doc + + # on FreeBSD it has just .1 suffix + sover=1 + fi + + # The GLX libraries + donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGL.so ${sover} + donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libGLcore.so ${sover} + + donvidia ${NV_ROOT}/lib ${usrpkglibdir}/libnvidia-cfg.so ${sover} + + dodir ${NO_TLS_ROOT} + donvidia ${NO_TLS_ROOT} ${usrpkglibdir}/libnvidia-tls.so ${sover} + + if ! use x86-fbsd; then + donvidia ${TLS_ROOT} ${usrpkglibdir}/tls/libnvidia-tls.so ${sover} + fi + + if want_tls ; then + dosym ../tls/libnvidia-tls.so ${NV_ROOT}/lib + dosym ../tls/libnvidia-tls.so.1 ${NV_ROOT}/lib + dosym ../tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib + else + dosym ../no-tls/libnvidia-tls.so ${NV_ROOT}/lib + dosym ../no-tls/libnvidia-tls.so.1 ${NV_ROOT}/lib + dosym ../no-tls/libnvidia-tls.so.${sover} ${NV_ROOT}/lib + fi + + if ! use x86-fbsd; then + # Install the .la file for libtool, to prevent e.g. bug #176423 + [ -f "${FILESDIR}/libGL.la-r2" ] || die "libGL.la-r2 missing in FILESDIR" + local ver1=$(get_version_component_range 1) + local ver2=$(get_version_component_range 2) + local ver3=$(get_version_component_range 3) + sed -e "s:\${PV}:${PV}:" \ + -e "s:\${ver1}:${ver1}:" \ + -e "s:\${ver2}:${ver2}:" \ + -e "s:\${ver3}:${ver3}:" \ + -e "s:\${libdir}:${inslibdir}:" \ + "${FILESDIR}"/libGL.la-r2 > "${D}"/${NV_ROOT}/lib/libGL.la + fi + + exeinto ${X11_LIB_DIR}/modules/drivers + + [[ -f ${drvdir}/nvidia_drv.so ]] && \ + doexe ${drvdir}/nvidia_drv.so + + insinto /usr/${inslibdir} + [[ -f ${libdir}/libXvMCNVIDIA.a ]] && \ + doins ${libdir}/libXvMCNVIDIA.a + exeinto /usr/${inslibdir} + # fix Bug 131315 + [[ -f ${libdir}/libXvMCNVIDIA.so.${PV} ]] && \ + doexe ${libdir}/libXvMCNVIDIA.so.${PV} && \ + dosym libXvMCNVIDIA.so.${PV} \ + /usr/${inslibdir}/libXvMCNVIDIA.so + + exeinto ${NV_ROOT}/extensions + [[ -f ${libdir}/modules/libnvidia-wfb.so.${sover} ]] && \ + newexe ${libdir}/modules/libnvidia-wfb.so.${sover} libwfb.so + [[ -f ${extdir}/libglx.so.${sover} ]] && \ + newexe ${extdir}/libglx.so.${sover} libglx.so + + # Includes + insinto ${NV_ROOT}/include + doins ${incdir}/*.h + + #cuda + if [[ -f usr/include/cuda/cuda.h ]]; then + dodir /usr/include/cuda + insinto /usr/include/cuda + doins usr/include/cuda/*.h + + if [[ -f usr/${pkglibdir}/libcuda.so.${PV} ]]; then + dolib.so usr/${pkglibdir}/libcuda.so.${PV} + dosym libcuda.so.${PV} /usr/${inslibdir}/libcuda.so.1 + dosym libcuda.so.1 /usr/${inslibdir}/libcuda.so + fi + fi + + #vdpau + if [[ -f usr/include/vdpau/vdpau.h ]]; then + dodir /usr/include/vdpau + insinto /usr/include/vdpau + doins usr/include/vdpau/*.h + + for vdpaulib in vdpau_nvidia vdpau vdpau_trace; do + dolib.so usr/${pkglibdir}/lib${vdpaulib}.so.${PV} + dosym lib${vdpaulib}.so.${PV} /usr/${inslibdir}/lib${vdpaulib}.so.1 + dosym lib${vdpaulib}.so.1 /usr/${inslibdir}/lib${vdpaulib}.so + done + fi +} + +pkg_preinst() { + + # Clean the dynamic libGL stuff's home to ensure + # we dont have stale libs floating around + if [ -d "${ROOT}"/usr/lib/opengl/nvidia ] ; then + rm -rf "${ROOT}"/usr/lib/opengl/nvidia/* + fi + # Make sure we nuke the old nvidia-glx's env.d file + if [ -e "${ROOT}"/etc/env.d/09nvidia ] ; then + rm -f "${ROOT}"/etc/env.d/09nvidia + fi +} + +pkg_postinst() { + if use kernel_linux; then + linux-mod_pkg_postinst + fi + + # Switch to the nvidia implementation + eselect opengl set --use-old nvidia + + echo + elog "You must be in the video group to use the NVIDIA device" + elog "For more info, read the docs at" + elog "http://www.gentoo.org/doc/en/nvidia-guide.xml#doc_chap3_sect6" + elog + + elog "This ebuild installs a kernel module and X driver. Both must" + elog "match explicitly in their version. This means, if you restart" + elog "X, you most modprobe -r nvidia before starting it back up" + elog + + elog "To use the NVIDIA GLX, run \"eselect opengl set nvidia\"" + elog + elog "nVidia has requested that any bug reports submitted have the" + elog "output of /usr/bin/nvidia-bug-report.sh included." + elog + elog "To work with compiz, you must enable the AddARGBGLXVisuals option." + elog + elog "If you are having resolution problems, try disabling DynamicTwinView." + echo +} + +want_tls() { + # For uclibc or anything non glibc, return false + has_version sys-libs/glibc || return 1 + + # Old versions of glibc were lt/no-tls only + has_version '=sys-libs/glibc-2.3.5' ; then + case ${CHOST/-*} in + i486|i586) return 1 ;; + esac + fi + + # These versions built linuxthreads version to support tls, too + has_version '>=sys-libs/glibc-2.3.4.20040619-r2' && return 0 + + return 1 +} + +pkg_postrm() { + if use kernel_linux; then + linux-mod_pkg_postrm + fi + eselect opengl set --use-old xorg-x11 +} -- 2.11.4.GIT