diff options
Diffstat (limited to 'core/modules/vbox/module.build')
-rw-r--r-- | core/modules/vbox/module.build | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/core/modules/vbox/module.build b/core/modules/vbox/module.build deleted file mode 100644 index 0f62eab4..00000000 --- a/core/modules/vbox/module.build +++ /dev/null @@ -1,142 +0,0 @@ -#!/bin/bash - -patch_vbox_scripts() { - # Patching virtualbox utility scripts to include openslx-busybox binary paths. Strange sed-ing, as the openslx - # binary paths need to be at the end of PATH to not impede with system binaries. - # It seems sufficient to patch just VBox, as eg. vboxmanage, vboxheadless etc. are just links to VBox. - # If only vboxmanage, vboxheadless or such should be patched (and not the base script VBox) just use a list - # in the loop (eg. 'for i in virtualbox vboxmanage vboxheadless; do'). These links will be replaced by patched - # 'real' files. Of course it will not make sense if VBox is included in the list, then. - # Patched files will be saved with extension .original. - - pinfo "Patching virtual box scripts to include openslx (busybox)-paths ..." - for i in VBox; do - pinfo "Patching virtual box script $i ..." - SCRIPTPATH=$(grep -m 1 PATH "${MODULE_BUILD_DIR}/usr/bin/$i"|sed 's/"//g') # assume first hit is real path - sed -i "-i.original" "/^PATH=/c ${SCRIPTPATH}:/opt/openslx/bin:/opt/openslx/sbin"\ - "${MODULE_BUILD_DIR}/usr/bin/$i" # append openslx paths - done - - # due to problems with group membership of kdm-spawned processes we need to - # patch ${MODULE_BUILD_DIR}/usr/share/virtualbox/VBoxCreateUSBNode.sh: - sed -i "s/0750/0755/g" "${MODULE_BUILD_DIR}/usr/share/virtualbox/VBoxCreateUSBNode.sh" - sed -i "s/0660/0666/g" "${MODULE_BUILD_DIR}/usr/share/virtualbox/VBoxCreateUSBNode.sh" -} - -extract_extpack() { - pinfo "Unpacking Extension Pack ..." - mkdir -p "${MODULE_BUILD_DIR}/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack" - cp "${MODULE_WORK_DIR}"/src/vbox/extpack/[EP][xX][tE]* "${MODULE_BUILD_DIR}"/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack - if [ x${AMD64_X86} == "xamd64" ]; then - pinfo "Unpacking 64bit branch of Extension Pack ..." - cp -r "${MODULE_WORK_DIR}/src/vbox/extpack/linux.amd64" "${MODULE_BUILD_DIR}/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack" - else # then we assume 32bit x86... - pinfo "Unpacking32bit branch of Extension Pack ..." - cp -r "${MODULE_WORK_DIR}/src/vbox/extpack/linux.x86" "${MODULE_BUILD_DIR}/usr/lib/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack" - fi -} - -build_modules() { - pinfo "Recompiling VirtualBox kernel modules ..." - # Set some variables to use/patch VBox scripts - local MODULE_SRC="${MODULE_BUILD_DIR}/usr/share/virtualbox/src/vboxhost" - local BUILDINTMP="$MODULE_SRC/build_in_tmp" - local BUILDSUBDIR="modules" - - # Some Vars for VBs kernel module makefiles - MODULE_DIR_ALT="$MODULE_DIR" # save usual MODULE_DIR - export KERN_DIR="${MODULE_WORK_DIR}/../kernel/build/lib/modules/$(ls ${MODULE_WORK_DIR}/../kernel/build/lib/modules/)/build/" - pinfo "Using Kernel dir $KERN_DIR" - # export MODULE_DIR="${MODULE_WORK_DIR}/../kernel/build/lib/modules/$(ls ${MODULE_WORK_DIR}/../kernel/build/lib/modules/)/kernel/misc" - export MODULE_DIR="${MODULE_WORK_DIR}/build/lib/modules/vbox" - - pinfo "Recompiling VirtualBox kernel module vboxdrv ..." - if ! $BUILDINTMP \ - --save-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxdrv" \ - --no-print-directory install; - then - perror "[vbox]: Error compiling VirtualBox kernel module vboxdrv" - fi - pinfo "Recompiling VirtualBox kernel module vboxnetflt ..." - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxnetflt" \ - --no-print-directory install; - then - perror "[vbox]: Error compiling VirtualBox kernel module vboxnetflt" - fi - pinfo "Recompiling VirtualBox kernel module vboxnetadp ..." - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxnetadp" \ - --no-print-directory install; - then - perror "[vbox]: Error compiling VirtualBox kernel module vboxnetadp" - fi - pinfo "Recompiling VirtualBox kernel module vboxpci ..." - if ! $BUILDINTMP \ - --use-module-symvers /tmp/vboxdrv-Module.symvers \ - --module-source "$MODULE_SRC/vboxpci" \ - --no-print-directory install; - then - perror "[vbox]: Error compiling VirtualBox kernel module vboxpci" - fi - pinfo "Compiled successfully the VirtualBox kernel modules." - export MODULE_DIR="$MODULE_DIR_ALT" # re-set MODULE_DIR -} - - -fetch_source() { - if [ -z "$REQUIRED_VBOXBASEURL" -o -z "$REQUIRED_VBOXEXTURL" ]; then - perror "Virtualbox download URLs not set - please write a module.conf-file for your linux flavour." - fi - - mkdir -p "src/vbox" - cd src/vbox - # pinfo "Downloading $REQUIRED_VBOXBASEURL" - download "$REQUIRED_VBOXBASEURL" - # pinfo "Downloading $REQUIRED_VBOXEXTURL" - download_untar "$REQUIRED_VBOXEXTURL" "extpack" "vbox_extpack.tar.gz" - cd - -} - - -build() { - case "$PACKET_HANDLER" in - rpm) - pinfo "Unpacking rpm ..." - cd build || perror "Cannot cd to build directory!" - rpm2cpio ../src/vbox/$(basename "$REQUIRED_VBOXBASEURL")|cpio -idmv || perror "Could not unpack rpm-archive!" - # it seems that sometimes directories from rpm will be created with 700-permissions, - # if that directory is not explicitly mentioned to create. So eg. usr, etc will carry the - # permissions 700, which is no fun. So we search for these directories and correct them. - find . -type d -perm 700 -exec chmod 755 {} \; - ;; - dpkg ) - pinfo "Unpacking deb ..." - cd build || perror "Cannot cd to build directory!" - dpkg -x ../src/vbox/$(basename "$REQUIRED_VBOXBASEURL") . || perror "Could not unpack deb-archive!" - # VirtualBox needs to be suid-root: - for i in VBoxHeadless VBoxNetAdpCtl VBoxNetDHCP VBoxSDL VBoxVolInfo VirtualBox VBoxNetAdpCtl; do - chmod u+s ${MODULE_BUILD_DIR}/usr/lib/virtualbox/$i || pwarning "(Debian/Ubuntu) Could not suid $i executable!" - done - ;; - *) perror "Unknown Distribution: $SYS_DISTRIBUTION - Please specify its packet manager in remote/setup_target" ;; - esac - - build_modules - patch_vbox_scripts - extract_extpack - - COPYLIST="list_dpkg_output" - [ -e "$COPYLIST" ] && rm "$COPYLIST" - list_packet_files >> "$COPYLIST" - tarcopy "$(cat "$COPYLIST" | sort -u)" "${MODULE_BUILD_DIR}" -} - -post_copy() { - # clean a bit, as sometimes there are residual files in /tmp/vbox.*/ - rm -rf /tmp/vbox.*/ -} - |