From 6ce5f2e08cc88df07d2f388d0d16b4326f11597c Mon Sep 17 00:00:00 2001 From: Heinz Wiesinger Date: Sun, 5 Sep 2021 15:43:50 +0200 Subject: system/virtualbox: Script simplifications and python3 support This drops two switches for the SlackBuild, HARDENING and HEADLESS. Both of those are gone since the potential benefit is minimal. Upstream has defaulted to hardening enabled pretty much since the very beginning. Every official build has it enabled too and thus also all documentation and bug reports etc. assume it being enabled. If you really want it disabled you can still edit the SlackBuild. Headless adds very little other than resulting in a smaller package and shorter build times. Same as with hardening, if you really want a headless version, you can still edit the SlackBuild. Signed-off-by: Heinz Wiesinger Signed-off-by: Willy Sudiarto Raharjo --- system/virtualbox/README | 7 ---- system/virtualbox/virtualbox.SlackBuild | 65 ++++++++++++--------------------- 2 files changed, 24 insertions(+), 48 deletions(-) (limited to 'system/virtualbox') diff --git a/system/virtualbox/README b/system/virtualbox/README index f8a9c427e8..3a2addeca9 100644 --- a/system/virtualbox/README +++ b/system/virtualbox/README @@ -1,16 +1,9 @@ VirtualBox Open Source Edition (OSE) is a general-purpose full virtualizer for x86 hardware. -By default VirtualBox will be compiled with hardening enabled. That -means all binaries will be run suid root, which is the default -behaviour of upstream packages. However, you are still able -to disable this by passing HARDENING=no to the script. - You have to create a vboxusers group, e.g. "groupadd -g 215 vboxusers" and make your user a member of that group. -To compile a headless virtualbox pass HEADLESS=yes to the script. - To enable the webservice pass WEBSERVICE=yes to the script. This will require gsoap as optional dependency. diff --git a/system/virtualbox/virtualbox.SlackBuild b/system/virtualbox/virtualbox.SlackBuild index dd2b99c117..ddedab4817 100644 --- a/system/virtualbox/virtualbox.SlackBuild +++ b/system/virtualbox/virtualbox.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Slackware build script for virtualbox-ose +# Slackware build script for virtualbox # Copyright 2008-2021 Heinz Wiesinger, Amsterdam, The Netherlands # Copyright 2008 Mauro Giachero @@ -12,23 +12,23 @@ # 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:-6.1.26} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -55,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." @@ -65,23 +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 Qt & SDL frontends -if [ "${HEADLESS:-no}" = "no" ]; then - guiapp="VirtualBox VirtualBoxVM VBoxSDL" - suidgui="VirtualBoxVM VBoxSDL" -else - gui+=" --build-headless" - guiapp="" - suidgui="" -fi - # Enable building of java bindings if [ "${JAVA:-no}" = "no" ]; then java="--disable-java" @@ -147,6 +127,9 @@ patch -d src/VBox/Installer/linux -i $CWD/vboxdrv.sh-setup.diff # Fix wrong path to rdesktop-vrdp-keymaps patch -p1 -i $CWD/006-rdesktop-vrdp-keymap-path.patch +# Skip python2 detection +sed -i 's|python2.7 python2.6 ||' ./configure + # Remove gcc version check and fix the qt5 flags sed -i 's/^check_gcc$/#check_gcc/' ./configure patch -p1 < $CWD/configure.patch @@ -159,9 +142,8 @@ sed -i "s|CXX_FLAGS=\"\"|CXX_FLAGS=\"$SLKCFLAGS -std=c++11\"|" ./configure --enable-vde \ --enable-vnc \ --with-makeself=/usr/bin/echo \ + --enable-hardening \ $web_service \ - $harden \ - $gui \ $sw_virt \ $java @@ -217,7 +199,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 @@ -232,8 +214,11 @@ cd out/linux.$BUILDDIR/release/bin/ mv $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox.sh $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/VBox cd $TMP/$SRCNAM-${VERSION} +# Drop broken symlink +rm -f $PKG/usr/lib$LIBDIRSUFFIX/virtualbox/components/VBoxREM.so + for i in VBoxManage VBoxHeadless VBoxVRDP VBoxBalloonCtrl VBoxBugReport \ - VBoxAutostart $guiapp $vboxwebsrv; do + VBoxAutostart VirtualBox VirtualBoxVM VBoxSDL $vboxwebsrv; do ln -s /usr/lib$LIBDIRSUFFIX/virtualbox/VBox $PKG/usr/bin/$i done @@ -256,11 +241,9 @@ 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 $suidgui VBoxNetDHCP VBoxNetAdpCtl VBoxNetNAT; 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/ -- cgit v1.2.3