summaryrefslogtreecommitdiff
path: root/app-emulation/virtualbox/files/virtualbox-4-vnc.patch
blob: 76e2c68524b79ffe5a03fa6334f3f4d14388d6dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
--- configure.old	2011-02-18 20:22:18.879463002 +0100
+++ configure	2011-02-18 20:30:22.355463011 +0100
@@ -88,6 +88,7 @@
 WITH_OPENGL=1
 WITH_HARDENING=1
 WITH_VDE=0
+WITH_VNC=0
 WITH_DOCS=1
 BUILD_LIBXML2=
 BUILD_LIBXSLT=
@@ -123,6 +124,8 @@
 MESA="-lGL"
 INCZ=""
 LIBZ="-lz"
+INCVNCSERVER=""
+LIBVNCSERVER="-lvncserver"
 CXX_FLAGS=""
 if [ "$OS" = "freebsd" ]; then
   INCCURL="-I/usr/local/include"
@@ -956,6 +959,47 @@
 }
 
 #
+# Check for libvncserver, needed for VNC in OSE
+#
+check_vncserver()
+{
+    test_header libvncserver
+    cat > $ODIR.tmp_src.cc <<EOF
+#include <cstdio>
+#include <rfb/rfbconfig.h>
+
+extern "C" int main()
+{
+  const char* v=LIBVNCSERVER_VERSION;
+  unsigned int major = 0, minor = 0, micro = 0;
+
+  for (; *v !='.' && *v != '\0'; v++) major = major*10 + *v-'0';
+  if (*v == '.') v++;
+  for (; *v !='.' && *v != '\0'; v++) minor = minor*10 + *v-'0';
+  if (*v == '.') v++;
+  for (; *v !='.' && *v != '\0'; v++) micro = micro*10 + *v-'0';
+
+  printf("found version %s", LIBVNCSERVER_PACKAGE_VERSION);
+  if (major*10000 + minor*100 + micro >= 907)
+  {
+  printf(", OK.\n");
+  return 0;
+  }
+  else
+  {
+    printf(", expected version 0.9.7 or higher\n");
+    return 1;
+  }
+}
+EOF
+  if test_compile "$LIBVNCSERVER $INCVNCSERVER" libvncserver libvncserver; then
+    if test_execute; then
+      cnf_append "VBOX_WITH_VNC" "1"
+    fi
+  fi
+}
+
+#
 # Check for libcurl, needed by S3
 #
 check_curl()
@@ -2115,6 +2159,7 @@
 [ $WITH_KMODS   -eq 1 ] && echo "  --disable-kmods          don't build Linux kernel modules (host and guest)"
 [ $WITH_OPENGL  -eq 1 ] && echo "  --disable-opengl         disable OpenGL support (2D & 3D)"
 [ $WITH_GSOAP   -eq 0 ] && echo "  --enable-webservice      enable the webservice stuff"
+[ $OSE          -eq 1 ] && echo "  --enable-vnc             enable the VNC server"
 [ $WITH_DOCS    -eq 1 ] && echo "  --disable-docs           don't build the documentation"
 [ "$OS" = "linux" -o "$OS" = "freebsd" ] && echo "  --enable-vde             enable VDE networking"
 cat << EOF
@@ -2280,6 +2325,9 @@
     --enable-webservice)
       [ $WITH_GSOAP -eq 0 ] && WITH_GSOAP=1
       ;;
+    --enable-vnc)
+      WITH_VNC=1
+      ;;
     --disable-hardening)
       WITH_HARDENING=0
       ;;
@@ -2553,6 +2601,15 @@
   cnf_append "VBOX_WITH_DOCS_PACKING" ""
 fi
 
+# VNC server support
+if [ $OSE -ge 1 ]; then
+  if [ $WITH_VNC = 1 ]; then
+    check_vncserver
+  else
+    cnf_append "VBOX_WITH_VNC" ""
+  fi
+fi
+
 # success!
 echo
 echo "Successfully generated '$CNF' and '$ENV'."