On 09/26/2019 02:29 AM, David C. Rankin wrote:
> On 09/25/2019 07:26 AM, Frank Batschulat wrote:
>> David, yes there is definitively something wrong with the current 5.2.X
>> guest additions even with the Linux 5.3 kernel compile fixes
>> it does not quite work in the end, see bug:
>>
>> https://www.virtualbox.org/ticket/18961
>>
>>
> 
> Thank you Frank!
> 
>   Your search foo is better than mine. At least I know where to look and that
> I wasn't going crazy :)
> 

  I did further testing with the latest testbuild package for 5.2.33 and still
on the 5.3 kernel there is no vboxsf module for Linux guests. The modules
available in the Linux guests are:

$ lsmod | grep vbox
vboxvideo              40960  1
drm_vram_helper        20480  1 vboxvideo
drm_kms_helper        212992  1 vboxvideo
drm                   516096  5 drm_kms_helper,drm_vram_helper,vboxvideo,ttm
vboxguest              45056  0

  The testbuild build packages used were:

https://www.virtualbox.org/download/testcase/VirtualBox-5.2.33-133577-Linux_amd64.run
https://www.virtualbox.org/download/testcase/VirtualBoxSDK-5.2.33-133577.zip
https://www.virtualbox.org/download/testcase/VBoxGuestAdditions_5.2.33-133577.iso

  The PKGBUILD (Arch build script) used is attached. Is there any other patch
floating around that I can add to have the vboxsf module generated under the
5.3 kernel?


-- 
David C. Rankin, J.D.,P.E.
# Maintainer : David C. Rankin <drankina...@gmail.com>

pkgname=virtualbox-bin-5
pkgver=5.2.33
_build=133577
_rev=79806
pkgrel=1
pkgdesc='Oracle VM VirtualBox Binary Edition (Oracle branded non-OSE version 5)'
arch=('x86_64')
url='https://www.virtualbox.org/'
license=('GPL2')
depends=('dkms' 'fontconfig' 'gcc' 'libgl' 'libidl2' 'libxcursor' 'libxinerama'
         'libxmu' 'python' 'sdl')
makedepends=('linux-headers')
optdepends=('virtualbox-ext-oracle-5: for Oracle extensions'
            'linux-headers: build the module for Arch kernel'
            'linux-lts-headers: build the module for LTS Arch kernel')
provides=("virtualbox=${pkgver}" 'virtualbox-sdk' 'VIRTUALBOX-HOST-MODULES'
          'virtualbox-host-dkms' 'virtualbox-guest-iso')
conflicts=('virtualbox' 'virtualbox-sdk' 'virtualbox-host-dkms' 
'virtualbox-host-modules-arch')
replaces=('virtualbox_bin' 'virtualbox-sun')
backup=('etc/vbox/vbox.cfg' 'etc/conf.d/vboxweb')
options=('!strip' '!emptydirs')
install="${pkgname%-5}.install"
# 
source=("https://download.virtualbox.org/virtualbox/${pkgver}/VirtualBoxSDK-${pkgver}-${_build}.zip";
source=("https://www.virtualbox.org/download/testcase/VirtualBoxSDK-${pkgver}-${_build}.zip";
        
"VBoxAuth-r${_rev}.h"::"https://www.virtualbox.org/svn/vbox/trunk/include/VBox/VBoxAuth.h?p=${_rev}";
        
"VBoxAuthPAM-r${_rev}.c"::"https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/pam/VBoxAuthPAM.c?p=${_rev}";
        
"VBoxAuthSimple-r${_rev}.cpp"::"https://www.virtualbox.org/svn/vbox/trunk/src/VBox/HostServices/auth/simple/VBoxAuthSimple.cpp?p=${_rev}";
        'VBoxFixUSB'
        '10-vboxdrv.rules'
        'vboxweb.rc'
        'vboxweb.conf'
        'do_dkms'
        'dkms.conf'
        '009-include-path.patch'
        '015-linux-5-3.patch'
        
"https://www.virtualbox.org/download/testcase/VirtualBox-${pkgver}-${_build}-Linux_amd64.run";)
#        
"http://download.virtualbox.org/virtualbox/${pkgver}/VirtualBox-${pkgver}-${_build}-Linux_amd64.run";)
noextract=("VirtualBoxSDK-${pkgver}-${_build}.zip")
sha256sums=('803d1ec9174c122de4c8be380c67fbde31962c92b185db6b8c376a05864df3d3'
            '584f02a2a1e83b9cabd7b7e3b00a0515b118e040160eb46c014ea6fd3a16586e'
            '600df773fca199dc21acde10c95a4733b03b3efd8ffaef3a9fb9da363a9cd114'
            '452351c15d97aeda29e45dbcb0da69412dc3a615c9aece43a424af3639368d49'
            '0aebe22abab402ea6b6573af637a99d8056a904920a52d84fb97729219219c23'
            '69417a9e8855cab8e4878886abe138f559fd17ae487d4cd19c8a24974a8bbec2'
            '656905de981ffa24f6f921c920538854a235225053f44baedacc07b46ca0cf56'
            '12dbba3b59991f2b68cddeeeda20236aeff63e11b7e2d1b08d9d6a82225f6651'
            'cc1c0500ab07bc13563d99037f776bf64bdc90bb521e31e2e0b04e42ea5bb36a'
            'e9df0fff15184d0a90abe17707bdbe1931582433bbc14ded4fb3b0252653c801'
            '5112f0e1ba3bd0bd92ef2edb2d21024e265abb02841aa29aa05410526adc273f'
            '37593d09bcde15a056b93d56ad47877a9bbac140474da2c66648871a0537998a'
            'cf736417c87a282ea65be624545c5e1d2bae77491f6169834f3e8fc197994827')

