diff --git a/x11-drivers/xf86-video-vmware/Makefile b/x11-drivers/xf86-video-vmware/Makefile index 281ce12c8171..cf98b79be07b 100644 --- a/x11-drivers/xf86-video-vmware/Makefile +++ b/x11-drivers/xf86-video-vmware/Makefile @@ -1,24 +1,21 @@ PORTNAME= xf86-video-vmware -PORTVERSION= 13.3.0 -PORTREVISION= 9 +PORTVERSION= 13.4.0 CATEGORIES= x11-drivers MAINTAINER= x11@FreeBSD.org COMMENT= X.Org vmware display driver WWW= https://www.x.org/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 ONLY_FOR_ARCHS_REASON= vmware gfx protocol is only supported on x86-compatible architectures -USES= xorg-cat:driver +LIB_DEPENDS= libdrm.so:graphics/libdrm -LIB_DEPENDS+= libdrm.so:graphics/libdrm \ - libxatracker.so:graphics/mesa-gallium-xa +USES= tar:xz xorg-cat:driver -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share CONFIGURE_ARGS= --without-libudev .include diff --git a/x11-drivers/xf86-video-vmware/distinfo b/x11-drivers/xf86-video-vmware/distinfo index a623c83f9177..56bb54c8db57 100644 --- a/x11-drivers/xf86-video-vmware/distinfo +++ b/x11-drivers/xf86-video-vmware/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1530671418 -SHA256 (xorg/driver/xf86-video-vmware-13.3.0.tar.bz2) = 47971924659e51666a757269ad941a059ef5afe7a47b5101c174a6022ac4066c -SIZE (xorg/driver/xf86-video-vmware-13.3.0.tar.bz2) = 473527 +TIMESTAMP = 1778911707 +SHA256 (xorg/driver/xf86-video-vmware-13.4.0.tar.xz) = aed31ee5ed5ecc6e2226705383e7ad06f7602c1376a295305f376b17af3eb81a +SIZE (xorg/driver/xf86-video-vmware-13.4.0.tar.xz) = 416296 diff --git a/x11-drivers/xf86-video-vmware/files/patch-vmwgfx_vmwgfx__dri2.c b/x11-drivers/xf86-video-vmware/files/patch-vmwgfx_vmwgfx__dri2.c index 1c3b51ba3d23..8b48a8c20dcc 100644 --- a/x11-drivers/xf86-video-vmware/files/patch-vmwgfx_vmwgfx__dri2.c +++ b/x11-drivers/xf86-video-vmware/files/patch-vmwgfx_vmwgfx__dri2.c @@ -1,44 +1,32 @@ ---- vmwgfx/vmwgfx_dri2.c.orig 2018-05-17 07:42:24 UTC +--- vmwgfx/vmwgfx_dri2.c.orig 2023-01-24 02:52:01 UTC +++ vmwgfx/vmwgfx_dri2.c -@@ -413,8 +413,7 @@ xorg_dri2_init(ScreenPtr pScreen) - modesettingPtr ms = modesettingPTR(pScrn); - DRI2InfoRec dri2info; - int major, minor; -- char fdPath[VMWGFX_FD_PATH_LEN]; -- ssize_t numChar; -+ const char *dev_name; - - memset(&dri2info, 0, sizeof(dri2info)); - -@@ -430,20 +429,13 @@ xorg_dri2_init(ScreenPtr pScreen) - dri2info.fd = ms->fd; - dri2info.driverName = "vmwgfx"; - -- /* -- * This way of obtaining the DRM device name is a bit -- * os-specific. It would be better to obtain it from -- * drmOpen. Currently this works only for Linux. -- */ -- memset(fdPath, 0, VMWGFX_FD_PATH_LEN); -- snprintf(fdPath, VMWGFX_FD_PATH_LEN - 1, "/proc/self/fd/%d", ms->fd); -- numChar = readlink(fdPath, ms->dri2_device_name, VMWGFX_DRI_DEVICE_LEN); -- if (numChar <= 0 || numChar >= VMWGFX_DRI_DEVICE_LEN) { -+ dev_name = drmGetDeviceNameFromFd2(ms->fd); -+ if (!dev_name) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Could not find the drm device name. Disabling dri2.\n"); - return FALSE; - } -- ms->dri2_device_name[numChar] = 0; +@@ -442,18 +442,13 @@ xorg_dri2_init(ScreenPtr pScreen) + * os-specific. Currently this works only for Linux. + */ + { +- char fdPath[VMWGFX_FD_PATH_LEN]; +- ssize_t numChar; +- +- memset(fdPath, 0, VMWGFX_FD_PATH_LEN); +- snprintf(fdPath, VMWGFX_FD_PATH_LEN - 1, "/proc/self/fd/%d", ms->fd); +- numChar = readlink(fdPath, ms->dri2_device_name, VMWGFX_DRI_DEVICE_LEN); +- if (numChar <= 0 || numChar >= VMWGFX_DRI_DEVICE_LEN) { ++ dev_name = drmGetDeviceNameFromFd2(ms->fd); ++ if (!dev_name) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "Could not find the drm device name. Disabling dri2.\n"); + return FALSE; + } +- ms->dri2_device_name[numChar] = 0; + strncpy(ms->dri2_device_name, dev_name, VMWGFX_DRI_DEVICE_LEN); + } + #endif dri2info.deviceName = ms->dri2_device_name; - xf86DrvMsg(pScrn->scrnIndex, X_INFO, - "Path of drm device is \"%s\".\n", ms->dri2_device_name); -@@ -466,6 +458,7 @@ xorg_dri2_init(ScreenPtr pScreen) +@@ -478,6 +473,7 @@ xorg_dri2_init(ScreenPtr pScreen) dri2info.AuthMagic3 = vmw_dri_auth_magic3; } #endif + free(dev_name); return DRI2ScreenInit(pScreen, &dri2info); }