summaryrefslogtreecommitdiff
path: root/emulators/open-vm-kmod
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/open-vm-kmod')
-rw-r--r--emulators/open-vm-kmod/Makefile30
-rw-r--r--emulators/open-vm-kmod/distinfo3
-rw-r--r--emulators/open-vm-kmod/files/patch-Makefile7
-rw-r--r--emulators/open-vm-kmod/files/patch-vmblock_vfsops.c10
-rw-r--r--emulators/open-vm-kmod/files/patch-vmmemctl_os.c24
-rw-r--r--emulators/open-vm-kmod/pkg-descr6
6 files changed, 80 insertions, 0 deletions
diff --git a/emulators/open-vm-kmod/Makefile b/emulators/open-vm-kmod/Makefile
new file mode 100644
index 000000000000..64a367bd1c98
--- /dev/null
+++ b/emulators/open-vm-kmod/Makefile
@@ -0,0 +1,30 @@
+PORTNAME= open-vm-kmod
+PORTVERSION= 12.5.0
+DISTVERSIONPREFIX= stable-
+PORTEPOCH= 2
+CATEGORIES= emulators
+
+MAINTAINER= garga@FreeBSD.org
+COMMENT= Open VMware tools for FreeBSD VMware guests ${${FLAVOR}_COMMENT}
+WWW= https://github.com/vmware/open-vm-tools
+
+LICENSE= BSD2CLAUSE GPLv2
+LICENSE_COMB= multi
+LICENSE_FILE_GPLv2= ${WRKSRC}/vmmemctl/COPYING
+LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/vmblock/COPYING
+
+ONLY_FOR_ARCHS= aarch64 amd64 i386
+
+USES= kmod uidfix
+
+USE_GITHUB= yes
+GH_ACCOUNT= vmware
+GH_PROJECT= open-vm-tools
+
+WRKSRC_SUBDIR= open-vm-tools/modules/freebsd/
+MAKE_ARGS= OVT_SOURCE_DIR=${WRKSRC:H:H:H}
+
+PLIST_FILES= ${KMODDIR}/vmblock.ko \
+ ${KMODDIR}/vmmemctl.ko
+
+.include <bsd.port.mk>
diff --git a/emulators/open-vm-kmod/distinfo b/emulators/open-vm-kmod/distinfo
new file mode 100644
index 000000000000..2f34cde2a8c0
--- /dev/null
+++ b/emulators/open-vm-kmod/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1733928741
+SHA256 (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = a52182c7e6b5df41bb317625e9d8592ecdb9db814d1c2c9b7cdb91a77f8c0640
+SIZE (vmware-open-vm-tools-stable-12.5.0_GH0.tar.gz) = 3001944
diff --git a/emulators/open-vm-kmod/files/patch-Makefile b/emulators/open-vm-kmod/files/patch-Makefile
new file mode 100644
index 000000000000..a1ac4b5af968
--- /dev/null
+++ b/emulators/open-vm-kmod/files/patch-Makefile
@@ -0,0 +1,7 @@
+--- Makefile.orig 2024-12-12 16:16:21 UTC
++++ Makefile
+@@ -0,0 +1,4 @@
++SUBDIR+= vmblock
++SUBDIR+= vmmemctl
++
++.include <bsd.subdir.mk>
diff --git a/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c b/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c
new file mode 100644
index 000000000000..97840675e338
--- /dev/null
+++ b/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c
@@ -0,0 +1,10 @@
+--- vmblock/vfsops.c.orig 2024-10-10 15:05:07 UTC
++++ vmblock/vfsops.c
+@@ -173,7 +173,6 @@ VMBlockVFSMount(struct mount *mp) // IN: mount(
+ #endif
+ error = namei(ndp);
+ if (error) {
+- NDFREE(ndp, 0);
+ uma_zfree(VMBlockPathnameZone, pathname);
+ return error;
+ }
diff --git a/emulators/open-vm-kmod/files/patch-vmmemctl_os.c b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c
new file mode 100644
index 000000000000..d096f92236c3
--- /dev/null
+++ b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c
@@ -0,0 +1,24 @@
+--- vmmemctl/os.c.orig 2024-10-10 15:05:07 UTC
++++ vmmemctl/os.c
+@@ -103,7 +103,11 @@ MALLOC_DEFINE(M_VMMEMCTL, BALLOON_NAME, "vmmemctl meta
+ #define KVA_FREE(offset, size) kva_free(offset, size)
+
+ #define KMEM_ALLOC(size) kmem_malloc(size, M_WAITOK | M_ZERO)
+-#define KMEM_FREE(offset, size) kmem_free(offset, size)
++#if __FreeBSD_version < 1400070
++ #define KMEM_FREE(offset, size) kmem_free((vm_offset_t)offset, size)
++#else
++ #define KMEM_FREE(offset, size) kmem_free(offset, size)
++#endif
+
+ /*
+ * Globals
+@@ -404,7 +408,7 @@ os_pmap_free(os_pmap *p) // IN
+ static void
+ os_pmap_free(os_pmap *p) // IN
+ {
+- KMEM_FREE((vm_offset_t)p->bitmap, p->size);
++ KMEM_FREE(p->bitmap, p->size);
+ p->size = 0;
+ p->bitmap = NULL;
+ }
diff --git a/emulators/open-vm-kmod/pkg-descr b/emulators/open-vm-kmod/pkg-descr
new file mode 100644
index 000000000000..de6677a26c1c
--- /dev/null
+++ b/emulators/open-vm-kmod/pkg-descr
@@ -0,0 +1,6 @@
+open-vm-kmod is a set of modules that enable several features in
+VMware products for better management of, and seamless user
+interactions with, guests.
+
+It includes kernel modules for enhancing the performance of virtual
+machines running FreeBSD.