ports/148068: [PATCH] emulators/open-vm-tools: enhance RC script

Frank Wall fw at moov.de
Tue Jun 22 15:40:05 UTC 2010


>Number:         148068
>Category:       ports
>Synopsis:       [PATCH] emulators/open-vm-tools: enhance RC script
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 22 15:40:05 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Frank Wall
>Release:        7.1-RELEASE-p11
>Organization:
>Environment:
FreeBSD 7.1-RELEASE-p11 FreeBSD 7.1-RELEASE-p11 #0: Fri Feb 26 19:22:31 UTC 2010     root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

>Description:
This small patch enhances (IMHO) the vmware-kmod RC script:
- add a `status` command
- make the `start` command more verbose (e.g. for debugging)
- remove (some) duplicate code

>How-To-Repeat:

>Fix:
apply the patch

Patch attached with submission follows:

--- emulators/open-vm-tools/files/vmware-kmod.sh.in.orig	2010-03-27 01:12:58.000000000 +0100
+++ emulators/open-vm-tools/files/vmware-kmod.sh.in	2010-06-22 17:16:58.000000000 +0200
@@ -13,32 +13,40 @@
 checkvm_cmd="%%PREFIX%%/bin/vmware-checkvm > /dev/null"
 
 # Functions
-vmware_guest_vmmemctl_start()
+vmware_mod_load()
 {
-	echo 'Loading vmmemctl kernel module.'
-	kldload %%PREFIX%%/lib/vmware-tools/modules/drivers/vmmemctl.ko >/dev/null 2>&1
+	echo -n "Loading $1 kernel module: "
+	kldstat -n %%PREFIX%%/lib/vmware-tools/modules/drivers/$1.ko >/dev/null 2>&1
+	if [ "$?" = "0" ]; then
+		echo "already loaded."
+	else
+		kldload %%PREFIX%%/lib/vmware-tools/modules/drivers/$1.ko >/dev/null 2>&1
+		if [ "$?" = "0" ]; then
+			echo "done."
+		else
+			echo "failed."
+		fi
+	fi
 }
-vmware_guest_vmxnet_start()
+vmware_mod_status()
 {
-	echo 'Loading vmxnet kernel module.'
-	kldload %%PREFIX%%/lib/vmware-tools/modules/drivers/vmxnet.ko >/dev/null 2>&1
-}
-vmware_guest_vmblock_start()
-{
-	echo 'Loading vmblock kernel module.'
-	kldload %%PREFIX%%/lib/vmware-tools/modules/drivers/vmblock.ko >/dev/null 2>&1
-}
-vmware_guest_vmhgfs_start()
-{
-	echo 'Loading vmhgfs kernel module.'
-	kldload %%PREFIX%%/lib/vmware-tools/modules/drivers/vmhgfs.ko >/dev/null 2>&1
+	echo -n "Checking $1 kernel module: "
+	kldstat -n %%PREFIX%%/lib/vmware-tools/modules/drivers/$1.ko >/dev/null 2>&1
+	if [ "$?" = "0" ]; then
+		echo "loaded."
+	else
+		echo "not loaded"
+	fi
 }
 
 # VMware kernel module: vmmemctl
-name="vmware_guest_vmmemctl"
+kernel_mod="vmmemctl"
+name="vmware_guest_${kernel_mod}"
 rcvar=`set_rcvar`
+extra_commands="status"
+status_cmd="vmware_mod_status ${kernel_mod}"
 start_precmd="${checkvm_cmd}"
-start_cmd="vmware_guest_vmmemctl_start"
+start_cmd="vmware_mod_load ${kernel_mod}"
 stop_precmd="${checkvm_cmd}"
 stop_cmd=":"
 
@@ -48,10 +56,13 @@
 run_rc_command "$1"
 
 # VMware kernel module: vmxnet
-name="vmware_guest_vmxnet"
+kernel_mod="vmxnet"
+name="vmware_guest_${kernel_mod}"
 rcvar=`set_rcvar`
+extra_commands="status"
+status_cmd="vmware_mod_status ${kernel_mod}"
 start_precmd="${checkvm_cmd}"
-start_cmd="vmware_guest_vmxnet_start"
+start_cmd="vmware_mod_load ${kernel_mod}"
 stop_precmd="${checkvm_cmd}"
 stop_cmd=":"
 
@@ -60,10 +71,13 @@
 run_rc_command "$1"
 
 # VMware kernel module: vmblock
-name="vmware_guest_vmblock"
+kernel_mod="vmblock"
+name="vmware_guest_${kernel_mod}"
 rcvar=`set_rcvar`
+extra_commands="status"
+status_cmd="vmware_mod_status ${kernel_mod}"
 start_precmd="${checkvm_cmd}"
-start_cmd="vmware_guest_vmblock_start"
+start_cmd="vmware_mod_load ${kernel_mod}"
 stop_precmd="${checkvm_cmd}"
 stop_cmd=":"
 
@@ -72,10 +86,13 @@
 run_rc_command "$1"
 
 # VMware kernel module: vmhgfs
-name="vmware_guest_vmhgfs"
+kernel_mod="vmhgfs"
+name="vmware_guest_${kernel_mod}"
 rcvar=`set_rcvar`
+extra_commands="status"
+status_cmd="vmware_mod_status ${kernel_mod}"
 start_precmd="${checkvm_cmd}"
-start_cmd="vmware_guest_vmhgfs_start"
+start_cmd="vmware_mod_load ${kernel_mod}"
 stop_precmd="${checkvm_cmd}"
 stop_cmd=":"
 


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list