diff --git a/nvidia-drivers-375.10-r1.ebuild b/nvidia-drivers-375.10-r1.ebuild index 7c86eb1..97c27c5 100644 --- a/nvidia-drivers-375.10-r1.ebuild +++ b/nvidia-drivers-375.10-r1.ebuild @@ -31,7 +31,7 @@ SRC_URI=" LICENSE="GPL-2 NVIDIA-r2" SLOT="0/${PV%.*}" KEYWORDS="-* ~amd64 ~x86 ~amd64-fbsd ~x86-fbsd" -RESTRICT="bindist mirror" +RESTRICT="bindist mirror kernel_FreeBSD? ( strip )" EMULTILIB_PKG="true" IUSE="acpi compat +driver gtk3 kernel_FreeBSD kernel_linux +kms multilib pax_kernel static-libs +tools uvm wayland +X" @@ -174,11 +174,11 @@ pkg_setup() { src_prepare() { if use tools; then - cp "${DISTDIR}"/nvml.h-${PV} "${S}"/nvidia-settings-${PV}/src/nvml.h || die - sed -i -e 's|-lnvidia-ml|-L../../ &|g' nvidia-settings-${PV}/src/Makefile || die + cp "${DISTDIR}"/nvml.h-${PV} "${WORKDIR}"/nvidia-settings-${PV}/src/nvml.h || die + sed -i -e 's|-lnvidia-ml|-L../../ &|g' "${WORKDIR}"/nvidia-settings-${PV}/src/Makefile || die fi - eapply "${FILESDIR}"/${P}-profiles-rc.patch + use kernel_linux && eapply "${FILESDIR}"/${P}-profiles-rc.patch if use pax_kernel; then ewarn "Using PAX patches is not supported. You will be asked to" @@ -198,14 +198,14 @@ src_compile() { cd "${NV_SRC}" if use kernel_FreeBSD; then - MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake CC="$(tc-getCC)" \ - LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die + MAKEOPTS=-j1 MAKE="$(get_bmake)" CFLAGS="-Wno-sign-compare" emake \ + CC="$(tc-getCC)" LD="$(tc-getLD)" LDFLAGS="$(raw-ldflags)" || die elif use driver && use kernel_linux; then MAKEOPTS=-j1 linux-mod_src_compile fi if use tools; then - emake -C "${S}"/nvidia-settings-${PV}/src \ + emake -C "${WORKDIR}"/nvidia-settings-${PV}/src \ AR="$(tc-getAR)" \ CC="$(tc-getCC)" \ LIBDIR="$(get_libdir)" \ @@ -214,7 +214,7 @@ src_compile() { DO_STRIP= \ build-xnvctrl - emake -C "${S}"/nvidia-settings-${PV}/src \ + emake -C "${WORKDIR}"/nvidia-settings-${PV}/src \ CC="$(tc-getCC)" \ GTK3_AVAILABLE=$(usex gtk3 1 0) \ LD="$(tc-getCC)" \ @@ -281,23 +281,20 @@ src_install() { newexe "${FILESDIR}"/nvidia-udev.sh-r1 nvidia-udev.sh udev_newrules "${FILESDIR}"/nvidia.udev-rule 99-nvidia.rules elif use kernel_FreeBSD; then - if use x86-fbsd; then - insinto /boot/modules - doins "${S}/src/nvidia.kld" - fi - exeinto /boot/modules - doexe "${S}/src/nvidia.ko" + doexe "${S}/src/nvidia/nvidia.ko" + doexe "${S}/src/nvidia-modeset/nvidia-modeset.ko" fi - # NVIDIA kernel <-> userspace driver config lib - donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} + # Linux only function. + if use kernel_linux; then + # NVIDIA kernel <-> userspace driver config lib + donvidia ${NV_OBJ}/libnvidia-cfg.so.${NV_SOVER} - # NVIDIA framebuffer capture library - donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER} + # NVIDIA framebuffer capture library + donvidia ${NV_OBJ}/libnvidia-fbc.so.${NV_SOVER} - # NVIDIA video encode/decode <-> CUDA - if use kernel_linux; then + # NVIDIA video encode/decode <-> CUDA donvidia ${NV_OBJ}/libnvcuvid.so.${NV_SOVER} donvidia ${NV_OBJ}/libnvidia-encode.so.${NV_SOVER} fi @@ -312,7 +309,7 @@ src_install() { /usr/$(get_libdir)/opengl/nvidia/extensions # Xorg nvidia.conf - if has_version '>=x11-base/xorg-server-1.16'; then + if use kernel_linux && has_version '>=x11-base/xorg-server-1.16'; then insinto /usr/share/X11/xorg.conf.d newins {,50-}nvidia-drm-outputclass.conf fi @@ -343,7 +340,7 @@ src_install() { # Helper Apps exeinto /opt/bin/ - if use X; then + if use kernel_linux && use X; then doexe ${NV_OBJ}/nvidia-xconfig insinto /etc/vulkan/icd.d @@ -372,7 +369,7 @@ src_install() { fi if use tools; then - emake -C "${S}"/nvidia-settings-${PV}/src/ \ + emake -C "${WORKDIR}"/nvidia-settings-${PV}/src/ \ DESTDIR="${D}" \ GTK3_AVAILABLE=$(usex gtk3 1 0) \ LIBDIR="${D}/usr/$(get_libdir)" \ @@ -383,18 +380,26 @@ src_install() { install if use static-libs; then - dolib.a "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a + dolib.a "${WORKDIR}"/nvidia-settings-${PV}/src/libXNVCtrl/libXNVCtrl.a insinto /usr/include/NVCtrl - doins "${S}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h + doins "${WORKDIR}"/nvidia-settings-${PV}/src/libXNVCtrl/*.h fi insinto /usr/share/nvidia/ - doins nvidia-application-profiles-${PV}-key-documentation + if use kernel_FreeBSD; then + doins ${NV_DOC}/nvidia-application-profiles-key-documentation + else + doins nvidia-application-profiles-${PV}-key-documentation + fi insinto /etc/nvidia - newins \ - nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc + if use kernel_FreeBSD; then + doins ${NV_OBJ}/nvidia-application-profiles-rc + else + newins \ + nvidia-application-profiles-${PV}-rc nvidia-application-profiles-rc + fi # There is no icon in the FreeBSD tarball. use kernel_FreeBSD || \ @@ -437,29 +442,12 @@ src_install-libs() { if use X; then NV_GLX_LIBRARIES=( "libEGL.so.1 ${GL_ROOT}" - "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}" - "libGL.so.$(usex compat ${NV_SOVER} 1.0.0) ${GL_ROOT}" + "libGL.so.${NV_SOVER} ${GL_ROOT}" "libGLESv1_CM.so.1 ${GL_ROOT}" - "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}" "libGLESv2.so.2 ${GL_ROOT}" - "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}" - "libGLX.so.0 ${GL_ROOT}" - "libGLX_nvidia.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-fatbinaryloader.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}" - "libnvidia-ptxjitcompiler.so.${NV_SOVER}" "libvdpau_nvidia.so.${NV_SOVER}" ) @@ -485,6 +473,23 @@ src_install-libs() { if use kernel_linux; then NV_GLX_LIBRARIES+=( + "libEGL_nvidia.so.${NV_SOVER} ${GL_ROOT}" + "libGLESv1_CM_nvidia.so.${NV_SOVER} ${GL_ROOT}" + "libGLESv2_nvidia.so.${NV_SOVER} ${GL_ROOT}" + "libGLX.so.0 ${GL_ROOT}" + "libGLX_nvidia.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-encode.so.${NV_SOVER}" + "libnvidia-fatbinaryloader.so.${NV_SOVER}" + "libnvidia-fbc.so.${NV_SOVER}" + "libnvidia-ifr.so.${NV_SOVER}" + "libnvidia-opencl.so.${NV_SOVER}" + "libnvidia-ptxjitcompiler.so.${NV_SOVER}" "libnvidia-ml.so.${NV_SOVER}" "tls/libnvidia-tls.so.${NV_SOVER}" )