Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F110084641
D25020.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
10 KB
Referenced Files
None
Subscribers
None
D25020.diff
View Options
diff --git a/Mk/Uses/gl.mk b/Mk/Uses/gl.mk
--- a/Mk/Uses/gl.mk
+++ b/Mk/Uses/gl.mk
@@ -13,12 +13,12 @@
.if !defined(_INCLUDE_USES_GL_MK)
_INCLUDE_USES_GL_MK=yes
-_GL_egl_LIB_DEPENDS= libEGL.so:graphics/mesa-libs
-_GL_gbm_LIB_DEPENDS= libgbm.so:graphics/mesa-libs
-_GL_gl_LIB_DEPENDS= libGL.so:graphics/mesa-libs
+_GL_egl_LIB_DEPENDS= libEGL.so:graphics/${GL_DEFAULT:S/,/ /g:[1]}
+_GL_gbm_LIB_DEPENDS= libgbm.so:graphics/${GL_DEFAULT:S/,/ /g:[-1]}
+_GL_gl_LIB_DEPENDS= libGL.so:graphics/${GL_DEFAULT:S/,/ /g:[1]}
_GL_gl_USE_XORG= xorgproto
-_GL_glesv1_LIB_DEPENDS= libGLESv1_CM.so:graphics/mesa-libs
-_GL_glesv2_LIB_DEPENDS= libGLESv2.so:graphics/mesa-libs
+_GL_glesv1_LIB_DEPENDS= libGLESv1_CM.so:graphics/${GL_DEFAULT:S/,/ /g:[1]}
+_GL_glesv2_LIB_DEPENDS= libGLESv2.so:graphics/${GL_DEFAULT:S/,/ /g:[1]}
_GL_glew_LIB_DEPENDS= libGLEW.so:graphics/glew
_GL_glu_LIB_DEPENDS= libGLU.so:graphics/libGLU
_GL_glu_USE_XORG= xorgproto
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -17,7 +17,7 @@
LOCALBASE?= /usr/local
-.for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC GHOSTSCRIPT \
+.for lang in APACHE BDB COROSYNC EMACS FIREBIRD FORTRAN FPC GCC GHOSTSCRIPT GL \
IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM LUA MYSQL NINJA PERL5 \
PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY RUST SAMBA SSL TCLTK VARNISH
.if defined(${lang}_DEFAULT)
@@ -51,6 +51,8 @@
.else
GCC_DEFAULT?= 10
.endif
+# Possible values (tuple): libglvnd, mesa-libs, mesa-devel
+GL_DEFAULT?= libglvnd,mesa-libs
# Possible values: 7, 8, 9, agpl
GHOSTSCRIPT_DEFAULT?= agpl
# Possible values: 6, 6-nox11, 7, 7-nox11
diff --git a/graphics/glad/Makefile b/graphics/glad/Makefile
--- a/graphics/glad/Makefile
+++ b/graphics/glad/Makefile
@@ -16,6 +16,6 @@
CMAKE_ON= GLAD_INSTALL BUILD_SHARED_LIBS GLAD_REPRODUCIBLE
-CONFLICTS_INSTALL= mesa-libs # include/KHR/khrplatform.h, see https://github.com/Dav1dde/glad/issues/260
+CONFLICTS_INSTALL= libglvnd # include/KHR/khrplatform.h, see https://github.com/Dav1dde/glad/issues/260
.include <bsd.port.mk>
diff --git a/graphics/libglvnd/Makefile b/graphics/libglvnd/Makefile
--- a/graphics/libglvnd/Makefile
+++ b/graphics/libglvnd/Makefile
@@ -2,14 +2,12 @@
DISTVERSION= 1.3.2
CATEGORIES= graphics
-MAINTAINER= greg@unrelenting.technology
+MAINTAINER= x11@FreeBSD.org
COMMENT= GL Vendor-Neutral Dispatch library
LICENSE= APACHE20 MIT
LICENSE_COMB= multi
-CONFLICTS_INSTALL= mesa-libs # include/GL/gl.h
-
USES= localbase meson pkgconfig
USE_LDCONFIG= yes
diff --git a/graphics/mesa-devel/Makefile b/graphics/mesa-devel/Makefile
--- a/graphics/mesa-devel/Makefile
+++ b/graphics/mesa-devel/Makefile
@@ -1,6 +1,7 @@
PORTNAME= mesa
DISTVERSION= 21.1-branchpoint-3077
DISTVERSIONSUFFIX= -geb272f65715
+PORTREVISION= 1
CATEGORIES= graphics
PKGNAMESUFFIX= -devel
diff --git a/graphics/mesa-libs/Makefile b/graphics/mesa-libs/Makefile
--- a/graphics/mesa-libs/Makefile
+++ b/graphics/mesa-libs/Makefile
@@ -2,11 +2,12 @@
PORTNAME= mesa-libs
PORTVERSION= ${MESAVERSION}
+PORTREVISION= 1
CATEGORIES= graphics
COMMENT= OpenGL libraries that support GLX and EGL clients
-CONFLICTS_INSTALL= libglvnd # include/GL/gl.h
+BUILD_DEPENDS= libglvnd>0:graphics/libglvnd
OPTIONS_GROUP= PLATFORM
OPTIONS_GROUP_PLATFORM= PLATFORM_X11 PLATFORM_WAYLAND
@@ -43,6 +44,7 @@
-Degl=enabled \
-Dgbm=enabled \
-Dvulkan-drivers="" \
+ -Dglvnd=true \
-Dprefer-iris=true
# Building EGL and GBM requires a dri driver so add swrast
MESON_ARGS+= -Ddri-drivers="swrast"
@@ -72,4 +74,9 @@
.include "${MASTERDIR}/Makefile.targets"
+post-install:
+# Fallback if GLX_EXT_libglvnd is missing or vendor library doesn't exist
+ @${ECHO_CMD} "libGLX_indirect.so.0 libGLX_mesa.so.0" \
+ >${STAGEDIR}${PREFIX}/etc/libmap.d/mesa.conf
+
.include <bsd.port.post.mk>
diff --git a/graphics/mesa-libs/pkg-plist b/graphics/mesa-libs/pkg-plist
--- a/graphics/mesa-libs/pkg-plist
+++ b/graphics/mesa-libs/pkg-plist
@@ -1,41 +1,42 @@
-include/EGL/egl.h
-include/EGL/eglext.h
+etc/libmap.d/mesa.conf
+@comment include/EGL/egl.h
+@comment include/EGL/eglext.h
include/EGL/eglextchromium.h
include/EGL/eglmesaext.h
-include/EGL/eglplatform.h
-include/GL/gl.h
-include/GL/glcorearb.h
-include/GL/glext.h
-%%GLX%%include/GL/glx.h
-%%GLX%%include/GL/glxext.h
+@comment include/EGL/eglplatform.h
+@comment include/GL/gl.h
+@comment include/GL/glcorearb.h
+@comment include/GL/glext.h
+%%GLX%%@comment include/GL/glx.h
+%%GLX%%@comment include/GL/glxext.h
@comment include/GL/internal/dri_interface.h
-include/GLES/egl.h
-include/GLES/gl.h
-include/GLES/glext.h
-include/GLES/glplatform.h
-include/GLES2/gl2.h
-include/GLES2/gl2ext.h
-include/GLES2/gl2platform.h
-include/GLES3/gl3.h
-include/GLES3/gl31.h
-include/GLES3/gl32.h
-include/GLES3/gl3ext.h
-include/GLES3/gl3platform.h
-include/KHR/khrplatform.h
+@comment include/GLES/egl.h
+@comment include/GLES/gl.h
+@comment include/GLES/glext.h
+@comment include/GLES/glplatform.h
+@comment include/GLES2/gl2.h
+@comment include/GLES2/gl2ext.h
+@comment include/GLES2/gl2platform.h
+@comment include/GLES3/gl3.h
+@comment include/GLES3/gl31.h
+@comment include/GLES3/gl32.h
+@comment include/GLES3/gl3ext.h
+@comment include/GLES3/gl3platform.h
+@comment include/KHR/khrplatform.h
include/gbm.h
@comment lib/dri/swrast_dri.so
-lib/libEGL.so
-lib/libEGL.so.1
-lib/libEGL.so.1.0.0
-%%GLX%%lib/libGL.so
-%%GLX%%lib/libGL.so.1
-%%GLX%%lib/libGL.so.1.2.0
-lib/libGLESv1_CM.so
-lib/libGLESv1_CM.so.1
-lib/libGLESv1_CM.so.1.1.0
-lib/libGLESv2.so
-lib/libGLESv2.so.2
-lib/libGLESv2.so.2.0.0
+lib/libEGL_mesa.so
+lib/libEGL_mesa.so.0
+lib/libEGL_mesa.so.0.0.0
+@comment lib/libGLESv1_CM.so
+@comment lib/libGLESv1_CM.so.1
+@comment lib/libGLESv1_CM.so.1.1.0
+@comment lib/libGLESv2.so
+@comment lib/libGLESv2.so.2
+@comment lib/libGLESv2.so.2.0.0
+%%GLX%%lib/libGLX_mesa.so
+%%GLX%%lib/libGLX_mesa.so.0
+%%GLX%%lib/libGLX_mesa.so.0.0.0
lib/libgbm.so
lib/libgbm.so.1
lib/libgbm.so.1.0.0
@@ -43,9 +44,10 @@
lib/libglapi.so.0
lib/libglapi.so.0.0.0
@comment libdata/pkgconfig/dri.pc
-libdata/pkgconfig/egl.pc
+@comment libdata/pkgconfig/egl.pc
libdata/pkgconfig/gbm.pc
-%%GLX%%libdata/pkgconfig/gl.pc
-libdata/pkgconfig/glesv1_cm.pc
-libdata/pkgconfig/glesv2.pc
+%%GLX%%@comment libdata/pkgconfig/gl.pc
+@comment libdata/pkgconfig/glesv1_cm.pc
+@comment libdata/pkgconfig/glesv2.pc
@comment share/drirc.d/00-mesa-defaults.conf
+share/glvnd/egl_vendor.d/50_mesa.json
diff --git a/misc/raspberrypi-userland/Makefile b/misc/raspberrypi-userland/Makefile
--- a/misc/raspberrypi-userland/Makefile
+++ b/misc/raspberrypi-userland/Makefile
@@ -11,7 +11,7 @@
ONLY_FOR_ARCHS= armv6 armv7
-CONFLICTS_INSTALL= mesa-libs
+CONFLICTS_INSTALL= libglvnd
USES= cmake pkgconfig shebangfix
diff --git a/x11/nvidia-driver/Makefile b/x11/nvidia-driver/Makefile
--- a/x11/nvidia-driver/Makefile
+++ b/x11/nvidia-driver/Makefile
@@ -16,7 +16,7 @@
PORTNAME?= nvidia-driver
DISTVERSION?= 460.80
# Always try to set PORTREVISION as it can be overridden by the slave ports
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= x11
MASTER_SITES= NVIDIA/XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
DISTNAME= NVIDIA-FreeBSD-${ARCH_SUFX}-${DISTVERSION}
@@ -32,6 +32,7 @@
# obj/libEGL_nvidia.so.0 (see below)
.if ${NVVERSION} >= 410.057
PATCH_DEPENDS= gsed:textproc/gsed
+BUILD_DEPENDS= pkg-config:devel/pkgconf libglvnd>0:graphics/libglvnd
.endif
USES= kmod uidfix xorg
@@ -281,6 +282,7 @@
.elif ${NVVERSION} < 465.01901
${REINPLACE_CMD} -e '/lib32\/libnvidia-glvkspirv\.so/d' ${TMPPLIST}
.endif
+.if ${NVVERSION} < 410.057
# Rename some libraries and install a libmap file to resolve conflict with
# Mesa libraries.
${LN} -sf libGL-NVIDIA.so.1 \
@@ -288,7 +290,7 @@
${MV} -f ${STAGEDIR}${PREFIX}/lib/libGL.so.1 \
${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so.1
${RM} ${STAGEDIR}${PREFIX}/lib/libGL.so
-.if ${NVVERSION} >= 331.013
+. if ${NVVERSION} >= 331.013
${LN} -sf libEGL-NVIDIA.so.1 \
${STAGEDIR}${PREFIX}/lib/libEGL-NVIDIA.so
${MV} -f ${STAGEDIR}${PREFIX}/lib/libEGL.so.1 \
@@ -301,14 +303,14 @@
${MV} -f ${STAGEDIR}${PREFIX}/lib/libGLESv2.so.2 \
${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so.2
${RM} ${STAGEDIR}${PREFIX}/lib/libGLESv2.so
-.endif
-# Configuration of Nvidia as secondary GPU requires preserving Mesa libraries
-# as default implementation; a libmap must not override in this case.
-.if !defined(LIBGLDIR)
+. endif
+# Configuration of Nvidia as secondary GPU requires preserving libglvnd or mesa
+# libraries as default implementation; a libmap must not override in this case.
+. if !defined(LIBGLDIR)
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/libmap.d/
${INSTALL_DATA} ${WRKDIR}/nvidia.conf \
${STAGEDIR}${PREFIX}/etc/libmap.d/
-.else
+. else
# libgl proxies require a library path containing unrenamed lib*GL*.so
${MKDIR} ${STAGEDIR}${PREFIX}/${LIBGLDIR}
${RLN} ${STAGEDIR}${PREFIX}/lib/libGL-NVIDIA.so.1 \
@@ -317,17 +319,23 @@
${STAGEDIR}${PREFIX}/${LIBGLDIR}/libEGL.so.1
${RLN} ${STAGEDIR}${PREFIX}/lib/libGLESv2-NVIDIA.so.2 \
${STAGEDIR}${PREFIX}/${LIBGLDIR}/libGLESv2.so.2
-.endif
+. endif
# Configuration of Nvidia as secondary GPU requires preserving xorg-server's
# libglx.so and moving Nvidia's glx to where it can be found by a secondary
# Xorg instance.
# Not needed since 410.057: Nvidia driver finds libglxserver_nvidia.so instead.
-.if ${NVVERSION} < 410.057
-.if ${EXTENSIONSDIR} != ${MODULESDIR}/extensions/.nvidia
+. if ${EXTENSIONSDIR} != ${MODULESDIR}/extensions/.nvidia
${MKDIR} ${STAGEDIR}${PREFIX}/${EXTENSIONSDIR}
${MV} ${STAGEDIR}${PREFIX}/${MODULESDIR}/extensions/.nvidia/* \
${STAGEDIR}${PREFIX}/${EXTENSIONSDIR}/
-.endif
+. endif
+.else
+ ${REINPLACE_CMD} -E '/-NVIDIA/d ; \
+ /lib(Open)?E?GLX?(ESv[12](_CM)?|dispatch)?\.so/d' \
+ ${TMPPLIST}
+# Override mesa.conf if GLX_EXT_libglvnd is missing
+ @${ECHO_CMD} "libGLX_indirect.so.0 libGLX_nvidia.so.0" \
+ >${STAGEDIR}${PREFIX}/etc/libmap.d/nvidia.conf
.endif
.include <bsd.port.post.mk>
diff --git a/x11/nvidia-driver/pkg-plist b/x11/nvidia-driver/pkg-plist
--- a/x11/nvidia-driver/pkg-plist
+++ b/x11/nvidia-driver/pkg-plist
@@ -17,9 +17,9 @@
lib/libGLESv2-NVIDIA.so.2
lib/libGLESv2_nvidia.so
lib/libGLESv2_nvidia.so.2
-lib/libGLX.so
-lib/libGLX.so.0
-lib/libGLX_indirect.so.0
+%%LIBGLDIR%%/libGLX.so
+%%LIBGLDIR%%/libGLX.so.0
+@comment lib/libGLX_indirect.so.0
lib/libGLX_nvidia.so
lib/libGLX_nvidia.so.0
lib/libGLdispatch.so
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Feb 14, 10:24 AM (20 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16641158
Default Alt Text
D25020.diff (10 KB)
Attached To
Mode
D25020: graphics/mesa-libs: enable libglvnd support
Attached
Detach File
Event Timeline
Log In to Comment