diff options
Diffstat (limited to 'system/virtualbox/virtualbox.SlackBuild')
-rw-r--r-- | system/virtualbox/virtualbox.SlackBuild | 114 |
1 files changed, 51 insertions, 63 deletions
diff --git a/system/virtualbox/virtualbox.SlackBuild b/system/virtualbox/virtualbox.SlackBuild index 1048ea0771..e4c4d04639 100644 --- a/system/virtualbox/virtualbox.SlackBuild +++ b/system/virtualbox/virtualbox.SlackBuild @@ -1,8 +1,8 @@ -#!/bin/sh +#!/bin/bash -# Slackware build script for virtualbox-ose +# Slackware build script for virtualbox -# Copyright 2008-2017 Heinz Wiesinger, Amsterdam, The Netherlands +# Copyright 2008-2024 Heinz Wiesinger, Amsterdam, The Netherlands # Copyright 2008 Mauro Giachero <mauro.giachero@gmail.com> # All rights reserved. # @@ -12,32 +12,42 @@ # 1. Redistributions of this script must retain the above copyright # notice, this list of conditions and the following disclaimer. # -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED -# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +cd $(dirname $0) ; CWD=$(pwd) PRGNAM=virtualbox SRCNAM=VirtualBox -VERSION=${VERSION:-5.0.40} +VERSION=${VERSION:-6.1.50} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi -CWD=$(pwd) +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what +# the name of the created package would be, and then exit. This information +# could be useful to other scripts. +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} @@ -45,9 +55,6 @@ OUTPUT=${OUTPUT:-/tmp} # kmk doesn't support MAKEFLAGS, so we use JOBS here JOBS=${JOBS:-3} -# Define Variable Names -gui="" - # Check for vboxusers group here if ! grep ^vboxusers: /etc/group 2>&1 > /dev/null; then echo " You must have a vboxusers group to run this script." @@ -55,21 +62,6 @@ if ! grep ^vboxusers: /etc/group 2>&1 > /dev/null; then exit 1 fi -# Enable Hardening - Defaulting to yes as requested by upstream -if [ "${HARDENING:-yes}" = "yes" ]; then - harden="--enable-hardening" -else - harden="--disable-hardening" -fi - -# Support for the qt4-frontend -if [ "${HEADLESS:-no}" = "no" ]; then - guiapp="VirtualBox VBoxSDL" -else - gui+=" --build-headless" - guiapp="" -fi - # Enable building of java bindings if [ "${JAVA:-no}" = "no" ]; then java="--disable-java" @@ -96,8 +88,8 @@ else sw_virt="" fi -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" BUILDDIR="x86" elif [ "$ARCH" = "i686" ]; then @@ -132,25 +124,22 @@ MODE="755" # Use virtualbox-kernel.SlackBuild for this. patch -d src/VBox/Installer/linux -i $CWD/vboxdrv.sh-setup.diff -# Fix building against newer versions of gsoap -patch -p1 -i $CWD/virtualbox-gsoap.patch - # Fix wrong path to rdesktop-vrdp-keymaps patch -p1 -i $CWD/006-rdesktop-vrdp-keymap-path.patch -# Remove gcc version check -sed -i 's/^check_gcc$/#check_gcc/' ./configure +# Skip python2 detection and cheat about python-3.10 support +sed -i 's|python2.7 python2.6 |python3.10 |' ./configure + +# Use our CFLAGS +sed -i "s|CXX_FLAGS=\"\"|CXX_FLAGS=\"$SLKCFLAGS -std=c++11\"|" ./configure -CFLAGS="$SLKCFLAGS" \ -CXXFLAGS="$SLKCFLAGS" \ ./configure \ --disable-kmods \ --enable-vde \ --enable-vnc \ --with-makeself=/usr/bin/echo \ + --enable-hardening \ $web_service \ - $harden \ - $gui \ $sw_virt \ $java @@ -158,20 +147,16 @@ CXXFLAGS="$SLKCFLAGS" \ cp $CWD/LocalConfig.kmk . sed -i "s|LIBDIR|lib$LIBDIRSUFFIX|" ./LocalConfig.kmk +sed -i "s|CXXFLAGS|$SLKCFLAGS -std=c++11|" ./LocalConfig.kmk kmk -j ${JOBS} LOCALCFG=./LocalConfig.kmk -# build VBoxFUSE -cd src/VBox/ImageMounter/VBoxFUSE - kmk -j ${JOBS} -cd - - mkdir -p $PKG/usr/{lib$LIBDIRSUFFIX,share,include}/virtualbox \ $PKG/usr/{bin,src} \ $PKG/usr/share/{pixmaps,mime/packages} \ $PKG/etc/{default,rc.d,vbox} -for i in vboxdrv.sh.in vboxballoonctrl-service.sh vboxautostart-service.sh; do +for i in vboxdrv.sh vboxballoonctrl-service.sh vboxautostart-service.sh; do SCRIPT=$(echo $i | cut -d "." -f 1) cp -f src/VBox/Installer/linux/$i $PKG/etc/rc.d/rc.$SCRIPT.new sed -i "s/%PACKAGE%/virtualbox/g" $PKG/etc/rc.d/rc.$SCRIPT.new @@ -210,7 +195,7 @@ cd out/linux.$BUILDDIR/release/bin/ export VBOX_INSTALL_PATH=/usr/lib$LIBDIRSUFFIX/virtualbox cd sdk/installer - python ./vboxapisetup.py install --prefix "/usr" --root $PKG + python3 ./vboxapisetup.py install --prefix "/usr" --root $PKG cd - rm -rf sdk/installer @@ -218,17 +203,18 @@ cd out/linux.$BUILDDIR/release/bin/ install -m $MODE -g $GROUP VBoxSysInfo.sh $PKG/usr/share/virtualbox/ install -m $MODE -g $GROUP VBoxCreateUSBNode.sh $PKG/usr/share/virtualbox/ install -m $MODE -g $GROUP VBoxTunctl $PKG/usr/bin/ - install -m $MODE -g $GROUP VBoxFUSE $PKG/usr/bin/ - rm -f VBoxSysInfo.sh VBoxCreateUSBNode.sh VBoxTunctl VBoxFUSE + rm -f VBoxSysInfo.sh VBoxCreateUSBNode.sh VBoxTunctl mv * $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/ chown -R root:$GROUP $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/ chmod -R $MODE $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/ mv $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox.sh $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox cd $TMP/$SRCNAM-${VERSION} -for i in VBoxManage vboxmanage VBoxHeadless \ - vboxheadless VBoxVRDP VBoxBalloonCtrl vboxballoonctrl \ - VBoxAutostart vboxautostart $guiapp $vboxwebsrv; do +# Drop broken symlink +rm -f $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/components/VBoxREM.so + +for i in VBoxManage VBoxHeadless VBoxVRDP VBoxBalloonCtrl VBoxBugReport \ + VBoxAutostart VirtualBox VirtualBoxVM VBoxSDL $vboxwebsrv; do ln -s /usr/lib$LIBDIRSUFFIX/virtualbox/VBox $PKG/usr/bin/$i done @@ -238,6 +224,9 @@ if [ "${HEADLESS:-no}" = "no" ]; then done fi +ln -s /usr/lib$LIBDIRSUFFIX/virtualbox/vbox-img $PKG/usr/bin/ +ln -s /usr/lib$LIBDIRSUFFIX/virtualbox/vboximg-mount $PKG/usr/bin/ + if [ "$vboxwebsrv" = "vboxwebsrv" ]; then mkdir -p $PKG/var/{lib,log}/vboxweb chown vboxweb:vboxusers $PKG/var/{lib,log}/vboxweb @@ -248,15 +237,14 @@ if [ "$vboxwebsrv" = "vboxwebsrv" ]; then sed -i "s/\[ -z \"\$DEBIAN\"/#\[ -z \"\$DEBIAN\"/" $PKG/etc/rc.d/rc.vboxweb-service.new fi -if [ "$harden" = "--enable-hardening" ]; then - for i in VBoxHeadless $guiapp VBoxNetDHCP VBoxNetAdpCtl; do - chmod 4711 $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/$i - done -fi +for i in VBoxHeadless VirtualBoxVM VBoxSDL VBoxNetDHCP VBoxNetAdpCtl VBoxNetNAT; do + chmod 4711 $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/$i +done # install headers. Needed by some third party tools cp -rf include/* $PKG/usr/include/virtualbox/ rm -f $PKG/usr/include/virtualbox/Makefile.kmk +find $PKG/usr/include/virtualbox -name "Makefile.kup" -print0 | xargs -0 rm -f cp -f $CWD/VBoxGuestAdditions_$VERSION.iso \ $PKG/usr/share/virtualbox/VBoxGuestAdditions.iso @@ -302,4 +290,4 @@ if [ "$vboxwebsrv" = "vboxwebsrv" ]; then fi cd $PKG -/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |