[an error occurred while processing this directive]

HP OpenVMS Systems

Secure Web Browser (based on SeaMonkey)
» 

HP OpenVMS Systems

OpenVMS information

» What's new on our site
» Upcoming events
» Configuration and buying assistance
» Send us your comments

HP OpenVMS systems

» OpenVMS software
» Supported Servers
» OpenVMS virtualization
» OpenVMS solutions and partners
» OpenVMS success stories
» OpenVMS service and support
» OpenVMS resources and information
» OpenVMS documentation
» Education and training

Secure Web Browser for OpenVMS

» Application Modernization and Integration
» Documentation
» Download
» Support and Feedback
» Software Licensing
» Copyrights and Trademarks

Evolving business value

» Business Systems Evolution
» AlphaServer systems transition planning
» Alpha RetainTrust program

Related links

» HP Integrity servers
» HP Alpha systems
» HP storage
» HP software
» HP products and services
» HP solutions
» HP support
disaster proof
HP Integrity server animation
HP Integrity server animation
Content starts here

Source Kits and Build Instructions

» Overview
» Downloads
» Software Prerequisites and Configuration
» Building SWB (based on SeaMonkey) on OpenVMS

IMPORTANT Source code kits and build instructions are provided "as-is" and without any support from HP. The binaries resulting from a build from either modified or unmodified source code are unsupported. HP provides support, via OpenVMS software services contracts, only for HP supplied binaries.

The build instructions are guidelines only and will require modification and customization for the OpenVMS environment used for the build. Other build prerequisites, such as compilers, might also exist.

Overview

The following instructions are intended to serve as a guide for building Secure Web Browser (based on SeaMonkey) on OpenVMS. The instructions assume that the reader is a knowledgeable, experienced OpenVMS developer. This provide information on the tools and processes that OpenVMS Engineering team uses to build Secure Web Browser (SWB), but they are not step-by-step directions.

With all the prerequisite hardware and software configured correctly, follow these steps to build SWB on OpenVMS:

  • Download SWB sources
  • Download build tools
  • Download kitting tools

Note: The build takes significant amount of time. For example, on a 667Mhz DS20E AlphaStation, building a non-debug version of Mozilla takes about 12 hours. However, on a 900MHz, HP rx2600 Itanium, it takes about 10 hours.

Downloads

The following downloads are required to obtain the source code and associated build tools:

Alpha

» Download SWB V1.1-12 Sources

» Download the below build tools and utilities:

» GTK for OpenVMS
» OpenVMS Porting Library
» LibIDL for OpenVMS
» GNV for OpenVMS
» Perl for OpenVMS
» Alpha Build tools
» Alpha Kitting tools

Integrity servers

» Download SWB V1.1-12 Sources

» Download the below build tools and utilities:

» GTK for OpenVMS
» OpenVMS Porting Library
» LibIDL for OpenVMS
» GNV for OpenVMS
» Perl for OpenVMS
» Integrity servers Build tools
» Integrity servers Kitting tools

IMPORTANT: Export restrictions for the Mozilla source code

This source code is subject to the U.S. Export Administration Regulations and other U.S. law, and may not be exported or re-exported to certain countries or to persons or entities prohibited from receiving U.S. exports (including Denied Parties, entities on the Bureau of Export Administration Entity List, and Specially Designated Nationals).

Software Prerequisites and Configuration

Alpha:

System Software

The following system software is required:

  • OpenVMS Alpha V7.3-2 or later
  • HP C V6.5-002
  • HP C++ V6.5-031 or later
  • DECC$SHR ECO with DECC$PIPE_BUFFER_QUOTA support
  • Alpha Macro64 V1.2
  • GNV V1.5-4 or later
  • Perl V5.8 or later
  • GTK+ 1.2-10 run time (this PCSI kit is available as part of the SWB 1.7-13 download)
  • OPL 1.0-0A6 run time (this PCSI kit is available as part of the SWB 1.7-13 download)
  • LibIDL build it from source

Account Quotas

The build account should have the following quotas as a minimum:

