Archive

Posts Tagged ‘patch’

Ubuntu 9.04 with VMware-server-2.0.1-156745

2009/05/26 3 comments

I have used VMware for some years. There are many alternatives. I won’t get into that 😉

I always download the tar.gz file from VMware directly.

After unpacking the file and running the install script I encountered the problem vsock (German UbuntuWiki page).

Then I ran into the often reported error message: “Unable to make a vsock module that can be loaded in the running kernel”

I can confirm that patching vmware’s configuration script works with

$ uname -a
Linux golem 2.6.28-12-generic #43-Ubuntu

and
VMware-server-2.0.1-156745.i386.tar.gz

Here is the patch (mind to line breaks):

--- /usr/bin/vmware-config.pl.orig 2008-11-28 12:06:35.641054086 +0100
+++ /usr/bin/vmware-config.pl 2008-11-28 12:30:38.593304082 +0100
@@ -4121,6 +4121,11 @@
return 'no';
}
+ if ($name eq 'vsock') {
+ print wrap("VMWare config patch VSOCK!\n");
+ system(shell_string($gHelper{'mv'}) . ' -vi ' . shell_string($build_dir . '/../Module.symvers') . ' ' . shell_string($build_dir . '/vsock-only/' ));
+ }
+
print wrap('Building the ' . $name . ' module.' . "\n\n", 0);
if (system(shell_string($gHelper{'make'}) . ' -C '
. shell_string($build_dir . '/' . $name . '-only')
@@ -4143,6 +4148,10 @@
if (try_module($name, $build_dir . '/' . $name . '.o', 0, 1)) {
print wrap('The ' . $name . ' module loads perfectly into the running kernel.'
. "\n\n", 0);
+ if ($name eq 'vmci') {
+ print wrap("VMWare config patch VMCI!\n");
+ system(shell_string($gHelper{'cp'}) . ' -vi ' . shell_string($build_dir.'/vmci-only/Module.symvers') . ' ' . shell_string($build_dir . '/../'));
+ }
remove_tmp_dir($build_dir);
return 'yes';
}

Apply the patch by

sudo patch --backup -p0 < vmware-patch.txt

See my short shell script in this post on how applying a patch file works.

Advertisements
Categories: IT, linux, windows Tags: , , , ,

Creating and applying a patch file

2009/05/21 1 comment

This is a simple example shell script demonstrating how to apply a patch file.

#!/bin/sh
#
# Description: Simple demo of creating and
# applying a patch file.
#
# Author: draptik
#
## TODO: Make sure you don’t have a directory by
## this name
DEMODIR=”$HOME/tmp/diff-patch-demo-draptik”
ORIGDIR=”$DEMODIR/original-stuff”
APPLYDIR=”$DEMODIR/patch-usage”
#
## Cleanup before use
rm -rf “$DEMODIR”
mkdir “$DEMODIR”
cd “$DEMODIR”
#
## Create directories
mkdir $ORIGDIR
mkdir $APPLYDIR
#
## Switch directory
cd $ORIGDIR
#
## Create original file (the file you want to patch)
ORIGCODE=”mycode.txt”
echo “This is the old content” > $ORIGCODE
## Create file with your changes
NEWCODE=”mycode.new.txt”
echo “THIS IS THE NEW CONTENT” > $NEWCODE
#
## ============================
# 1. CREATE A PATCH
## ============================
#
## Make a diff between the files and save the
## result to $PATCHFILE
##
## You can use different diff options:
## “-u” (unified)
## OR
## “-c” (context).
##
## The “-u” option is specific to GNU.
## PDTODO: Write about different diff formats.
PATCHFILE=”patch-mycode”
echo “”
echo “***************************”
echo “*** YOU ARE NOW IN FOLDER: \”$PWD\””
echo “*** DIFF BETWEEN\n***\t\”$PWD/$ORIGCODE\”\n*** AND\n***\t\”$PWD/$NEWCODE\”:”
echo “***************************”
diff -u $ORIGCODE $NEWCODE | tee $PATCHFILE
#
## Switch directory
cd “$DEMODIR”
#
## Copy the unpatched original file ($ORIGCODE) and
## the $PATCHFILE to different directory ($APPLYDIR).
cp $ORIGDIR/$ORIGCODE $APPLYDIR
cp $ORIGDIR/$PATCHFILE $APPLYDIR
#
#
## ============================
# APPLY A PATCH
## ============================
#
## Apply the patch to a copy of the original file
##
## The “–backup” option will create a file
## “$ORIGCODE.orig” as backup.
## You can drop this option.
##
cd $APPLYDIR
echo “”
echo “***************************”
echo “*** YOU ARE NOW IN FOLDER: \”$PWD\” …”
echo “*** NOW PATCHING WITH COMMAND \”patch –backup -p0 < $PATCHFILE\"..." echo "***************************" patch --backup -p0 < $PATCHFILE ## patch -p0 < $PATCHFILE # ## Show that the file has been patched correctly: cd .. echo "" echo "****************************" echo "*** YOU ARE NOW IN FOLDER: \"$PWD\"" echo "*** DIFF BETWEEN\n***\t\"$ORIGDIR/$ORIGCODE\"\n*** AND\n***\t\"$APPLYDIR/$NEWCODE\":" echo "****************************" diff -u $ORIGDIR/$ORIGCODE $APPLYDIR/$ORIGCODE [/sourcecode]

Categories: IT, linux Tags: , , , ,