--- configure.orig	2024-01-11 06:59:58.000000000 -0500
+++ configure	2024-05-30 14:33:55.416630000 -0400
@@ -51,6 +51,8 @@
     ;;
   freebsd)
     ;;
+  midnightbsd)
+    ;;
   netbsd)
     ;;
   sunos)
@@ -136,13 +138,17 @@
 INCDEVMAPPER=""
 LIBDEVMAPPER="-ldevmapper"
 CXX_FLAGS=""
-if [ "$OS" = "freebsd" ]; then
+if [ "$OS" = "freebsd" || "$OS" = "midnightbsd" ]; then
   INCCURL="-I/usr/local/include"
   LIBCURL="-L/usr/local/lib -lcurl"
+  INCALSA="-I/usr/local/include"
+  LIBALSA="-L/usr/local/lib"
   INCPULSE="-I/usr/local/include"
   LIBPULSE="-L/usr/local/lib"
   INCPNG="-I/usr/local/include"
   LIBPNG="-L/usr/local/lib -lpng"
+  INCVNCSERVER="-I/usr/local/include"
+  LIBVNCSERVER="-L/usr/local/lib"
 else
   INCCURL=""
   LIBCURL="-lcurl"
@@ -564,6 +570,7 @@
     "darwin")   wc_bin="binosx";;  # ??
     "dos")      wc_bin="binw";;
     "freebsd")  wc_bin="binfbsd";; # ??
+    "midnightbsd")  wc_bin="binfbsd";; # ??
     "linux")    wc_bin="binl";;
     "netbsd")   wc_bin="binnbsd";; # ??
     "solaris")  wc_bin="binsol";;  # ??
@@ -924,7 +931,7 @@
   [ -n "$INCZ" ] && I_INCZ=`prefix_I "$INCZ"`
   if test_compile "$LIBZ $I_INCZ" zlib zlib; then
     if test_execute; then
-      echo "if1of (\$(KBUILD_TARGET),darwin freebsd haiku linux)" >> $CNF
+      echo "if1of (\$(KBUILD_TARGET),darwin midnightbsd freebsd haiku linux)" >> $CNF
       cnf_append " SDK_VBOX_ZLIB_LIBS" "`strip_l "$LIBZ"`"
       cnf_append " SDK_VBOX_ZLIB_INCS" "$INCZ"
       echo "endif" >> $CNF
@@ -957,7 +964,7 @@
   [ -n "$INCLZF" ] && I_INCLZF=`prefix_I "$INCLZF"`
   if test_compile "$LIBLZF $I_INCLZF" liblzf liblzf nofatal; then
     if test_execute; then
-      echo "if1of (\$(KBUILD_TARGET),darwin freebsd haiku linux)" >> $CNF
+      echo "if1of (\$(KBUILD_TARGET),darwin midnightbsd freebsd haiku linux)" >> $CNF
       cnf_append " SDK_VBOX_LZF_LIBS" "`strip_l "$LIBLZF"`"
       cnf_append " SDK_VBOX_LZF_INCS" "$INCLZF"
       echo "endif" >> $CNF
@@ -1257,7 +1264,7 @@
 #endif
 }
 EOF
-  if test_compile "-lasound" asound asound; then
+  if test_compile "$INCALSA $LIBALSA -lasound" asound asound; then
     test_execute
   fi
 }
@@ -1564,6 +1571,7 @@
           FLGQT5=`pkg-config Qt5Core --cflags`
           # gcc 4.8 is able to compile with C++11 (see also VBOX_GCC_std in Config.kmk)
           [ $(($cc_maj * 100 + $cc_min)) -ge 408 ] && FLGQT5="$FLGQT5 -std=c++11"
+          FLGQT5="$FLGQT5 -std=c++11"
           INCQT5=`strip_I "$FLGQT5"`
           LIBDIR5=`pkg-config Qt5Core --variable=libdir`
           LIBQT5=`pkg-config Qt5Core Qt5Gui --libs`
@@ -1702,7 +1710,7 @@
       fi
       cat > $ODIR.tmp_src.cc << EOF
 #include <cstdio>