Maxjobs:      0  Fillm:    300  Bytlm:    100000
Maxacctjobs:  0  Shrfillm:   0  Pbytlm:        0
Maxdetach:    0  BIOlm:    500  JTquota:    4096
Prclm:       20  DIOlm:    500  WSdef:      4000
Prio:         4  ASTlm:    500  WSquo:     16000
Queprio:      0  TQElm:    200  WSextent: 150000
CPU:      (none) Enqlm:   3000  Pgflquo:  700000

Disk Space

In addition to the disk space requirements for the prerequisite software, the following is also required:

  • 500,000 blocks for the source code area
  • 1,200,000 blocks for a non-debug build area and/or 8,500,000 blocks for a debug area

Integrity servers:

System Software

The following system software is required:

  • OpenVMS V8.2 or higher
  • HP C V7.1 or higher
  • HP C++ V7.2 or higher
  • GNV V1.6-2 or later
  • Perl V5.8 or later
  • Build GTK, OPL, LIBIDL from sources (links are provided above)
  • ODS-5 disk

Account Quotas

The build account should have the following quotas as a minimum:

Maxjobs:      0  Fillm:    5000  Bytlm:   20000000
Maxacctjobs:  0  Shrfillm:    0  Pbytlm:         0
Maxdetach:    0  BIOlm:     500  JTquota:     4096
Prclm:       50  DIOlm:     500  WSdef:    1000000
Prio:         4  ASTlm:     500  WSquo:    1000000
Queprio:      4  TQElm:     200  WSextent: 1000000
CPU:      (none) Enqlm:    3000  Pgflquo:  7000000

Disk Space

In addition to the disk space requirements for the prerequisite software, the following is also required:

  • 500,000 blocks for the source code area
  • 6,841,724 blocks for a non-debug build area and/or 10,418,680 blocks for a debug area

Building SWB (Based on SeaMonkey) on OpenVMS

The Secure Web Browser (SWB) for OpenVMS Alpha and OpenVMS Integrity servers are built from Mozilla sources. Some of the files are modified to run SWB on OpenVMS and a few files were modified/replaced to provide the branding. The build procedure for SWB is identical to Mozilla.

Alpha:

SWB V1.1-12 (based on SeaMonkey V1.1.12) is used as an example throughout this section.

The directory structure will change based on user's environment. So, adjust system specific logicals and symbol variables to match with your system.

  • Download build tools and copy them on to OpenVMS Alpha system
    • $RUN swb_axp_buildtools.sfx_axpexe to generate a .bck file
    • Run the BACKUP command to restore the .bck file
  • Copy .bashrc file to your sys$login directory
  • Download SWB V1.1-12 source code and do the following;
    • $RUN swb_axp_v1112source.sfx_axpexe to generate a .bck file
    • Run the BACKUP command to restore the .bck file
  • Run swb_axp_setup.com to set the build environment

For example, SWB and GNV logicals will get defined like this:

SWB logicals

(LNM$PROCESS_TABLE)

"MOZ_OBJROOT" = "_DKA200:[v1112opt.]"
	"MOZ_SRCROOT" = "_DKA200:[v1112.mozilla.]"
	"MOZ_SRCTOP" = "_DKA200:[v1112]"	
GNV logicals

(LNM$PROCESS_TABLE)

	GNV_CC_INCLUDE_LENGTH_MAX" = "400"
	GNV_CC_WARN_INFO" = "1"
	GNV_CXX_SET_COMMAND" = "DEFINE/USER
	DECC$FILENAME_UNIX_ONLY FALSE"
	GNV_EXTRA" = "_DKA200:[gnv_extra]"
	GNV_LINK_AUTO_SYMVEC_NODUPS" = "1"
	GNV_LINK_LIB_TYPES" = "so exe a"
	GNV_LINK_MISSING_LIB_ERROR" = "1" 	
Setting up Configure
Bash>

cd /moz_srcroot
mv configure configure.old
sed \
-e 's/"confdefs.h"/"confdefs.h"\
#ifdef GENERIC_PTHREAD_REDEFINES\
#include "motif_redefines.h"\
#endif/' \
-e 's/^int *$//' \
-e 's/i*n*t* *main *()/\
#ifdef __cplusplus\
extern "C" { void __posix_exit(int); }\
#else\
void __posix_exit(int);\
#endif\
int maine();\
int main() {\
__posix_exit(maine());\
}\
int maine()/' \
-e \
'/^(set)/{
N
/^.*$/c\
# On some platforms the copious set output fills the pipe and we hang.\
(set) > /tmp/set$$.tmp 2>&1\
cat /tmp/set$$.tmp |\
case `(ac_space=" "; cat /tmp/set$$.tmp | grep ac_space) 2>&1` in
}' \
configure.old > configure

