Index: head/emulators/open-vm-tools/Makefile =================================================================== --- head/emulators/open-vm-tools/Makefile (revision 525443) +++ head/emulators/open-vm-tools/Makefile (revision 525444) @@ -1,94 +1,94 @@ # Created by: mbr@FreeBSD.org # $FreeBSD$ PORTNAME= open-vm-tools PORTVERSION= ${RELEASE_VER} DISTVERSIONPREFIX= stable- -PORTREVISION= 2 +PORTREVISION= 3 PORTEPOCH= 2 CATEGORIES= emulators MAINTAINER= jpaetzel@FreeBSD.org COMMENT?= Open VMware tools for FreeBSD VMware guests LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 i386 LIB_DEPENDS= libmspack.so:archivers/libmspack \ libdnet.so:net/libdnet RELEASE_VER= 11.0.1 BUILD_VER= 14773994 OPTIONS_DEFINE= LIBNOTIFY OPENSSL X11 OPTIONS_DEFAULT= LIBNOTIFY OPENSSL X11 OPTIONS_SUB= LIBNOTIFY_DESC= Desktop notification support X11_CONFIGURE_WITH= x gtk2 gtkmm X11_USES= gnome xorg X11_USE= xorg=ice,sm,x11,xext,xi,xinerama,xorgproto,xrandr,xrender,xtst \ gnome=gdkpixbuf2,gtk20,gtkmm24 X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 LIBNOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify OPENSSL_CONFIGURE_WITH= ssl WRKSRC_SUBDIR= open-vm-tools GNU_CONFIGURE= yes USES= autoreconf fuse gettext-runtime kmod libtool localbase pathfix pkgconfig gnome USE_GNOME= glib20 USE_GITHUB= yes GH_ACCOUNT= vmware USE_LDCONFIG= yes CPPFLAGS+= -Wno-deprecated-declarations SSP_UNSAFE= kernel module does not support ssp CONFIGURE_ARGS+= --without-icu \ --disable-vgauth \ --sysconfdir=${PREFIX}/etc CONFLICTS+= vmware-guestd[0-9]* vmware-tools[0-9]* USE_RC_SUBR= vmware-guestd vmware-kmod INSTALL_TARGET= install-strip .include .if ${PORT_OPTIONS:MX11} CONFLICTS+= open-vm-tools-nox11-[0-9]* .else CONFLICTS+= open-vm-tools-[0-9]* .endif CONFIGURE_ENV+= SYSDIR=${SRC_BASE}/sys .include post-patch: @${REINPLACE_CMD} -e "s@%%PREFIX%%@${PREFIX}@"\ ${WRKSRC}/lib/guestApp/guestApp.c post-build: cd ${WRKSRC}/modules && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers ${MKDIR} ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/input ${INSTALL_DATA} ${WRKSRC}/modules/freebsd/vmblock.ko ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers/vmblock.ko ${INSTALL_DATA} ${WRKSRC}/modules/freebsd/vmmemctl.ko ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers/vmmemctl.ko ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/scripts/vmware/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/scripts/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/tests/ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/rc.conf.d .include Index: head/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c =================================================================== --- head/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c (revision 525443) +++ head/emulators/open-vm-tools/files/patch-modules_freebsd_vmblock_vnops.c (revision 525444) @@ -1,26 +1,53 @@ --- modules/freebsd/vmblock/vnops.c.orig 2019-10-21 21:58:04 UTC +++ modules/freebsd/vmblock/vnops.c -@@ -1262,12 +1262,15 @@ struct vop_unlock_args { +@@ -532,17 +532,12 @@ struct vop_generic_args { + * Map the possible out-going vpp (Assumes that the lower layer always + * returns a VREF'ed vpp unless it gets an error.) + */ +- if (descp->vdesc_vpp_offset != VDESC_NO_OFFSET && +- !(descp->vdesc_flags & VDESC_NOMAP_VPP) && +- !error) { ++ if (descp->vdesc_vpp_offset != VDESC_NO_OFFSET && !error) { + /* + * XXX - even though some ops have vpp returned vp's, several ops + * actually vrele this before returning. We must avoid these ops. + * (This should go away when these ops are regularized.) + */ +- if (descp->vdesc_flags & VDESC_VPP_WILLRELE) { +- goto out; +- } + vppp = VOPARG_OFFSETTO(struct vnode***, descp->vdesc_vpp_offset,ap); + if (*vppp) { + /* FIXME: set proper name for the vnode */ +@@ -550,7 +545,6 @@ struct vop_generic_args { + } + } + +-out: + return error; + } + +@@ -1262,12 +1256,15 @@ struct vop_unlock_args { */ { struct vnode *vp = ap->a_vp; +#if __FreeBSD_version < 1300074 int flags = ap->a_flags; +#endif COMPAT_THREAD_VAR(td, ap->a_td); struct VMBlockNode *nn; struct vnode *lvp; int error; +#if __FreeBSD_version < 1300074 /* * If caller already holds interlock, drop it. (Per VOP_UNLOCK() API.) * Also strip LK_INTERLOCK from flags passed to lower layer. -@@ -1276,6 +1279,7 @@ struct vop_unlock_args { +@@ -1276,6 +1273,7 @@ struct vop_unlock_args { VI_UNLOCK(vp); ap->a_flags = flags &= ~LK_INTERLOCK; } +#endif nn = VPTOVMB(vp); if (nn != NULL && (lvp = VMBVPTOLOWERVP(vp)) != NULL) { error = COMPAT_VOP_UNLOCK(lvp, flags, td);