summary refs log tree commit diff
path: root/pkgs/applications/virtualization
diff options
context:
space:
mode:
authorMagicloud <1886157+Magicloud@users.noreply.github.com>2020-11-02 14:54:00 +0800
committerMaciej Krüger <mkg20001@gmail.com>2021-11-07 08:34:47 +0100
commit40c83d1e0a0708a16c0c917d231082f6352b38fe (patch)
tree43f409e9d83a1ceedb9cab5878ff2f6eda4585a7 /pkgs/applications/virtualization
parent83c93c8e1c01425d69bf06b2bf3c0ac5f9282443 (diff)
downloadnixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar.gz
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar.bz2
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar.lz
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar.xz
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.tar.zst
nixpkgs-40c83d1e0a0708a16c0c917d231082f6352b38fe.zip
virtualbox: Add option to build vboxwebsrv tool
`vboxwebsrv`, a.k.a, Virtualbox Web Service, provides a way to manage VMs via SOAP interface. This is very useful on headless servers.
Diffstat (limited to 'pkgs/applications/virtualization')
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 98c7f80df8a..0dcebb71cc5 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -2,7 +2,7 @@
 , libX11, xorgproto, libXext, libXcursor, libXmu, libIDL, SDL, libcap, libGL
 , libpng, glib, lvm2, libXrandr, libXinerama, libopus, qtbase, qtx11extras
 , qttools, qtsvg, qtwayland, pkg-config, which, docbook_xsl, docbook_xml_dtd_43
-, alsa-lib, curl, libvpx, nettools, dbus, substituteAll
+, alsa-lib, curl, libvpx, nettools, dbus, substituteAll, gsoap, zlib
 # If open-watcom-bin is not passed, VirtualBox will fall back to use
 # the shipped alternative sources (assembly).
 , open-watcom-bin ? null
@@ -14,6 +14,7 @@
 , enableHardening ? false
 , headless ? false
 , enable32bitGuests ? true
+, enableWebService ? false
 }:
 
 with lib;
@@ -49,7 +50,8 @@ in stdenv.mkDerivation {
     ++ optional pythonBindings python # Python is needed even when not building bindings
     ++ optional pulseSupport libpulseaudio
     ++ optionals (headless) [ libXrandr libGL ]
-    ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ];
+    ++ optionals (!headless) [ qtbase qtx11extras libXinerama SDL ]
+    ++ optionals (enableWebService) [ gsoap zlib ];
 
   hardeningDisable = [ "format" "fortify" "pic" "stackprotector" ];
 
@@ -133,6 +135,10 @@ in stdenv.mkDerivation {
     PATH_QT5_X11_EXTRAS_INC        := ${getDev qtx11extras}/include
     TOOL_QT5_LRC                   := ${getDev qttools}/bin/lrelease
     ''}
+    ${optionalString (enableWebService) ''
+    # fix gsoap missing zlib include and produce errors with --as-needed
+    VBOX_GSOAP_CXX_LIBS := gsoapssl++ z
+    ''}
     LOCAL_CONFIG
 
     ./configure \
@@ -142,6 +148,7 @@ in stdenv.mkDerivation {
       ${optionalString (!pulseSupport) "--disable-pulse"} \
       ${optionalString (!enableHardening) "--disable-hardening"} \
       ${optionalString (!enable32bitGuests) "--disable-vmmraw"} \
+      ${optionalString (enableWebService) "--enable-webservice"} \
       ${optionalString (open-watcom-bin != null) "--with-ow-dir=${open-watcom-bin}"} \
       --disable-kmods
     sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
@@ -168,7 +175,7 @@ in stdenv.mkDerivation {
       -name src -o -exec cp -avt "$libexec" {} +
 
     mkdir -p $out/bin
-    for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
+    for file in ${optionalString (!headless) "VirtualBox VBoxSDL rdesktop-vrdp"} ${optionalString (enableWebService) "vboxwebsrv"} VBoxManage VBoxBalloonCtrl VBoxHeadless; do
         echo "Linking $file to /bin"
         test -x "$libexec/$file"
         ln -s "$libexec/$file" $out/bin/$file