prepare() {
    [ "$CARCH" = 'i686'   ] && local _arch='x86'
    [ "$CARCH" = 'x86_64' ] && local _arch='amd64'

    mkdir -p "${pkgname}-${pkgver}"

    # extract the main source file
    yes | sh "VirtualBox-${pkgver}-${_build}-Linux_${_arch}.run" \
              --target "${srcdir}/${pkgname}-${pkgver}" \
              --nox11 \
              --noexec \
              &> /dev/null

    # extract sdk
    cd "${pkgname}-${pkgver}"
    bsdtar -xf "${srcdir}/VirtualBoxSDK-${pkgver}-${_build}.zip"
}

package() {
    local _installdir='/opt/VirtualBox'

    # install bundled files
    printf '%s\n' '  -> Installing bundled files...'
    install -d "${pkgdir}/${_installdir}"
    tar -jxf "${srcdir}/${pkgname}-${pkgver}/VirtualBox.tar.bz2" -C 
"${pkgdir}/${_installdir}"

    # apply patch 009-include-path (thanks to Christian Hesse)
    printf '%s\n' "  -> Applying patch '009-includepath.patch'..."
    cd "${pkgdir}/${_installdir}/src/vboxhost/"
    patch -Np5 -i "${srcdir}/009-include-path.patch"

    # fix dkms build
    # printf '%s\n' "  -> Fixing DKMS build..."
    # cd "${pkgdir}/${_installdir}"
    # patch -Np1 -i "${srcdir}/013-Makefile.patch"
    # patch -Np1 -i "${srcdir}/015-linux-5-3.patch"

    # hardened build: mark binaries suid root, create symlinks for working 
around
    #                 unsupported $ORIGIN/.. in VBoxC.so and make sure the
    #                 directory is only writable by the user (paranoid)
    cd "${pkgdir}/${_installdir}"
    chmod 4511 VirtualBox VBox{SDL,Headless,NetDHCP,NetNAT,NetAdpCtl,VolInfo}
    for _lib in VBox{VMM,RT}.so
    do
        ln -s "${_installdir}/${_lib}" "components/${_lib}"
    done
    chmod go-w "${pkgdir}/${_installdir}"

    # install SDK
    printf '%s\n' '  -> Installing SDK...'
    cd "${srcdir}/${pkgname}-${pkgver}"
    pushd 'sdk/installer' >/dev/null
    VBOX_INSTALL_PATH="$_installdir" python vboxapisetup.py install --root 
"$pkgdir"
    popd >/dev/null
    rm -r "${pkgdir}/${_installdir}/sdk"
    mkdir -p "${pkgdir}/${_installdir}/sdk"
    cp -a sdk/bindings "${pkgdir}/${_installdir}/sdk"
    cp -a sdk/docs     "${pkgdir}/${_installdir}"
    install -D -m644 "${srcdir}/VBoxAuth-r${_rev}.h"         
"${pkgdir}/${_installdir}/sdk/bindings/auth/include/VBoxAuth.h"
    install -D -m644 "${srcdir}/VBoxAuthPAM-r${_rev}.c"      
"${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthPAM.cpp"
    install -D -m644 "${srcdir}/VBoxAuthSimple-r${_rev}.cpp" 
"${pkgdir}/${_installdir}/sdk/bindings/auth/VBoxAuthSimple.cpp"

    # installd udev rules
    printf '%s\n' '  -> Installing udev rules...'
    cd "${pkgdir}/${_installdir}"
    install -D -m0644 "${srcdir}/10-vboxdrv.rules" 
"${pkgdir}/usr/lib/udev/rules.d/10-vboxdrv.rules"
    ## we need to copy and not symlink VBoxCreateUSBNode.sh in /usr/lib/udev to 
avoid udevd
    ## to look /opt when /opt is not mounted. This can be done until 
VBoxCreateUSBNode.sh doesn't
    ## need more stuff from /opt
    cp -a VBoxCreateUSBNode.sh "${pkgdir}/usr/lib/udev/"

    printf '%s\n' '  -> Installing scripts...'

    # install VBoxFixUSB script
    install -D -m0755 "${srcdir}/VBoxFixUSB" VBoxFixUSB

    # install vboxweb initscript
    install -D -m0755 "${srcdir}/vboxweb.rc"   "${pkgdir}/etc/rc.d/vboxweb"
    install -D -m0644 "${srcdir}/vboxweb.conf" "${pkgdir}/etc/conf.d/vboxweb"

    printf '%s\n' '  -> Creating needed symlinks...'

    # symlink the launchers (second link can fail if fs is not case sensitive)
    install -d -m0755 "${pkgdir}/usr/bin"
    for _bin in VirtualBox 
VBox{Headless,Manage,SDL,SVC,Tunctl,NetAdpCtl,FixUSB} rdesktop-vrdp
    do
        ln -s "${_installdir}/${_bin}" "${pkgdir}/usr/bin/${_bin}"
        ln -s "${_installdir}/${_bin}" "${pkgdir}/usr/bin/${_bin,,}" 
&>/dev/null || :
    done

    # symlink the desktop icon and .desktop files
    install -d -m0755 "${pkgdir}/usr/"{share/applications,share/pixmaps}
    ln -s "${_installdir}/VBox.png"                     
"${pkgdir}/usr/share/pixmaps/VBox.png"
    ln -s "${_installdir}/icons/128x128/virtualbox.png" 
"${pkgdir}/usr/share/pixmaps/virtualbox.png"
    ln -s "${_installdir}/virtualbox.desktop"           
"${pkgdir}/usr/share/applications/virtualbox.desktop"

    # symlink mime info
    install -d -m0755 "${pkgdir}/usr/share/mime/packages"
    ln -s "${_installdir}/virtualbox.xml" 
"${pkgdir}/usr/share/mime/packages/virtualbox.xml"

    # symlink doc
    install -d -m0755 "${pkgdir}/usr/share/doc/${pkgname}"
    ln -s "${_installdir}/VirtualBox.chm" 
"${pkgdir}/usr/share/doc/${pkgname}/virtualbox.chm"

    # symlink icons
    pushd icons >/dev/null
    for _dir in *
    do
        cd "$_dir"
        install -d -m0755 
"${pkgdir}/usr/share/icons/hicolor/${_dir}/"{apps,mimetypes}
        for _icon in *
        do
            if [ "$_icon" = 'virtualbox.png' ]
            then
                ln -s "${_installdir}/icons/${_dir}/${_icon}" 
"${pkgdir}/usr/share/icons/hicolor/${_dir}/apps/${_icon}"
            else
                ln -s "${_installdir}/icons/${_dir}/${_icon}" 
"${pkgdir}/usr/share/icons/hicolor/${_dir}/mimetypes/${_icon}"
            fi
        done
        cd - >/dev/null
    done
    popd >/dev/null

    # with the relase of VirtualBox 5.1.0, Oracle dropped DKMS support from 
their package
    # we will restore DKMS with the use of these config files
    printf '%s\n' '  -> Installing DKMS support...'
    install -D -m0755 "${srcdir}/do_dkms" -t 
"${pkgdir}/${_installdir}/src/vboxhost"
    ## update module version
    cd "$srcdir"
    cp -a dkms.conf "${pkgname}-${pkgver}"
    sed -i "s/PACKAGE_VERSION=/PACKAGE_VERSION=${pkgver}/" 
"${pkgname}-${pkgver}/dkms.conf"
    install -D -m0644 "${pkgname}-${pkgver}/dkms.conf" -t 
"${pkgdir}/${_installdir}/src/vboxhost"

    # module sources in /usr/src
    printf '%s\n' '  -> Installing module sources...'
    install -d -m0755 "${pkgdir}/usr/src"
    mv "${pkgdir}/${_installdir}/src/vboxhost" 
"${pkgdir}/usr/src/vboxhost-${pkgver}"

    # write the configuration file
    printf '%s\n' '  -> Writing the configuration file...'
    install -D -m0644 /dev/null "${pkgdir}/etc/vbox/vbox.cfg"
    cat > "${pkgdir}/etc/vbox/vbox.cfg" <<EOF
# VirtualBox installation directory
INSTALL_DIR='${_installdir}'

# VirtualBox version
INSTALL_VER='${pkgver}'
INSTALL_REV='${_build}'
EOF

    # write modules-load.d configuration to ensure that modules are loaded at 
boot
    printf '%s\n' "  -> Writing 'modules-load.d' configuration..."
    install -D -m644 /dev/null 
"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n'   '# Load virtualbox kernel modules at boot '                
>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n\n' "# This file was installed by the ${pkgname} AUR package" 
>>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n'   'vboxdrv'    
>>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n'   'vboxpci'    
>>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n'   'vboxnetadp' 
>>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"
    printf '%s\n'   'vboxnetflt' 
>>"${pkgdir}/usr/lib/modules-load.d/${pkgname}.conf"

    # fix permissions (change executables from 4711 to 4755)
    printf '%s\n' '  -> Fixing permissions...'
    chmod 4755 
"${pkgdir}/${_installdir}"/{VBox{Headless,Net{AdpCtl,DHCP,NAT},SDL,VolInfo},VirtualBox}
}
_______________________________________________
VBox-users-community mailing list
VBox-users-community@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vbox-users-community
_______________________________________________
Unsubscribe:  
mailto:vbox-users-community-requ...@lists.sourceforge.net?subject=unsubscribe

Reply via email to