aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/open-vm-tools/open-vm-tools.inc134
-rw-r--r--config/open-vm-tools/open-vm-tools.xml48
2 files changed, 158 insertions, 24 deletions
diff --git a/config/open-vm-tools/open-vm-tools.inc b/config/open-vm-tools/open-vm-tools.inc
new file mode 100644
index 00000000..3a42896d
--- /dev/null
+++ b/config/open-vm-tools/open-vm-tools.inc
@@ -0,0 +1,134 @@
+<?php
+
+function open_vm_tools_install() {
+
+ $vmware_guestd = <<<EOF
+#!/bin/sh
+#
+# PROVIDE: vmware-guestd
+# REQUIRE: DAEMON
+# BEFORE: LOGIN
+
+. /etc/rc.subr
+
+# Global
+checkvm_cmd="/usr/local/bin/vmware-checkvm > /dev/null"
+
+# VMware guest daemon
+name="vmware_guestd"
+rcvar=`set_rcvar`
+start_precmd="\${checkvm_cmd}"
+unset start_cmd
+stop_precmd="\${checkvm_cmd}"
+unset stop_cmd
+command="/usr/local/sbin/vmware-guestd"
+command_args="--halt-command '/sbin/shutdown -p now' >/dev/null 2>&1"
+pidfile="/var/run/\${name}.pid"
+
+load_rc_config \$name
+vmware_guestd_enable="YES"
+vmware_guestd_flags="--background \${pidfile}"
+run_rc_command "\$1"
+
+EOF
+
+ $vmware_kmod = <<<EOF
+#!/bin/sh
+#
+# PROVIDE: vmware-kmod
+# REQUIRE: FILESYSTEMS
+# BEFORE: netif
+
+. /etc/rc.subr
+
+# Global
+checkvm_cmd="/usr/local/bin/vmware-checkvm > /dev/null"
+
+# Functions
+vmware_guest_vmmemctl_start()
+{
+ echo 'Loading vmmemctl kernel module.'
+ kldload /usr/local/lib/vmware-tools/modules/drivers/vmmemctl.ko >/dev/null 2>&1
+}
+vmware_guest_vmxnet_start()
+{
+ echo 'Loading vmxnet kernel module.'
+ kldload /usr/local/lib/vmware-tools/modules/drivers/vmxnet.ko >/dev/null 2>&1
+}
+vmware_guest_vmblock_start()
+{
+ echo 'Loading vmblock kernel module.'
+ kldload /usr/local/lib/vmware-tools/modules/drivers/vmblock.ko >/dev/null 2>&1
+}
+vmware_guest_vmhgfs_start()
+{
+ echo 'Loading vmhgfs kernel module.'
+ kldload /usr/local/lib/vmware-tools/modules/drivers/vmhgfs.ko >/dev/null 2>&1
+}
+
+# VMware kernel module: vmmemctl
+name="vmware_guest_vmmemctl"
+rcvar=`set_rcvar`
+start_precmd="\${checkvm_cmd}"
+start_cmd="vmware_guest_vmmemctl_start"
+stop_precmd="\${checkvm_cmd}"
+stop_cmd=":"
+
+load_rc_config \$name
+vmware_guest_vmmemctl_enable="NO"
+vmware_guest_vmmemctl_enable="\$vmware_guest_kmod_enable"
+run_rc_command "\$1"
+
+# VMware kernel module: vmxnet
+name="vmware_guest_vmxnet"
+rcvar=`set_rcvar`
+start_precmd="\${checkvm_cmd}"
+start_cmd="vmware_guest_vmxnet_start"
+stop_precmd="\${checkvm_cmd}"
+stop_cmd=":"
+
+load_rc_config \$name
+vmware_guest_vmxnet_enable="NO"
+run_rc_command "\$1"
+
+# VMware kernel module: vmblock
+name="vmware_guest_vmblock"
+rcvar=`set_rcvar`
+start_precmd="\${checkvm_cmd}"
+start_cmd="vmware_guest_vmblock_start"
+stop_precmd="\${checkvm_cmd}"
+stop_cmd=":"
+
+load_rc_config \$name
+vmware_guest_vmblock_enable="NO"
+run_rc_command "\$1"
+
+# VMware kernel module: vmhgfs
+name="vmware_guest_vmhgfs"
+rcvar=`set_rcvar`
+start_precmd="\${checkvm_cmd}"
+start_cmd="vmware_guest_vmhgfs_start"
+stop_precmd="\${checkvm_cmd}"
+stop_cmd=":"
+
+load_rc_config \$name
+vmware_guest_vmhgfs_enable="NO"
+run_rc_command "\$1"
+
+EOF
+
+ $fd = fopen("/usr/local/etc/rc.d/vmware-guestd.sh", "w");
+ if(!$fd)
+ die("Could not open /usr/local/etc/rc.d/vmware-guestd.sh or writing");
+ fwrite($fd, $vmware_guestd);
+ fclose($fd);
+
+ $fd = fopen("/usr/local/etc/rc.d/vmware-kmod.sh", "w");
+ if(!$fd)
+ die("Could not open /usr/local/etc/rc.d/vmware-kmod.sh or writing");
+ fwrite($fd, $vmware_kmod);
+ fclose($fd);
+
+}
+
+?> \ No newline at end of file
diff --git a/config/open-vm-tools/open-vm-tools.xml b/config/open-vm-tools/open-vm-tools.xml
index 5d157f09..e393edad 100644
--- a/config/open-vm-tools/open-vm-tools.xml
+++ b/config/open-vm-tools/open-vm-tools.xml
@@ -4,20 +4,19 @@
<packagegui>
<copyright>
<![CDATA[
-/* $Id$ */
-/* ========================================================================== */
-/*
- open-vm-tools.xml
- part of pfSense (http://www.pfSense.org)
- Copyright (C) 2008 BSD Perimeter LLC
- All rights reserved.
+ /* ========================================================================== */
+ /*
+ open-vm-tools.xml
+ part of pfSense (http://www.pfSense.org)
+ Copyright (C) 2008 BSD Perimeter LLC
+ All rights reserved.
- Based on m0n0wall (http://m0n0.ch/wall)
- Copyright (C) 2003-2008 Manuel Kasper <mk@neon1.net>.
- All rights reserved.
- */
-/* ========================================================================== */
-/*
+ Based on m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2008 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+ */
+ /* ========================================================================== */
+ /*
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
@@ -42,23 +41,24 @@
/* ========================================================================== */
]]>
</copyright>
- <description>Describe your package here</description>
- <requirements>Describe your package requirements here</requirements>
- <faq>Currently there are no FAQ items provided.</faq>
<name>open-vm-tools</name>
<version>102166_7</version>
<title>Open VM Tools</title>
+ <additional_files_needed>
+ <prefix>/usr/local/pkg/</prefix>
+ <chmod>0644</chmod>
+ <item>http://www.pfsense.com/packages/config/open-vm-tools/open-vm-tools.inc</item>
+ </additional_files_needed>
<custom_add_php_command>
</custom_add_php_command>
<custom_php_install_command>
- conf_mount_rw();
- config_lock();
- exec("pkg_add -r ");
- conf_mount_ro();
- config_unlock();
- /usr/local/etc/rc.d/vmware-guestd.sh start
- /usr/local/etc/rc.d/vmware-kmod.sh start
+ conf_mount_rw();
+ open_vm_tools_install();
+ exec("/usr/local/etc/rc.d/vmware-guestd.sh start");
+ exec("/usr/local/etc/rc.d/vmware-kmod.sh start");
+ conf_mount_ro();
</custom_php_install_command>
<custom_php_deinstall_command>
</custom_php_deinstall_command>
-</packagegui>
+ <include_file>/usr/local/pkg/open-vm-tools.inc</include_file>
+</packagegui> \ No newline at end of file