Another fix to configure is needed for Mozilla 1.7:

old
" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
fi; done

new
" $ac_file_inputs > /tmp/cs.tmp
sed -f conftest.subs /tmp/cs.tmp > $ac_file
rm /tmp/cs.tmp
fi; done 
Running Configure (non debug)
$ create /dir [.vms_cxx]
$ library /object /create [.vms_cxx]CXX$LINK.OLB
$ set file /ent=[.vms_cxx]CXXINK.OLB [.vms_cxx]CXX$LINK.OLB ! make bug
$!
$! VMS build optimization
$ create /dir moz_objroot:[dist.bin]
$ create /dir moz_objroot:[dist.lib]
$ copy /log work:[work.cxx]libvmscxx.so moz_objroot:[dist.bin]libvmscxx.so
$ copy /log work:[work.cxx]libvmscxx.so moz_objroot:[dist.lib]libvmscxx.so

. /work/work/moz.sh   # define moz_srcroot and moz_objroot
. /work/work/moz.sh # define moz_srcroot and moz_objroot
cd $moz_objroot
/moz_srcroot/configure \
--enable-application=suite \
--with-pthreads --disable-gtktest --disable-glibtest \
--disable-profilesharing \
--enable-md --disable-tests \
--without-zlib --enable-extensions=default,irc \
--with-glib --with-glib-prefix=/_dka0/gtk/1_2_10/glib/ \
--with-gtk --with-gtk-prefix=/_dka0/gtk/1_2_10/gtk/ \
--with-libIDL-prefix=/_dka200/libIDL-0.6.5 \
--enable-crypto --disable-freetype2 --enable-nspr-autoconf \
--disable-debug --enable-optimize


Tidy up after configure:
rm .MAP

Finally, start the build:
mkdir logs
  /gnu/bin/make -j2 > logs/build 2>&1      # or use /work/work/build.sh

Scan log file for errors:

bash$ /work/work/scanlog build.
Total C Modules:   628
C++ Modules:      1953
C/C++ Info:        144
C/C++ Warn:        547
C/C++ Error:         0
C/C++ fatal:         0
Share Images:       90
Archive Warns:       0
Archive Errs:        0
Symbol Trunc:        0
Symbol Dupl:         0
gmake errs:          0
DCL errs:            0
Link errs:           0
link undefsym:       0 
After the Build
Download kitting tools and copy them on to OpenVMS Alpha system
  • $RUN swb_axp_Kittingtools.sfx_axpexe to generate a .bck file
  • Run the BACKUP command to restore the .bck file

The "kit" contains all files in the dist/bin tree. Copy these files to a user defined directory and then create the kit.

$! Create saveset from build area
$ define xxx build1:[v1112opt.dist.] /trans=conc
$ back /log /nocrc /group=0 xxx:[bin...]*.*;0 sys$manager:V1112opt.sav/sav
$! Restore saveset into run/kit area
$ set default work:[work]
$ back /log sys$manager: V1112opt.sav/sav [...]*.*
$ rename bin.dir V1112opt.dir
$ set def work:[work.V1112opt]
$ @[-]swb_axp_tidy
$ delete [...]*.dir;* /log ! until no more deletes
$ @mozilla ! Just launch, select any menu item and exit
$! Create the Mozilla PCSI kit
$ set def work:[work]
$ @swb_axp_pcsi
$! make sure GTK and OPL kits are in place and match software statements
$ @swb_axp_make_kit  
Incremental Building

Once SWB is built and running, you can make changes as necessary.

Important: Change the source code in the source tree (/v1112/mozilla/...) and build in the object tree (/v1112opt/...). Do not attempt to build in the source tree.

It is faster to build where changes have been made (assuming that the changes are not global in nature). You can use gmake build from the top of the object tree, but this will take few hours just to build one or two files that were changed.