-#include <opus/opus.h>
+#include <opus.h>
 extern "C" int main(void)
 {
   OpusEncoder *test;
@@ -1881,7 +1889,7 @@
     fi
     echo "export PATH" >> $ENV
     echo "unset path_kbuild_bin path_dev_bin" >> $ENV
-    KBUILD_SED="$KBUILDDIR_BIN/kmk_sed"
+    KBUILD_SED="/usr/local/bin/kmk_sed"
   elif [ "$OS.$BUILD_MACHINE" = "darwin.amd64" ]; then
     # Currently there are no amd64 kBuild bins. So use the x86 variant in any case.
     KBUILDDIR_BIN="$KBUILDDIR/bin/$OS.x86"
@@ -1897,7 +1905,7 @@
     echo "echo \"\$PATH\" | grep -q \"\$path_dev_bin\" || PATH=\"\$path_dev_bin:\$PATH\"" >> $ENV
     echo "export PATH" >> $ENV
     echo "unset path_kbuild_bin path_dev_bin" >> $ENV
-    KBUILD_SED="$KBUILDDIR_BIN/kmk_sed"
+    KBUILD_SED="/usr/local/bin/kmk_sed"
   elif check_avail "kmk" KBUILDDIR really; then
     # check for installed kBuild
     KBUILD_SED="`which_wrapper kmk_sed`"
@@ -2034,8 +2042,8 @@
         echo "compiling the following source file:" >> $LOG
         cat $ODIR.tmp_src.cc >> $LOG
         echo "using the following command line:" >> $LOG
-        echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG
-        $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1
+        echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread" >> $LOG
+        $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so -pthread >> $LOG 2>&1
         if [ $? -eq 0 ]; then
           found=1
           break
@@ -2151,7 +2159,7 @@
         else
           cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
         fi
-        cnf_append "VBOX_GSOAP_CXX_LIBS"    "`strip_l "$GSOAP_CXX_LIBS"`"
+        cnf_append "VBOX_GSOAP_CXX_LIBS"    "`strip_l "$GSOAP_CXX_LIBS"` z"
         gsoap_version=`pkg-config gsoapssl++ --modversion`
         log_success "found version $gsoap_version"
         return
@@ -2384,7 +2392,7 @@
 [ $WITH_DOCS    -eq 1 ] && echo "  --disable-docs           don't build the documentation"
 [ $WITH_LIBVPX  -eq 1 ] && echo "  --disable-libvpx         don't use libvpx for video capturing"
 [ $WITH_LIBOPUS -eq 1 ] && echo "  --disable-libopus        don't use libopus for audio capturing"
-[ "$OS" = "linux" -o "$OS" = "freebsd" ] && echo "  --enable-vde             enable VDE networking"
+[ "$OS" = "linux" -o "$OS" = "freebsd" -o "$OS" = "midnightbsd" ] && echo "  --enable-vde             enable VDE networking"
 cat << EOF
   --disable-udptunnel      disable UDP tunnel networking
   --disable-devmapper      disable device mapper library access
@@ -2519,7 +2527,7 @@
     --with-openssl-dir=*)
       OPENSSLDIR=`echo $option | cut -d'=' -f2`
       INCCRYPTO="-I${OPENSSLDIR}/include"
-      LIBCRYPTO="${OPENSSLDIR}/lib/libssl.a ${OPENSSLDIR}/lib/libcrypto.a"
+      LIBCRYPTO="-L${OPENSSLDIR}/lib -lssl -lcrypto"
       # On Linux static OpenSSL typically needs a few additional libraries.
       [ "$OS" = "linux" ] && LIBCRYPTO="-ldl $LIBPTHREAD -lm"
       ;;
@@ -2865,12 +2873,22 @@
   [ $WITH_JAVA   -eq 1 ] && check_java
 
   # PulseAudio
-  if [ $WITH_PULSE -eq 1 ]; then
-    check_pulse
-  elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio.
-    cnf_append "VBOX_WITH_AUDIO_PULSE" ""
-  elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio.
-    cnf_append "VBOX_WITH_AUDIO_PULSE" "1"
+  if [ "$OS" = "linux" -o "$OS" = "freebsd" -o "$OS" = "netbsd" -o "$OS" = "midnightbsd"]; then
+    if [ $WITH_ALSA -eq 1 ]; then
+      check_alsa
+    else
+      cnf_append "VBOX_WITH_AUDIO_ALSA" ""
+    fi
+    if [ $WITH_PULSE -eq 1 ]; then
+      check_pulse
+    elif [ $WITH_PULSE -eq 0 ]; then # Force disabling PulseAudio.
+      cnf_append "VBOX_WITH_AUDIO_PULSE" ""
+    elif [ $WITH_PULSE -eq 2 ]; then # --enable-pulse was passed, force PulseAudio.
+      cnf_append "VBOX_WITH_AUDIO_PULSE" "1"
+    fi
+    if [ $WITH_DBUS -eq 0 ]; then
+      cnf_append "VBOX_WITH_DBUS" ""
+    fi
   fi
 fi
 
@@ -2886,14 +2904,6 @@
     cnf_append "VBOX_WITHOUT_LINUX_TEST_BUILDS" "1"
   fi
   if [ $ONLY_ADDITIONS -eq 0 ]; then
-    if [ $WITH_ALSA -eq 1 ]; then
-      check_alsa
-    else
-      cnf_append "VBOX_WITH_AUDIO_ALSA" ""
-    fi
-    if [ $WITH_DBUS -eq 0 ]; then
-      cnf_append "VBOX_WITH_DBUS" ""
-    fi
     if [ $WITH_DEVMAPPER -eq 1 ]; then
       check_libdevmapper
     else
@@ -2921,7 +2931,7 @@
 fi
 
 # VDE
-if [ $ONLY_ADDITIONS -eq 0 -a "$OS" = "linux" -o "$OS" = "freebsd" ]; then
+if [ $ONLY_ADDITIONS -eq 0 -a "$OS" = "linux" -o "$OS" = "freebsd" -o "$OS" = "midnightbsd"]; then
   if [ $WITH_VDE -eq 1 ]; then
     cnf_append "VBOX_WITH_VDE" "1"
   fi
