Compiling 3.3.5 on HP-UX 11.0

Jose Luu jluu@mainsoft.com
Sun Nov 10 23:45:01 2002


Here is the recipe:

1)
You will need the gnu preprocessor, as I have not found how to make the hp
preprocessor work, the patch to imake.c will force it to work in
"-traditional" mode (there should be a way of doing this by modifying the
hp.cf, but I could not make it work).
Note to maintainters: the -Wall compiler flag should be removed from file
Xvnc/programs/Xserver/hw/vnc/Imakefile, as it is platform specific.

2)
Apply the following patch (use gnu patch), with command: (cd
vnc-3.3.5-unixsrc; patch -p2 < hp.patch)
diff -rC 3 hp.orig/vnc-3.3.5-unixsrc/Xvnc/config/imake/imake.c
hp2/vnc-3.3.5-unixsrc/Xvnc/config/imake/imake.c
*** hp.orig/vnc-3.3.5-unixsrc/Xvnc/config/imake/imake.c Sat May 11 10:57:05
2002
--- hp2/vnc-3.3.5-unixsrc/Xvnc/config/imake/imake.c Fri Nov  8 16:47:11 2002
***************
*** 593,598 ****
--- 593,599 ----
   if (!cpp)
    cpp = DEFAULT_CPP;
  #endif
+  AddCppArg("-traditional");
   cpp_argv[0] = cpp;
   AddCppArg(ImakefileC);
  }
diff -rC 3 hp.orig/vnc-3.3.5-unixsrc/Xvnc/programs/Xserver/hw/vnc/Imakefile
hp2/vnc-3.3.5-unixsrc/Xvnc/programs/Xserver/hw/vnc/Imakefile
*** hp.orig/vnc-3.3.5-unixsrc/Xvnc/programs/Xserver/hw/vnc/Imakefile Wed Aug
28 07:53:42 2002
--- hp2/vnc-3.3.5-unixsrc/Xvnc/programs/Xserver/hw/vnc/Imakefile Fri Nov  8
16:57:23 2002
***************
*** 12,18 ****
  #include <vnclibs.def>
  INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) -I$(XINCLUDESRC) \
      -I../../cfb -I../../mfb -I../../mi -I../../include -I../../os \
!     $(VNCCPPFLAGS) -Wall

  DEFINES = ServerOSDefines

--- 12,18 ----
  #include <vnclibs.def>
  INCLUDES = -I. -I$(XBUILDINCDIR) -I$(FONTINCSRC) -I$(XINCLUDESRC) \
      -I../../cfb -I../../mfb -I../../mi -I../../include -I../../os \
!     $(VNCCPPFLAGS)

  DEFINES = ServerOSDefines

diff -rC 3 hp.orig/vnc-3.3.5-unixsrc/vncviewer/sockets.cxx
hp2/vnc-3.3.5-unixsrc/vncviewer/sockets.cxx
*** hp.orig/vnc-3.3.5-unixsrc/vncviewer/sockets.cxx Tue Oct 22 11:09:35 2002
--- hp2/vnc-3.3.5-unixsrc/vncviewer/sockets.cxx Fri Nov  8 16:31:40 2002
***************
*** 94,100 ****
      fos = new rdr::FdOutStream(rfbsock);

      struct sockaddr_in peeraddr, myaddr;
!     socklen_t addrlen = sizeof(struct sockaddr_in);

      getpeername(sock, (struct sockaddr *)&peeraddr, &addrlen);
      getsockname(sock, (struct sockaddr *)&myaddr, &addrlen);
--- 94,100 ----
      fos = new rdr::FdOutStream(rfbsock);

      struct sockaddr_in peeraddr, myaddr;
!     int addrlen = sizeof(struct sockaddr_in);

      getpeername(sock, (struct sockaddr *)&peeraddr, &addrlen);
      getsockname(sock, (struct sockaddr *)&myaddr, &addrlen);
***************
*** 262,268 ****
  {
    int sock;
    struct sockaddr_in addr;
!   socklen_t addrlen = sizeof(addr);
    int one = 1;

    sock = accept(listenSock, (struct sockaddr *) &addr, &addrlen);
--- 262,268 ----
  {
    int sock;
    struct sockaddr_in addr;
!   int addrlen = sizeof(addr);
    int one = 1;

    sock = accept(listenSock, (struct sockaddr *) &addr, &addrlen);


3)
configure using the following command:
X_CFLAGS=-I/usr/contrib/X11R6/include CXX=/opt/aCC/bin/aCC ./configure
--x-libraries="/usr/contrib/X11R6/lib -lXaw"


4)
make Xvnc using the folowing command:
(cd Xvnc;IMAKECPP=/usr/local/lib/gcc-lib/hppa1.1-hp-hpux10.00/2.7.0/cpp make
World)


5)
You can start it this way if you want dtlogin:
Xvnc -fp
/usr/lib/X11/fonts/misc,/usr/lib/X11/fonts/hp_roman8/75dpi,/usr/lib/X11/fonts
/iso_8859.1/75dpi/,/usr/lib/X11/fonts/hp_japanese/100dpi/ -query `hostname`
-geometry 1024x768 :2