Depending upon the build type, follow these steps for an incremental build:

Shared Build:

  • gmake in the object directory which corresponds to the source directory where changes were made.
  • If a shared image (.so) was not created, find the directory where the shared image is built and gmake there as well (usually there is a build directory one or two levels higher in the tree).
  • Copy the newly built shared image (.so) file out into the SWB run tree.

Static Build:

  • gmake in the object directory which corresponds to the source directory where changes were made.
  • If a library file (.a) was not created, find the directory where the library file is built and gmake in there as well (usually there is a build directory one or two levels higher in the tree). Note that the library file must be named something like foo.a. If only foo_s.a is built, you must still find the directory where foo.a gets built.
  • gmake in xpfe/bootstrap. This will rebuild the mozilla-bin image which you then copy out into your SWB run tree.

Integrity servers:

SWB 1.1-12 (based on SeaMonkey V1.1-12) is used as a sample example throughout this section. The directory structure will change based on user's environment. So, adjust system specific logicals and symbol variables to match with your system.

  • Download build tools and copy them on to OpenVMS Integrity servers system
    • $RUN swb_i64_buildtools.sfx_i64exe to generate a .bck file
    • Run the BACKUP command to restore the .bck file
  • Copy .bashrc file to your sys$login directory
  • Download SWB V1.1-12 source code and do the following;
    • $RUN swb_axp_v1112source.sfx_axpexe to generate a .bck file
    • Run the BACKUP command to restore the .bck file
  • Run swb_i64_build_setup.com or an equivalent collection of commands gets executed

For example, SWB and GNV logicals will get defined like this:

SWB logicals

(LNM$PROCESS_TABLE)

"LIBMOZJS_MAP" = "moz_objroot:[js.src].map"
"MOZ_OBJROOT" = "dka0:[v1112_inprog.]"
"MOZ_SRCROOT" = "dka0:[v1112_inprog.mozilla.]"	
GNV logicals

(LNM$PROCESS_TABLE)

"GNV_CC_INCLUDE_LENGTH_MAX" = "400" 
"GNV_CC_WARN_INFO" = "1" 
"GNV_CXX_SET_COMMAND" = "DEFINE/USER 
DECC$FILENAME_UNIX_ONLY FALSE" 
"GNV_LINK_AUTO_SYMVEC_NODUPS" = "1" 
"GNV_LINK_LIB_TYPES" = "so exe a" 
"GNV_LINK_MISSING_LIB_ERROR" = "1" 
Setting up Configure

Run configure like this,

$ sh swb_i64_run_config

Once the configure is done successfully, run swb_i64_batch_build.com like this,

$ @ swb_i64_batch_build

This submits a command file of the same name for batch processing. Your log file will be moz_objroot:[000000]build.log. Assuming the current best case situation, the build will run for about nine hours on an RX2600 or similar.

You can then run your copy of Mozilla with:

$ set default moz_objroot:[dist.bin]
$ set display/create ... if necessary
$ @mozilla
After the Build
  1. Download kitting tools and copy them on to OpenVMS Integrity servers system
    • $RUN swb_i64_kittingtools.sfx_i64exe to generate a .bck file
    • Run the BACKUP command to restore the .bck file
  2. After building SWB you are left with a directory tree of moz_objroot:[dist.bin...]. Make a copy of this tree, namely, $ backup moz_objroot:[dist.bin...]*.*;* dka0:[mozstaging...]
  3. Make sure all files are owned by [SYSTEM]
  4. Run swb_i64_tidy.com from the staging directory,
    $ set default dka0:[mozstaging]
    $ @dka0:[ledoux.mozkitting]swb_i64_tidy
  5. Running this command file does some general cleanup and puts the xpt files together for better performance. The last thing it does is instruct you to run the delete command mentioned above. This is just a delete [...]*.dir;*/log command to get rid of empty directories. Repeat this command until all empty directories are deleted.
  6. Make sure the command: define/user decc$efs_charset enable is present in the mozilla.com file in the staging directory.
  7. Set the default back to dka0:[ledoux.mozkitting].
  8. Run the swb_i64_make_a_kit.com, you will be left with the PCSI kits and the SFXEXE kits.

» Return to the Secure Web Browser for OpenVMS home page