summaryrefslogtreecommitdiffstats
path: root/remote/modules/vmware
diff options
context:
space:
mode:
authorDirk2014-02-21 11:16:02 +0100
committerDirk2014-02-21 11:16:02 +0100
commit1e30627c5b00884054fae7210d036e34ebe4f181 (patch)
tree6d258c5a7a2279881706f38e37921dc4557a0b8d /remote/modules/vmware
parentSetzen des Windows-Namens beim Booten aus Laufwerk B: (diff)
parent[nvidia_libs] Debug: Checkin für Joey:). (diff)
downloadtm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.gz
tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.tar.xz
tm-scripts-1e30627c5b00884054fae7210d036e34ebe4f181.zip
Merge branch 'master' of git.openslx.org:openslx-ng/tm-scripts
...
Diffstat (limited to 'remote/modules/vmware')
-rw-r--r--remote/modules/vmware/data/etc/vmware-vix/bootstrap2
-rw-r--r--remote/modules/vmware/data/etc/vmware/bootstrap12
-rw-r--r--remote/modules/vmware/data/etc/vmware/config9
l---------remote/modules/vmware/data/etc/vmware/icu1
-rw-r--r--remote/modules/vmware/data/etc/vmware/locations3
-rw-r--r--remote/modules/vmware/data/etc/vmware/usbarb.rules4
-rw-r--r--remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch11
-rw-r--r--remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch34
-rw-r--r--remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch123
-rw-r--r--remote/modules/vmware/templates/vmware/config24
-rw-r--r--remote/modules/vmware/vmware.build97
11 files changed, 282 insertions, 38 deletions
diff --git a/remote/modules/vmware/data/etc/vmware-vix/bootstrap b/remote/modules/vmware/data/etc/vmware-vix/bootstrap
new file mode 100644
index 00000000..425074de
--- /dev/null
+++ b/remote/modules/vmware/data/etc/vmware-vix/bootstrap
@@ -0,0 +1,2 @@
+BINDIR="/usr/bin"
+
diff --git a/remote/modules/vmware/data/etc/vmware/bootstrap b/remote/modules/vmware/data/etc/vmware/bootstrap
new file mode 100644
index 00000000..0cc4af90
--- /dev/null
+++ b/remote/modules/vmware/data/etc/vmware/bootstrap
@@ -0,0 +1,12 @@
+PREFIX="/usr"
+BINDIR="/usr/bin"
+SBINDIR="/usr/sbin"
+LIBDIR="/usr/lib"
+DATADIR="/usr/share"
+SYSCONFDIR="/etc"
+DOCDIR="/usr/share/doc"
+MANDIR="/usr/share/man"
+INCLUDEDIR="/usr/include"
+INITDIR="/etc"
+INITSCRIPTDIR="/etc/init.d"
+
diff --git a/remote/modules/vmware/data/etc/vmware/config b/remote/modules/vmware/data/etc/vmware/config
deleted file mode 100644
index c76cc885..00000000
--- a/remote/modules/vmware/data/etc/vmware/config
+++ /dev/null
@@ -1,9 +0,0 @@
-.encoding = "UTF-8"
-prefvmx.minVmMemPct = "100"
-prefvmx.useRecommendedLockedMemSize = "TRUE"
-libdir = "/usr/lib/vmware"
-mks.ctlAltDel.ignore = "TRUE"
-mks.fullscreen.allowScreenSaver = "TRUE"
-fullScreenSwitch.onSeparateDesktop = "TRUE"
-msg.autoAnswer = "TRUE"
-
diff --git a/remote/modules/vmware/data/etc/vmware/icu b/remote/modules/vmware/data/etc/vmware/icu
new file mode 120000
index 00000000..d1ebea7d
--- /dev/null
+++ b/remote/modules/vmware/data/etc/vmware/icu
@@ -0,0 +1 @@
+/usr/lib/vmware/icu \ No newline at end of file
diff --git a/remote/modules/vmware/data/etc/vmware/locations b/remote/modules/vmware/data/etc/vmware/locations
new file mode 100644
index 00000000..2d419546
--- /dev/null
+++ b/remote/modules/vmware/data/etc/vmware/locations
@@ -0,0 +1,3 @@
+# Empty locations file to catch downgrade
+# to WS 6.0
+# OpenSLX: No idea what above means, but better have this file... ;-)
diff --git a/remote/modules/vmware/data/etc/vmware/usbarb.rules b/remote/modules/vmware/data/etc/vmware/usbarb.rules
new file mode 100644
index 00000000..ae107c7b
--- /dev/null
+++ b/remote/modules/vmware/data/etc/vmware/usbarb.rules
@@ -0,0 +1,4 @@
+{
+ "version": 1,
+ "rules": []
+}
diff --git a/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch
new file mode 100644
index 00000000..89b3a7c6
--- /dev/null
+++ b/remote/modules/vmware/patches/vmblock__3.0-3.9__1.0-100.0.patch
@@ -0,0 +1,11 @@
+--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200
++++ b/linux/control.c 2014-02-14 15:54:59.895201379 +0100
+@@ -293,7 +293,7 @@
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch
new file mode 100644
index 00000000..e54317f9
--- /dev/null
+++ b/remote/modules/vmware/patches/vmblock__3.10__1.0-100.0.patch
@@ -0,0 +1,34 @@
+--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200
++++ b/linux/control.c 2014-02-14 16:20:18.667236035 +0100
+@@ -208,17 +208,18 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
++ /* controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+ VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
+- if (!controlProcEntry) {
++ controlProcDirEntry);*/
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps);
++ if (controlProcEntry == NULL) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+ remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL);
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
++ /*controlProcEntry->proc_fops = &ControlFileOps;*/
+ return 0;
+ }
+
+@@ -293,7 +294,7 @@
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
diff --git a/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch b/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch
new file mode 100644
index 00000000..dedb2646
--- /dev/null
+++ b/remote/modules/vmware/patches/vmblock__3.11-9.9__1.0-100.0.patch
@@ -0,0 +1,123 @@
+--- a/linux/control.c 2013-10-18 19:56:11.000000000 +0200
++++ b/linux/control.c 2014-02-14 16:20:18.667236035 +0100
+@@ -208,17 +208,18 @@
+ VMBlockSetProcEntryOwner(controlProcMountpoint);
+
+ /* Create /proc/fs/vmblock/dev */
+- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
++ /* controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
+ VMBLOCK_CONTROL_MODE,
+- controlProcDirEntry);
+- if (!controlProcEntry) {
++ controlProcDirEntry);*/
++ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps);
++ if (controlProcEntry == NULL) {
+ Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
+ remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
+ remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL);
+ return -EINVAL;
+ }
+
+- controlProcEntry->proc_fops = &ControlFileOps;
++ /*controlProcEntry->proc_fops = &ControlFileOps;*/
+ return 0;
+ }
+
+@@ -293,7 +294,7 @@
+
+ retval = i < 0 ? -EINVAL : blockOp(name, blocker);
+
+- putname(name);
++ __putname(name);
+
+ return retval;
+ }
+--- a/linux/file.c 2013-10-18 19:56:11.000000000 +0200
++++ b/linux/file.c 2014-02-14 16:20:21.455236098 +0100
+@@ -38,46 +38,6 @@
+ typedef ino_t inode_num_t;
+ #endif
+
+-/* Specifically for our filldir_t callback */
+-typedef struct FilldirInfo {
+- filldir_t filldir;
+- void *dirent;
+-} FilldirInfo;
+-
+-
+-/*
+- *----------------------------------------------------------------------------
+- *
+- * Filldir --
+- *
+- * Callback function for readdir that we use in place of the one provided.
+- * This allows us to specify that each dentry is a symlink, but pass through
+- * everything else to the original filldir function.
+- *
+- * Results:
+- * Original filldir's return value.
+- *
+- * Side effects:
+- * Directory information gets copied to user's buffer.
+- *
+- *----------------------------------------------------------------------------
+- */
+-
+-static int
+-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
+- const char *name, // IN: Dirent name
+- int namelen, // IN: len of dirent's name
+- loff_t offset, // IN: Offset
+- inode_num_t ino, // IN: Inode number of dirent
+- unsigned int d_type) // IN: Type of file
+-{
+- FilldirInfo *info = buf;
+-
+- /* Specify DT_LNK regardless */
+- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
+-}
+-
+-
+ /* File operations */
+
+ /*
+@@ -166,11 +126,10 @@
+
+ static int
+ FileOpReaddir(struct file *file, // IN
+- void *dirent, // IN
+- filldir_t filldir) // IN
++ struct dir_context *ctx) // IN
+ {
+ int ret;
+- FilldirInfo info;
++
+ struct file *actualFile;
+
+ if (!file) {
+@@ -184,12 +143,10 @@
+ return -EINVAL;
+ }
+
+- info.filldir = filldir;
+- info.dirent = dirent;
+-
+- actualFile->f_pos = file->f_pos;
+- ret = vfs_readdir(actualFile, Filldir, &info);
+- file->f_pos = actualFile->f_pos;
++ /* Ricky Wong Yung Fei:
++ * Manipulation of pos is now handled internally by iterate_dir().
++ */
++ ret = iterate_dir(actualFile, ctx);
+
+ return ret;
+ }
+@@ -237,7 +194,7 @@
+
+
+ struct file_operations RootFileOps = {
+- .readdir = FileOpReaddir,
++ .iterate = FileOpReaddir,
+ .open = FileOpOpen,
+ .release = FileOpRelease,
+ };
diff --git a/remote/modules/vmware/templates/vmware/config b/remote/modules/vmware/templates/vmware/config
new file mode 100644
index 00000000..d8420e0d
--- /dev/null
+++ b/remote/modules/vmware/templates/vmware/config
@@ -0,0 +1,24 @@
+.encoding = "UTF-8"
+installerDefaults.componentDownloadEnabled = "no"
+installerDefaults.dataCollectionEnabled = "no"
+installerDefaults.transferVersion = "1"
+installerDefaults.autoSoftwareUpdateEnabled = "no"
+NETWORKING = "yes"
+VMBLOCK_CONFED = "yes"
+VMCI_CONFED = "yes"
+VSOCK_CONFED = "yes"
+gksu.rootMethod = "sudo"
+MemTrimRate = "0"
+prefvmx.minVmMemPct = "100"
+prefvmx.useRecommendedLockedMemSize = "TRUE"
+libdir = "/usr/lib/vmware"
+mks.ctlAltDel.ignore = "TRUE"
+mks.fullscreen.allowScreenSaver = "TRUE"
+fullScreenSwitch.onSeparateDesktop = "TRUE"
+msg.autoAnswer = "TRUE"
+authd.fullpath = "/usr/sbin/vmware-authd"
+bindir = "/usr/bin"
+vix.config.version = "1"
+player.product.version = "%PLAYER_VERSION%"
+product.buildNumber = "%BUILD_NUMBER%"
+
diff --git a/remote/modules/vmware/vmware.build b/remote/modules/vmware/vmware.build
index 29b7491f..16ee4c77 100644
--- a/remote/modules/vmware/vmware.build
+++ b/remote/modules/vmware/vmware.build
@@ -27,6 +27,12 @@ fetch_source() {
build() {
local SRCDIR="./src/bundle"
[ ! -d "$SRCDIR" ] && perror "Extracted vmplayer bundle not found in $SRCDIR - please clean vmplayer module."
+ local PLAYER_MANIFEST="$MODULE_DIR/$SRCDIR/vmware-player-app/manifest.xml"
+ local WORKSTATION_MANIFEST="$MODULE_DIR/$SRCDIR/vmware-workstation/manifest.xml"
+ local BUILD_NUMBER=$(grep -o -E '<buildNumber>[0-9]*</buildNumber>' "$PLAYER_MANIFEST" | grep -o -E '[0-9]*')
+ local PLAYER_VERSION=$(grep -o -E '<version>[0-9\.]*</version>' "$PLAYER_MANIFEST" | grep -o -E '[0-9\.]*')
+ local WORKSTATION_VERSION=$(grep -o -E '<version>[0-9\.]*</version>' "$WORKSTATION_MANIFEST" 2>/dev/null | grep -o -E '[0-9\.]*')
+ local CORE_VERSION=$(grep -o -E '<coreVersion>[0-9\.]*</coreVersion>' "$PLAYER_MANIFEST" | grep -o -E '[0-9\.]*')
local TARGET="$MODULE_BUILD_DIR/usr/lib/vmware/"
mkdir -p "$TARGET"{lib,share,bin}
pinfo "Copying data to build dir"
@@ -60,6 +66,10 @@ build() {
sed -i 's#@@LIBCONF_DIR@@#/usr/lib/vmware/libconf#g' "$file"
done
+ # Copy vmware config template
+ mkdir -p "$MODULE_BUILD_DIR/etc/vmware"
+ sed "s#%PLAYER_VERSION%#$PLAYER_VERSION#g;s#%BUILD_NUMBER%#$BUILD_NUMBER#g" "$MODULE_DIR/templates/vmware/config" > "$MODULE_BUILD_DIR/etc/vmware/config"
+
# Compile kernel modules
pinfo "Compiling required kernel modules."
# build modules
@@ -72,7 +82,7 @@ post_copy() {
tarcopy "$(find /usr/lib/ /usr/lib64 -name gconv -type d)" "$TARGET_BUILD_DIR"
#Update Icon cache for vmplayer
gtk-update-icon-cache-3.0 "${TARGET_BUILD_DIR}/usr/share/icons/hicolor/" || pwarning "update-icon-cache-3.0 failed."
- #fix vmware-usbarbotrator bug
+ #fix vmware-usbarbitrator bug
date +'%Y.%m.%d' >"${TARGET_BUILD_DIR}/etc/arch-release"
copy_modules
}
@@ -83,15 +93,11 @@ build_modules() {
local VMWARE_MODCONFIG="$MODULE_DIR/$SRCDIR/vmware-vmx/bin/vmware-modconfig"
[ -e "$VMWARE_MODCONFIG" ] && chmod +x "$VMWARE_MODCONFIG" || perror "Could not find $VMWARE_MODCONFIG"
# link vmware-modconfig-console in the build dir
- local MANIFEST="$MODULE_DIR/$SRCDIR/vmware-vmx/manifest.xml"
- local BUILD_NUMBER="$(grep -o -E '<buildNumber>[0-9]*</buildNumber>' "$MANIFEST"|grep -o -E '[0-9]*')"
- local VERSION="$(grep -o -E '<version>[0-9\.]*</version>' "$MANIFEST"|grep -o -E '[0-9\.]*')"
- local CORE_VERSION="$(grep -o -E '<coreVersion>[0-9\.]*</coreVersion>' "$MANIFEST"|grep -o -E '[0-9\.]*')"
# /etc/vmware/config gen
- sed -i.bak1 '/^ETCDIR/d;/^VMISETCDIR/d;/bootstrap/d' "$VMWARE_MODCONFIG"
- sed -i.bak2 "s/libdir=.*/libdir=$(echo $MODULE_BUILD_DIR | escape_replace)\/usr\/lib\/vmware/g" "$VMWARE_MODCONFIG"
- sed -i.bak3 "s#set -e#set -e\nPREFIX=\"/usr\"\nBINDIR=\"/usr/bin\"\nSBINDIR=\"/usr/sbin\"\nLIBDIR=\"/usr/lib\"\nDATADIR=\"/usr/share\"\nSYSCONFDIR=\"/etc\"\nDOCDIR=\"/usr/share/doc\"\nMANDIR=\"/usr/share/man\"\nINCLUDEDIR=\"/usr/include\"\nINITDIR=\"/etc\"\nINITSCRIPTDIR=\"/etc/init.d\"\nVMWARE_INSTALLER=\"/usr/lib/vmware-installer/$CORE_VERSION\"\nVERSION=\"$CORE_VERSION\"\nVMISVERSION=\"$CORE_VERSION\"\nVMISPYVERSION=\"25\"#g" "$VMWARE_MODCONFIG"
+ sed -i '/^ETCDIR/d;/^VMISETCDIR/d;/bootstrap/d' "$VMWARE_MODCONFIG"
+ sed -i "s/libdir=.*/libdir=$(echo $MODULE_BUILD_DIR | escape_replace)\/usr\/lib\/vmware/g" "$VMWARE_MODCONFIG"
+ sed -i "s#set -e#set -e\nPREFIX=\"/usr\"\nBINDIR=\"/usr/bin\"\nSBINDIR=\"/usr/sbin\"\nLIBDIR=\"/usr/lib\"\nDATADIR=\"/usr/share\"\nSYSCONFDIR=\"/etc\"\nDOCDIR=\"/usr/share/doc\"\nMANDIR=\"/usr/share/man\"\nINCLUDEDIR=\"/usr/include\"\nINITDIR=\"/etc\"\nINITSCRIPTDIR=\"/etc/init.d\"\nVMWARE_INSTALLER=\"/usr/lib/vmware-installer/$CORE_VERSION\"\nVERSION=\"$CORE_VERSION\"\nVMISVERSION=\"$CORE_VERSION\"\nVMISPYVERSION=\"25\"#g" "$VMWARE_MODCONFIG"
[ -e "/etc/vmware/config" ] && cp "/etc/vmware/config" "/etc/vmware/config.mltk.bak"
@@ -113,41 +119,63 @@ authd.fullpath = "/usr/sbin/vmware-authd"
bindir = "/usr/bin"
vmware.fullpath = "/usr/bin/vmware"
vix.libdir = "/usr/lib/vmware-vix"
-vix.config.version = "1"
-player.product.version = "$VERSION"
+vix.config.version = "1"
+player.product.version = "$PLAYER_VERSION"
product.buildNumber = "$BUILD_NUMBER"
authd.client.port = "902"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
authd.soapserver = "TRUE"
-product.version = "$VERSION"
-workstation.product.version = "$VERSION"
-product.name = "VMware Workstation"
+product.version = "$PLAYER_VERSION"
+workstation.product.version = "$WORKSTATION_VERSION"
+product.name = "VMware Player"
EOF
- mkdir -p "$MODULE_BUILD_DIR/usr/lib/vmware/modules"
+ mkdir -p "$MODULE_BUILD_DIR/usr/lib/vmware/modules"
ln -sf "$MODULE_DIR/$SRCDIR/vmware-vmx/extra/modules.xml" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/"
ln -sf "$MODULE_DIR/$SRCDIR/vmware-vmx/lib/modules/source" "$MODULE_BUILD_DIR/usr/lib/vmware/modules/"
ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig"
ln -sf "appLoader" "$MODULE_BUILD_DIR/usr/lib/vmware/bin/vmware-modconfig-console"
- [ ! -e "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" ] && perror "Could not find uts release!!!"
- local UTS_RELEASE="$(cat "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')"
- pinfo "Patching vmblock.tar"
+ # See what we need to patch
cd "$MODULE_BUILD_DIR/usr/lib/vmware/modules/source" || perror "cd failed."
- tar xf "vmblock.tar" || perror "untar of vmblock.tar failed."
- for sourcefile in $(grep -l -r -E '\sputname' "vmblock-only/"); do
- sed -r -i 's/\sputname/__putname/g' "$sourcefile" || perror "sed of $sourcefile failed."
+ local KMOD SHORT PATCH MIN_KERN MAX_KERN
+ for KMOD in *.tar; do
+ SHORT="${KMOD%%.tar}"
+ [ -e ".${SHORT}.patched" ] && continue
+ for PATCH in $(find "${MODULE_DIR}/patches/" -name "${SHORT}__*__*.patch"); do
+ parse_patch_name "$PATCH"
+ [ -z "${MIN_KERN}" -o -z "${MAX_KERN}" ] && perror "Could not parse patch filename"
+ if version_lt "$SYS_KERNEL" "$MIN_KERN" || version_gt "$SYS_KERNEL" "$MAX_KERN"; then
+ pinfo "*NOT* applying $PATCH (min=$MIN_KERN max=$MAX_KERN cmp=$SYS_KERNEL)"
+ continue # Not suitable for our kernel
+ fi
+ pinfo "Applying $PATCH (min=$MIN_KERN max=$MAX_KERN cmp=$SYS_KERNEL)"
+ [ ! -d "${SHORT}-only" ] && tar xf "$KMOD"
+ [ ! -d "${SHORT}-only" ] && perror "untar of $KMOD failed."
+ cd "${SHORT}-only" || perror "Where is ${SHORT}-only?"
+ if ! patch -p1 < "$PATCH"; then
+ cd ..
+ rm -rf -- "${SHORT}-only"
+ perror "Applying $PATCH failed."
+ fi
+ cd ..
+ done
+ if [ -d "${SHORT}-only" ]; then
+ tar cf "$KMOD" "${SHORT}-only/" || perror "repacking of $KMOD failed."
+ rm -rf -- "${SHORT}-only"
+ touch ".${SHORT}.patched"
+ fi
done
- tar cf "vmblock.tar" "vmblock-only/" || perror "repacking of vmblock.tar failed."
- cd -
-
+ cd "$MODULE_DIR" || perror "wat."
+ #
+ # Then, compile
pinfo "KOMPILIERE VMWARE KERNEL MODULE"
for MOD in vsock vmblock vmmon vmnet vmci; do
pinfo "Kompiliere $MOD"
- [ -s "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko" ] && unlink "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko"
- "$VMWARE_MODCONFIG" --console --build-mod -k "$UTS_RELEASE" "$MOD" "$(which gcc)" "$MODULES_DIR/kernel/ksrc/include" "vmplayer" "$MOD"
- [ ! -s "/lib/modules/$UTS_RELEASE/vmplayer/$MOD.ko" ] && perror "Error compiling via $VMWARE_MODCONFIG"
- done
+ [ -s "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko" ] && unlink "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko"
+ "$VMWARE_MODCONFIG" --console --build-mod -k "$SYS_UTS_RELEASE" "$MOD" "$(which gcc)" "$MODULES_DIR/kernel/ksrc/include" "vmplayer" "$MOD"
+ [ ! -s "/lib/modules/$SYS_UTS_RELEASE/vmplayer/$MOD.ko" ] && perror "Error compiling via $VMWARE_MODCONFIG"
+ done
cd -
@@ -157,8 +185,19 @@ EOF
}
function copy_modules() {
- local UTS_RELEASE="$(cat "$MODULES_DIR/kernel/ksrc/include/generated/utsrelease.h" | awk -F '"' '{print $2}')"
mkdir -p "$TARGET_BUILD_DIR/lib/modules/vmware/"
- cp "/lib/modules/$UTS_RELEASE/vmplayer/"* "$TARGET_BUILD_DIR/lib/modules/vmware/" || perror "Could not cp vmware modules to target!"
+ cp "/lib/modules/$SYS_UTS_RELEASE/vmplayer/"* "$TARGET_BUILD_DIR/lib/modules/vmware/" || perror "Could not cp vmware modules to target!"
+}
+
+function parse_patch_name() {
+ [ $# -ne 1 ] && perror "parse_patch_name: Wrong parameter count."
+ local PATCH="$1"
+ MIN_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)-[0-9\.]+__[^_]+\.patch$/\1/g')
+ [[ "$MIN_KERN" == /* ]] && MIN_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)__[^_]+\.patch$/\1/g')
+ MAX_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__[0-9\.]+-([0-9\.]+)__[^_]+\.patch$/\1/g')
+ [[ "$MAX_KERN" == /* ]] && MAX_KERN=$(echo "$PATCH" | sed -r 's/^[^_]+__([0-9\.]+)__[^_]+\.patch$/\1/g')
+ [[ "$MIN_KERN" == /* ]] && MIN_KERN=
+ [[ "$MAX_KERN" == /* ]] && MAX_KERN=
+ # TODO: Parse min and max vmplayer/workstation version
}