commit: ddf92113ece6448a6b2b83c011fb520f1fd11c41
Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 12 15:09:15 2017 +0000
Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Thu Jan 12 15:58:30 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddf92113
x11-drivers/nvidia-drivers: Update latest ebuilds in 355 and 358 branches (bug
#496582).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
.../nvidia-drivers-340.101-r1.ebuild | 22 +--
...1-r1.ebuild => nvidia-drivers-355.11-r5.ebuild} | 216 ++++++++++-----------
...1-r1.ebuild => nvidia-drivers-358.16-r6.ebuild} | 175 +++++++++--------
3 files changed, 206 insertions(+), 207 deletions(-)
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
b/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
index 3f59fe6..02f330e 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
@@ -33,14 +33,14 @@ COMMON="
app-eselect/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
tools? (
- dev-libs/atk[$MULTILIB_USEDEP]
- dev-libs/glib:2[$MULTILIB_USEDEP]
- dev-libs/jansson[$MULTILIB_USEDEP]
- x11-libs/gdk-pixbuf[$MULTILIB_USEDEP]
- >=x11-libs/gtk+-2.4:2[$MULTILIB_USEDEP]
- x11-libs/libX11[$MULTILIB_USEDEP]
- x11-libs/libXext[$MULTILIB_USEDEP]
- x11-libs/pango[X,$MULTILIB_USEDEP]
+ dev-libs/atk[${MULTILIB_USEDEP}]
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ dev-libs/jansson[${MULTILIB_USEDEP}]
+ x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
+ >=x11-libs/gtk+-2.4:2[${MULTILIB_USEDEP}]
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/pango[X,${MULTILIB_USEDEP}]
)
X? (
>=app-eselect/eselect-opengl-1.0.9
@@ -58,10 +58,10 @@ RDEPEND="
X? (
<x11-base/xorg-server-1.19.99:=
>=x11-libs/libvdpau-0.3-r1
- sys-libs/zlib[$MULTILIB_USEDEP]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
multilib? (
- >=x11-libs/libX11-1.6.2[$MULTILIB_USEDEP]
- >=x11-libs/libXext-1.3.2[$MULTILIB_USEDEP]
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
)
)
"
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild
similarity index 75%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild
index 3f59fe6..35d15a9 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-355.11-r5.ebuild
@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=6
+EAPI=5
+
inherit eutils flag-o-matic linux-info linux-mod multilib-minimal
nvidia-driver \
portability toolchain-funcs unpacker user udev
@@ -19,29 +20,23 @@ SRC_URI="
amd64? ( ${NV_URI}Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
x86-fbsd? ( ${NV_URI}FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )
x86? ( ${NV_URI}Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
- tools? (
ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${PV}.tar.bz2
)
"
LICENSE="GPL-2 NVIDIA-r2"
SLOT="0/${PV%.*}"
KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools
+X uvm"
RESTRICT="bindist mirror"
EMULTILIB_PKG="true"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel +tools gtk2 gtk3 +X
uvm"
+REQUIRED_USE="
+ tools? ( X || ( gtk2 gtk3 ) )
+"
+
COMMON="
app-eselect/eselect-opencl
+ gtk3? ( x11-libs/cairo[${MULTILIB_USEDEP}] )
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
- tools? (
- dev-libs/atk[$MULTILIB_USEDEP]
- dev-libs/glib:2[$MULTILIB_USEDEP]
- dev-libs/jansson[$MULTILIB_USEDEP]
- x11-libs/gdk-pixbuf[$MULTILIB_USEDEP]
- >=x11-libs/gtk+-2.4:2[$MULTILIB_USEDEP]
- x11-libs/libX11[$MULTILIB_USEDEP]
- x11-libs/libXext[$MULTILIB_USEDEP]
- x11-libs/pango[X,$MULTILIB_USEDEP]
- )
X? (
>=app-eselect/eselect-opengl-1.0.9
)
@@ -54,20 +49,25 @@ DEPEND="
RDEPEND="
${COMMON}
acpi? ( sys-power/acpid )
- tools? ( !media-video/nvidia-settings )
+ tools? (
+ dev-libs/atk[${MULTILIB_USEDEP}]
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ x11-libs/gdk-pixbuf[${MULTILIB_USEDEP}]
+ gtk2? ( >=x11-libs/gtk+-2.4:2[${MULTILIB_USEDEP}] )
+ gtk3? ( x11-libs/gtk+:3[${MULTILIB_USEDEP}] )
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/pango[X,${MULTILIB_USEDEP}]
+ )
X? (
- <x11-base/xorg-server-1.19.99:=
- >=x11-libs/libvdpau-0.3-r1
- sys-libs/zlib[$MULTILIB_USEDEP]
- multilib? (
- >=x11-libs/libX11-1.6.2[$MULTILIB_USEDEP]
- >=x11-libs/libXext-1.3.2[$MULTILIB_USEDEP]
- )
+ <x11-base/xorg-server-1.18.99:=
+ >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
)
"
-REQUIRED_USE="tools? ( X )"
-
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
@@ -79,18 +79,17 @@ pkg_pretend() {
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
- if use kernel_linux && kernel_is ge 4 10; then
+ if use kernel_linux && kernel_is ge 4 3; then
ewarn "Gentoo supports kernels which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
- ewarn "<sys-kernel/gentoo-sources-4.10"
- ewarn "<sys-kernel/vanilla-sources-4.10"
+ ewarn "<sys-kernel/gentoo-sources-4.3"
+ ewarn "<sys-kernel/vanilla-sources-4.3"
ewarn ""
- ewarn "You are free to utilize eapply_user to provide whatever"
+ ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
ewarn ""
ewarn "Do not file a bug report about this."
- ewarn ""
fi
# Since Nvidia ships many different series of drivers, we need to give
the user
@@ -114,7 +113,7 @@ pkg_setup() {
if use kernel_linux; then
MODULE_NAMES="nvidia(video:${S}/kernel)"
- use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+ use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
# This needs to run after MODULE_NAMES (so that the eclass
checks
# whether the kernel supports loadable modules) but before
BUILD_PARAMS
@@ -122,7 +121,7 @@ pkg_setup() {
linux-mod_pkg_setup
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
- SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+ SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
@@ -157,7 +156,7 @@ src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
- if kernel_is lt 2 6 9 ; then
+ if kernel_is lt 2 6 9; then
eerror "You must build this against 2.6.9 or higher
kernels."
fi
@@ -169,12 +168,11 @@ src_prepare() {
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
- eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
- eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
+ epatch "${FILESDIR}"/${PN}-355.06-pax.patch
fi
# Allow user patches so they can support RC kernels and whatever else
- eapply_user
+ epatch_user
}
src_compile() {
@@ -187,34 +185,15 @@ src_compile() {
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake
CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
- use uvm && MAKEOPTS=-j1
+ MAKEOPTS=-j1
linux-mod_src_compile
fi
-
- if use tools; then
- emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
- emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
- AR="$(tc-getAR)" \
- CC="$(tc-getCC)" \
- RANLIB="$(tc-getRANLIB)" \
- libXNVCtrl.a
- emake -C "${S}"/nvidia-settings-${PV}/src \
- AR="$(tc-getAR)" \
- CC="$(tc-getCC)" \
- LD="$(tc-getCC)" \
- LIBDIR="$(get_libdir)" \
- NVML_ENABLED=0 \
- NV_USE_BUNDLED_LIBJANSSON=0 \
- NV_VERBOSE=1 \
- RANLIB="$(tc-getRANLIB)" \
- STRIP_CMD=true
- fi
}
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
+# the third parameter is the target directory if it is not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
@@ -298,6 +277,12 @@ src_install() {
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
+
+ # Xorg nvidia.conf
+ if has_version '>=x11-base/xorg-server-1.16'; then
+ insinto /usr/share/X11/xorg.conf.d
+ newins {,50-}nvidia-drm-outputclass.conf
+ fi
fi
# OpenCL ICD for NVIDIA
@@ -307,6 +292,7 @@ src_install() {
fi
# Documentation
+ dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
@@ -321,9 +307,6 @@ src_install() {
doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
fi
- docinto html
- dodoc -r ${NV_DOC}/html/*
-
# Helper Apps
exeinto /opt/bin/
@@ -331,7 +314,7 @@ src_install() {
doexe ${NV_OBJ}/nvidia-xconfig
fi
- if use kernel_linux ; then
+ if use kernel_linux; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
@@ -353,45 +336,31 @@ src_install() {
fi
if use tools; then
- emake -C "${S}"/nvidia-settings-${PV}/src/ \
- DESTDIR="${D}" \
- LIBDIR="${D}/usr/$(get_libdir)" \
- PREFIX=/usr \
- NV_USE_BUNDLED_LIBJANSSON=0 \
- install
-
- if use static-libs; then
- dolib.a
"${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a
-
- insinto /usr/include/NVCtrl
- doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h
- fi
-
+ doexe ${NV_OBJ}/nvidia-settings
+ use gtk2 && donvidia libnvidia-gtk2.so ${PV}
+ use gtk3 && donvidia libnvidia-gtk3.so ${PV}
insinto /usr/share/nvidia/
doins nvidia-application-profiles-${PV}-key-documentation
-
insinto /etc/nvidia
- newins \
- nvidia-application-profiles-${PV}-rc
nvidia-application-profiles-rc
-
- # There is no icon in the FreeBSD tarball.
- use kernel_FreeBSD || \
- doicon ${NV_OBJ}/nvidia-settings.png
+ newins nvidia-application-profiles-${PV}-rc
nvidia-application-profiles-rc
+ fi
- domenu "${FILESDIR}"/nvidia-settings.desktop
+ dobin ${NV_OBJ}/nvidia-bug-report.sh
+ # Desktop entries for nvidia-settings
+ if use tools; then
+ # There is no icon in the FreeBSD tarball.
+ use kernel_FreeBSD || newicon ${NV_OBJ}/nvidia-settings.png
${PN}-settings.png
+ domenu "${FILESDIR}"/${PN}-settings.desktop
exeinto /etc/X11/xinit/xinitrc.d
- newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-
+ doexe "${FILESDIR}"/95-nvidia-settings
fi
- dobin ${NV_OBJ}/nvidia-bug-report.sh
-
#doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
- if has_multilib_profile && use multilib ; then
+ if has_multilib_profile && use multilib; then
local OABI=${ABI}
- for ABI in $(get_install_abis) ; do
+ for ABI in $(get_install_abis); do
src_install-libs
done
ABI=${OABI}
@@ -411,48 +380,59 @@ src_install-libs() {
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
- if use kernel_linux && has_multilib_profile && \
- [[ ${ABI} == "x86" ]] ; then
+ if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]];
then
libdir=${NV_OBJ}/32
fi
if use X; then
- # The GLX libraries
- donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
+ NV_GLX_LIBRARIES=(
+ "libEGL.so 1 ${GL_ROOT}"
+ "libEGL_nvidia.so 0 ${GL_ROOT}"
+ "libGL.so ${NV_SOVER} ${GL_ROOT}"
+ "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
+ "libGLdispatch.so 0 ${GL_ROOT}"
+ "libOpenCL.so 1.0.0 ${CL_ROOT}"
+ "libOpenGL.so 0 ${GL_ROOT}"
+ "libcuda.so ${NV_SOVER}"
+ "libnvcuvid.so ${NV_SOVER}"
+ "libnvidia-compiler.so ${NV_SOVER}"
+ "libnvidia-eglcore.so ${NV_SOVER}"
+ "libnvidia-encode.so ${NV_SOVER}"
+ "libnvidia-fbc.so ${NV_SOVER}"
+ "libnvidia-glcore.so ${NV_SOVER}"
+ "libnvidia-glsi.so ${NV_SOVER}"
+ "libnvidia-ifr.so ${NV_SOVER}"
+ "libnvidia-opencl.so ${NV_SOVER}"
+ "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
+ "libvdpau_nvidia.so ${NV_SOVER}"
+ "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
+ )
+ if use kernel_linux && has_multilib_profile && [[ ${ABI} ==
"amd64" ]];
+ then
+ NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
+ fi
+
if use kernel_FreeBSD; then
- donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
- else
- donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
+ NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
fi
- # VDPAU
- donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+ if use kernel_linux; then
+ NV_GLX_LIBRARIES+=(
+ "libnvidia-ml.so ${NV_SOVER}"
+ "tls/libnvidia-tls.so ${NV_SOVER}"
+ )
+ fi
+
+ for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+ donvidia ${libdir}/${NV_LIB}
+ done
- # GLES v2 libraries
+ # GLES v2 library is special
insinto ${GL_ROOT}
doexe ${libdir}/libGLESv2.so.${PV}
dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
fi
-
- # NVIDIA monitoring library
- if use kernel_linux ; then
- donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
- fi
-
- # CUDA & OpenCL
- if use kernel_linux; then
- donvidia ${libdir}/libcuda.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
- donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
- donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
- fi
}
pkg_preinst() {
@@ -473,11 +453,11 @@ 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
+ 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
+ if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}
diff --git a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
b/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild
similarity index 78%
copy from x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
copy to x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild
index 3f59fe6..54bf6cc 100644
--- a/x11-drivers/nvidia-drivers/nvidia-drivers-340.101-r1.ebuild
+++ b/x11-drivers/nvidia-drivers/nvidia-drivers-358.16-r6.ebuild
@@ -2,7 +2,8 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=6
+EAPI=5
+
inherit eutils flag-o-matic linux-info linux-mod multilib-minimal
nvidia-driver \
portability toolchain-funcs unpacker user udev
@@ -25,22 +26,32 @@ SRC_URI="
LICENSE="GPL-2 NVIDIA-r2"
SLOT="0/${PV%.*}"
KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="acpi multilib kernel_FreeBSD kernel_linux pax_kernel static-libs +tools
+X uvm"
RESTRICT="bindist mirror"
EMULTILIB_PKG="true"
+IUSE="acpi multilib kernel_FreeBSD kernel_linux +kms pax_kernel static-libs
+tools gtk3 +X uvm"
+REQUIRED_USE="
+ tools? ( X )
+ static-libs? ( tools )
+"
+
COMMON="
app-eselect/eselect-opencl
kernel_linux? ( >=sys-libs/glibc-2.6.1 )
tools? (
- dev-libs/atk[$MULTILIB_USEDEP]
- dev-libs/glib:2[$MULTILIB_USEDEP]
- dev-libs/jansson[$MULTILIB_USEDEP]
- x11-libs/gdk-pixbuf[$MULTILIB_USEDEP]
- >=x11-libs/gtk+-2.4:2[$MULTILIB_USEDEP]
- x11-libs/libX11[$MULTILIB_USEDEP]
- x11-libs/libXext[$MULTILIB_USEDEP]
- x11-libs/pango[X,$MULTILIB_USEDEP]
+ dev-libs/atk[${MULTILIB_USEDEP}]
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ dev-libs/jansson[${MULTILIB_USEDEP}]
+ gtk3? ( x11-libs/gtk+:3[${MULTILIB_USEDEP}] )
+ x11-libs/cairo[${MULTILIB_USEDEP}]
+ x11-libs/gdk-pixbuf[X,${MULTILIB_USEDEP}]
+ x11-libs/gtk+:2[${MULTILIB_USEDEP}]
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXv[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ x11-libs/pango[X,${MULTILIB_USEDEP}]
)
X? (
>=app-eselect/eselect-opengl-1.0.9
@@ -48,7 +59,6 @@ COMMON="
"
DEPEND="
${COMMON}
- app-arch/xz-utils
kernel_linux? ( virtual/linux-sources )
"
RDEPEND="
@@ -56,18 +66,14 @@ RDEPEND="
acpi? ( sys-power/acpid )
tools? ( !media-video/nvidia-settings )
X? (
- <x11-base/xorg-server-1.19.99:=
- >=x11-libs/libvdpau-0.3-r1
- sys-libs/zlib[$MULTILIB_USEDEP]
- multilib? (
- >=x11-libs/libX11-1.6.2[$MULTILIB_USEDEP]
- >=x11-libs/libXext-1.3.2[$MULTILIB_USEDEP]
- )
+ <x11-base/xorg-server-1.18.99:=
+ >=x11-libs/libvdpau-1.0[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}]
+ >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}]
)
"
-REQUIRED_USE="tools? ( X )"
-
QA_PREBUILT="opt/* usr/lib*"
S=${WORKDIR}/
@@ -79,13 +85,13 @@ pkg_pretend() {
die "Unexpected \${DEFAULT_ABI} = ${DEFAULT_ABI}"
fi
- if use kernel_linux && kernel_is ge 4 10; then
+ if use kernel_linux && kernel_is ge 4 4; then
ewarn "Gentoo supports kernels which are supported by NVIDIA"
ewarn "which are limited to the following kernels:"
- ewarn "<sys-kernel/gentoo-sources-4.10"
- ewarn "<sys-kernel/vanilla-sources-4.10"
+ ewarn "<sys-kernel/gentoo-sources-4.4"
+ ewarn "<sys-kernel/vanilla-sources-4.4"
ewarn ""
- ewarn "You are free to utilize eapply_user to provide whatever"
+ ewarn "You are free to utilize epatch_user to provide whatever"
ewarn "support you feel is appropriate, but will not receive"
ewarn "support as a result of those changes."
ewarn ""
@@ -114,7 +120,8 @@ pkg_setup() {
if use kernel_linux; then
MODULE_NAMES="nvidia(video:${S}/kernel)"
- use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel/uvm)"
+ use uvm && MODULE_NAMES+=" nvidia-uvm(video:${S}/kernel)"
+ use kms && MODULE_NAMES+=" nvidia-modeset(video:${S}/kernel)"
# This needs to run after MODULE_NAMES (so that the eclass
checks
# whether the kernel supports loadable modules) but before
BUILD_PARAMS
@@ -122,7 +129,7 @@ pkg_setup() {
linux-mod_pkg_setup
BUILD_PARAMS="IGNORE_CC_MISMATCH=yes V=1 SYSSRC=${KV_DIR} \
- SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC)"
+ SYSOUT=${KV_OUT_DIR} CC=$(tc-getBUILD_CC) NV_VERBOSE=1"
# linux-mod_src_compile calls set_arch_to_kernel, which
# sets the ARCH to x86 but NVIDIA's wrapping Makefile
@@ -157,7 +164,7 @@ src_prepare() {
# Please add a brief description for every added patch
if use kernel_linux; then
- if kernel_is lt 2 6 9 ; then
+ if kernel_is lt 2 6 9; then
eerror "You must build this against 2.6.9 or higher
kernels."
fi
@@ -169,12 +176,11 @@ src_prepare() {
ewarn "Using PAX patches is not supported. You will be asked to"
ewarn "use a standard kernel should you have issues. Should you"
ewarn "need support with these patches, contact the PaX team."
- eapply "${FILESDIR}"/${PN}-331.13-pax-usercopy.patch
- eapply "${FILESDIR}"/${PN}-337.12-pax-constify.patch
+ epatch "${FILESDIR}"/${PN}-355.06-pax.patch
fi
# Allow user patches so they can support RC kernels and whatever else
- eapply_user
+ epatch_user
}
src_compile() {
@@ -187,26 +193,26 @@ src_compile() {
MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake
CC="$(tc-getCC)" \
LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die
elif use kernel_linux; then
- use uvm && MAKEOPTS=-j1
+ MAKEOPTS=-j1
linux-mod_src_compile
fi
if use tools; then
- emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl clean
- emake -C "${S}"/nvidia-settings-${PV}/src/libXNVCtrl \
+ emake -C "${S}"/nvidia-settings-${PV}/src \
AR="$(tc-getAR)" \
CC="$(tc-getCC)" \
+ LIBDIR="$(get_libdir)" \
RANLIB="$(tc-getRANLIB)" \
- libXNVCtrl.a
+ build-xnvctrl
+
emake -C "${S}"/nvidia-settings-${PV}/src \
- AR="$(tc-getAR)" \
CC="$(tc-getCC)" \
+ GTK3_AVAILABLE=$(usex gtk3 1 0) \
LD="$(tc-getCC)" \
LIBDIR="$(get_libdir)" \
NVML_ENABLED=0 \
NV_USE_BUNDLED_LIBJANSSON=0 \
NV_VERBOSE=1 \
- RANLIB="$(tc-getRANLIB)" \
STRIP_CMD=true
fi
}
@@ -214,7 +220,7 @@ src_compile() {
# Install nvidia library:
# the first parameter is the library to install
# the second parameter is the provided soversion
-# the third parameter is the target directory if its not /usr/lib
+# the third parameter is the target directory if it is not /usr/lib
donvidia() {
# Full path to library minus SOVER
MY_LIB="$1"
@@ -262,7 +268,7 @@ src_install() {
# pkg_preinst, see bug #491414
insinto /etc/modprobe.d
newins "${FILESDIR}"/nvidia-169.07 nvidia.conf
- use uvm && doins "${FILESDIR}"/nvidia-uvm.conf
+ doins "${FILESDIR}"/nvidia-rmmod.conf
# Ensures that our device nodes are created when not using X
exeinto "$(get_udevdir)"
@@ -298,6 +304,12 @@ src_install() {
# Xorg GLX driver
donvidia ${NV_X11}/libglx.so ${NV_SOVER} \
/usr/$(get_libdir)/opengl/nvidia/extensions
+
+ # Xorg nvidia.conf
+ if has_version '>=x11-base/xorg-server-1.16'; then
+ insinto /usr/share/X11/xorg.conf.d
+ newins {,50-}nvidia-drm-outputclass.conf
+ fi
fi
# OpenCL ICD for NVIDIA
@@ -307,6 +319,7 @@ src_install() {
fi
# Documentation
+ dohtml ${NV_DOC}/html/*
if use kernel_FreeBSD; then
dodoc "${NV_DOC}/README"
use X && doman "${NV_MAN}/nvidia-xconfig.1"
@@ -321,9 +334,6 @@ src_install() {
doman "${NV_MAN}/nvidia-cuda-mps-control.1.gz"
fi
- docinto html
- dodoc -r ${NV_DOC}/html/*
-
# Helper Apps
exeinto /opt/bin/
@@ -331,7 +341,7 @@ src_install() {
doexe ${NV_OBJ}/nvidia-xconfig
fi
- if use kernel_linux ; then
+ if use kernel_linux; then
doexe ${NV_OBJ}/nvidia-cuda-mps-control
doexe ${NV_OBJ}/nvidia-cuda-mps-server
doexe ${NV_OBJ}/nvidia-debugdump
@@ -355,6 +365,7 @@ src_install() {
if use tools; then
emake -C "${S}"/nvidia-settings-${PV}/src/ \
DESTDIR="${D}" \
+ GTK3_AVAILABLE=$(usex gtk3 1 0) \
LIBDIR="${D}/usr/$(get_libdir)" \
PREFIX=/usr \
NV_USE_BUNDLED_LIBJANSSON=0 \
@@ -382,16 +393,13 @@ src_install() {
exeinto /etc/X11/xinit/xinitrc.d
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
-
fi
dobin ${NV_OBJ}/nvidia-bug-report.sh
- #doenvd "${FILESDIR}"/50nvidia-prelink-blacklist
-
- if has_multilib_profile && use multilib ; then
+ if has_multilib_profile && use multilib; then
local OABI=${ABI}
- for ABI in $(get_install_abis) ; do
+ for ABI in $(get_install_abis); do
src_install-libs
done
ABI=${OABI}
@@ -411,48 +419,59 @@ src_install-libs() {
local CL_ROOT="/usr/$(get_libdir)/OpenCL/vendors/nvidia"
local libdir=${NV_OBJ}
- if use kernel_linux && has_multilib_profile && \
- [[ ${ABI} == "x86" ]] ; then
+ if use kernel_linux && has_multilib_profile && [[ ${ABI} == "x86" ]];
then
libdir=${NV_OBJ}/32
fi
if use X; then
- # The GLX libraries
- donvidia ${libdir}/libEGL.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libGL.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}
- donvidia ${libdir}/libnvidia-eglcore.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-glcore.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-glsi.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-ifr.so ${NV_SOVER}
+ NV_GLX_LIBRARIES=(
+ "libEGL.so 1 ${GL_ROOT}"
+ "libEGL_nvidia.so 0 ${GL_ROOT}"
+ "libGL.so ${NV_SOVER} ${GL_ROOT}"
+ "libGLESv1_CM.so ${NV_SOVER} ${GL_ROOT}"
+ "libGLdispatch.so 0 ${GL_ROOT}"
+ "libOpenCL.so 1.0.0 ${CL_ROOT}"
+ "libOpenGL.so 0 ${GL_ROOT}"
+ "libcuda.so ${NV_SOVER}"
+ "libnvcuvid.so ${NV_SOVER}"
+ "libnvidia-compiler.so ${NV_SOVER}"
+ "libnvidia-eglcore.so ${NV_SOVER}"
+ "libnvidia-encode.so ${NV_SOVER}"
+ "libnvidia-fbc.so ${NV_SOVER}"
+ "libnvidia-glcore.so ${NV_SOVER}"
+ "libnvidia-glsi.so ${NV_SOVER}"
+ "libnvidia-ifr.so ${NV_SOVER}"
+ "libnvidia-opencl.so ${NV_SOVER}"
+ "libvdpau.so ${NV_SOVER} ${GL_ROOT}"
+ "libvdpau_nvidia.so ${NV_SOVER}"
+ "libvdpau_trace.so ${NV_SOVER} ${GL_ROOT}"
+ )
+ if use kernel_linux && has_multilib_profile && [[ ${ABI} ==
"amd64" ]];
+ then
+ NV_GLX_LIBRARIES+=( "libnvidia-wfb.so ${NV_SOVER}" )
+ fi
+
if use kernel_FreeBSD; then
- donvidia ${libdir}/libnvidia-tls.so ${NV_SOVER}
- else
- donvidia ${libdir}/tls/libnvidia-tls.so ${NV_SOVER}
+ NV_GLX_LIBRARIES+=( "libnvidia-tls.so ${NV_SOVER}" )
+ fi
+
+ if use kernel_linux; then
+ NV_GLX_LIBRARIES+=(
+ "libnvidia-ml.so ${NV_SOVER}"
+ "tls/libnvidia-tls.so ${NV_SOVER}"
+ )
fi
- # VDPAU
- donvidia ${libdir}/libvdpau_nvidia.so ${NV_SOVER}
+ for NV_LIB in "${NV_GLX_LIBRARIES[@]}"; do
+ donvidia ${libdir}/${NV_LIB}
+ done
- # GLES v2 libraries
+ # GLES v2 library is special
insinto ${GL_ROOT}
doexe ${libdir}/libGLESv2.so.${PV}
dosym libGLESv2.so.${PV} ${GL_ROOT}/libGLESv2.so.2
dosym libGLESv2.so.2 ${GL_ROOT}/libGLESv2.so
fi
-
- # NVIDIA monitoring library
- if use kernel_linux ; then
- donvidia ${libdir}/libnvidia-ml.so ${NV_SOVER}
- fi
-
- # CUDA & OpenCL
- if use kernel_linux; then
- donvidia ${libdir}/libcuda.so ${NV_SOVER}
- donvidia ${libdir}/libnvidia-compiler.so ${NV_SOVER}
- donvidia ${libdir}/libOpenCL.so 1.0.0 ${CL_ROOT}
- donvidia ${libdir}/libnvidia-opencl.so ${NV_SOVER}
- fi
}
pkg_preinst() {
@@ -473,11 +492,11 @@ 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
+ 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
+ if [ -e "${ROOT}"/etc/env.d/09nvidia ]; then
rm -f "${ROOT}"/etc/env.d/09nvidia
fi
}