--- nvidia-driver/Makefile 2014-09-17 18:34:17.225690052 +0100 +++ nvidia-driver/Makefile 2014-09-28 14:53:20.583681914 +0100 @@ -1,7 +1,7 @@ # Created by: Stijn Hoop # $FreeBSD: head/x11/nvidia-driver/Makefile 367888 2014-09-10 20:50:31Z gerald $ -PORTNAME= nvidia-driver +PORTNAME?= nvidia-driver DISTVERSION?= 331.67 # Always try to set PORTREVISION as it can be overridden by the slave ports PORTREVISION?= 1 @@ -31,7 +31,7 @@ # hack below to universally set NVIDIA_ROOT. Also provide X11BASE value # since it is still used by legacy drivers. MAKE_ENV= NVIDIA_ROOT=${WRKSRC} X11BASE=${LOCALBASE} -SUB_FILES= pkg-deinstall pkg-install pkg-message +SUB_FILES= pkg-message DOCSDIR= ${PREFIX}/share/doc/NVIDIA_GLX-1.0 MODULESDIR= lib/xorg/modules PORTDOCS= * @@ -76,11 +76,12 @@ EXTRA_PATCHES+= ${FILESDIR}/security-patch-CVE-2012-4225 .endif -OPTIONS_DEFINE= ACPI_PM LINUX DOCS -OPTIONS_DEFAULT= LINUX +OPTIONS_DEFINE= ACPI_PM LINUX DOCS OPTIMUS +OPTIONS_DEFAULT?= LINUX ACPI_PM_DESC= ACPI Power Management support LINUX_DESC= Linux compatibility support +OPTIMUS_DESC= For use with nVIDIA Optimus .if ${NVVERSION} < 3101400 OPTIONS_DEFINE+= FREEBSD_AGP @@ -108,7 +109,9 @@ .endif .if ${PORT_OPTIONS:MLINUX} +.if !${PORT_OPTIONS:MOPTIMUS} CONFLICTS= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]* +.endif USE_LINUX= yes PLIST_SUB+= LINUX="" .else @@ -117,6 +120,15 @@ MAKE_ENV+= WITHOUT_LINUX=yes .endif +.if ${PORT_OPTIONS:MOPTIMUS} +PLIST_SUB+= NONOPT="@comment " +PLIST_SUB+= OPTIMUS="" +.else +SUB_FILES+= pkg-install pkg-deinstall +PLIST_SUB+= NONOPT="" +PLIST_SUB+= OPTIMUS="@comment " +.endif + .if ${NVVERSION} < 1952200 # ABI version is hardcoded inside the binary, so specify it explicitly here LIB_DEPENDS= libm.so.3:${PORTSDIR}/misc/compat5x @@ -231,10 +243,19 @@ .endif # Adjust installation paths of some conflicting files (shared also between # libGL and xorg-server) to ease package manager work, esp. with pkgng +.if ${PORT_OPTIONS:MOPTIMUS} + ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia_optimus:' \ + ${WRKSRC}/x11/extension/Makefile + ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia_optimus:' \ + ${WRKSRC}/lib/libGL/Makefile + ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia_optimus:' \ + ${WRKSRC}/lib/compat/libGL/Makefile +.else ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \ ${WRKSRC}/x11/extension/Makefile ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ ${WRKSRC}/lib/libGL/Makefile +.endif # Do not execute afterinstall target (prevent automatic module registration # and "smart" installation of conflicting files heuristics) ${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile --- nvidia-driver/pkg-plist 2014-08-06 16:37:14.647441703 +0100 +++ nvidia-driver/pkg-plist 2014-09-28 14:58:27.094660801 +0100 @@ -1,7 +1,10 @@ bin/nvidia-bug-report.sh -lib/.nvidia/libGL.so -lib/.nvidia/libGL.so.1 -@dirrm lib/.nvidia +%%NONOPT%%lib/.nvidia/libGL.so +%%NONOPT%%lib/.nvidia/libGL.so.1 +%%NONOPT%%@dirrm lib/.nvidia +%%OPTIMUS%%lib/.nvidia_optimus/libGL.so +%%OPTIMUS%%lib/.nvidia_optimus/libGL.so.1 +%%OPTIMUS%%@dirrm lib/.nvidia_optimus lib/libEGL.so lib/libEGL.so.1 lib/libGLESv1_CM.so @@ -26,18 +29,24 @@ lib/vdpau/libvdpau_nvidia.so.1 @dirrmtry lib/vdpau %%MODULESDIR%%/drivers/nvidia_drv.so -%%MODULESDIR%%/extensions/.nvidia/libglx.so -%%MODULESDIR%%/extensions/.nvidia/libglx.so.1 +%%NONOPT%%%%MODULESDIR%%/extensions/.nvidia/libglx.so +%%NONOPT%%%%MODULESDIR%%/extensions/.nvidia/libglx.so.1 +%%OPTIMUS%%%%MODULESDIR%%/extensions/.nvidia_optimus/libglx.so +%%OPTIMUS%%%%MODULESDIR%%/extensions/.nvidia_optimus/libglx.so.1 %%MODULESDIR%%/libnvidia-wfb.so.1 -@dirrm %%MODULESDIR%%/extensions/.nvidia +%%NONOPT%%@dirrm %%MODULESDIR%%/extensions/.nvidia +%%OPTIMUS%%@dirrm %%MODULESDIR%%/extensions/.nvidia_optimus @dirrmtry %%MODULESDIR%%/drivers @cwd /%%KMODDIR%% nvidia.ko %%LINUX%%@cwd %%LINUXBASE%% %%LINUX%%usr/lib/libEGL.so.%%SHLIB_VERSION%% %%LINUX%%usr/lib/libEGL.so.1 -%%LINUX%%usr/lib/libGL.so.%%SHLIB_VERSION%% -%%LINUX%%usr/lib/libGL.so.1 +%%LINUX%%%%NONOPT%%usr/lib/libGL.so.%%SHLIB_VERSION%% +%%LINUX%%%%NONOPT%%usr/lib/libGL.so.1 +%%LINUX%%%%OPTIMUS%%usr/lib/.nvidia_optimus/libGL.so.%%SHLIB_VERSION%% +%%LINUX%%%%OPTIMUS%%usr/lib/.nvidia_optimus/libGL.so.1 +%%LINUX%%%%OPTIMUS%%@dirrm usr/lib/.nvidia_optimus %%LINUX%%usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%% %%LINUX%%usr/lib/libGLESv1_CM.so.1 %%LINUX%%usr/lib/libGLESv2.so.%%SHLIB_VERSION%%