--- nvidia-driver/Makefile 2015-02-04 02:33:05.862347584 +0000 +++ nvidia-driver/Makefile 2015-03-03 20:31:06.638379000 +0000 @@ -10,7 +10,7 @@ # slave ports instead (`x11/nvidia-driver-173', `x11/nvidia-driver-304', # or `x11/nvidia-driver-340'). -PORTNAME= nvidia-driver +PORTNAME?= nvidia-driver DISTVERSION?= 346.35 # Always try to set PORTREVISION as it can be overridden by the slave ports PORTREVISION?= 0 @@ -40,7 +40,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= * @@ -91,11 +91,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} < 310.014 OPTIONS_DEFINE+= FREEBSD_AGP @@ -118,15 +119,26 @@ .include .if ${PORT_OPTIONS:MLINUX} +.if !${PORT_OPTIONS:MOPTIMUS} CONFLICTS_INSTALL= linux[-_]dri-[0-9]* linux-f10-dri-[0-9]* USE_LINUX= yes PLIST_SUB+= LINUX="" +.endif .else PLIST_SUB+= LINUX="@comment " # Propagate WITHOUT_LINUX variable down to inner Makefiles 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} < 195.022 # ABI version is hardcoded inside the binary, so specify it explicitly here LIB_DEPENDS= libm.so.3:${PORTSDIR}/misc/compat5x @@ -245,16 +257,33 @@ .endif # Adjust installation paths of some conflicting files (shared also between # libGL, libEGL, libglesv2 and xorg-server) to ease package manager work. - ${REINPLACE_CMD} -e '/LIBDIR/s:xorg/modules/extensions:&/.nvidia:' \ +.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:' \ + ${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 + .if ${NVVERSION} >= 331.013 +.if ${PORT_OPTIONS:MOPTIMUS} + ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia_optimus:' \ + ${WRKSRC}/lib/libEGL/Makefile + ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia_optimus:' \ + ${WRKSRC}/lib/libGLESv2/Makefile +.else ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ ${WRKSRC}/lib/libEGL/Makefile ${REINPLACE_CMD} -e '/LIBDIR/s:lib:&/.nvidia:' \ ${WRKSRC}/lib/libGLESv2/Makefile .endif +.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-11-28 01:27:00.603678724 +0000 +++ nvidia-driver/pkg-plist 2015-03-03 20:28:02.869031000 +0000 @@ -1,12 +1,18 @@ bin/nvidia-bug-report.sh -lib/.nvidia/libGL.so -lib/.nvidia/libGL.so.1 -lib/.nvidia/libEGL.so -lib/.nvidia/libEGL.so.1 +%%NONOPT%%lib/.nvidia/libGL.so +%%NONOPT%%lib/.nvidia/libGL.so.1 +%%NONOPT%%lib/.nvidia/libEGL.so +%%NONOPT%%lib/.nvidia/libEGL.so.1 +%%OPTIMUS%%lib/.nvidia_optimus/libGL.so +%%OPTIMUS%%lib/.nvidia_optimus/libGL.so.1 +%%OPTIMUS%%lib/.nvidia_optimus/libEGL.so +%%OPTIMUS%%lib/.nvidia_optimus/libEGL.so.1 lib/libGLESv1_CM.so lib/libGLESv1_CM.so.1 -lib/.nvidia/libGLESv2.so -lib/.nvidia/libGLESv2.so.2 +%%NONOPT%%lib/.nvidia/libGLESv2.so +%%NONOPT%%lib/.nvidia/libGLESv2.so.2 +%%OPTIMUS%%lib/.nvidia_optimus/libGLESv2.so +%%OPTIMUS%%lib/.nvidia_optimus/libGLESv2.so.2 lib/libGLcore.so lib/libGLcore.so.1 lib/libXvMCNVIDIA.a @@ -24,8 +30,10 @@ lib/libvdpau_nvidia.so lib/vdpau/libvdpau_nvidia.so.1 %%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 /%%KMODDIR%%/nvidia.ko %%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.%%SHLIB_VERSION%%