Home About Us News Downloads Application Source Legacy Build Join /Login Projects Mailing Lists Bugs and Issues Find an Issue To-Dos Documentation User Help Project FAQs Guidelines Contributing Licenses Site Help * Search : * By any use of this Website, you agree to be bound by these Policies and Terms of Use . Project Project Home | News | Files | Members Resources: Mailing Lists | Documentation | Source: CVS, Browsing | Issue Tracking ------------------------------------------------------------------------ OpenVMS OpenOffice.org port / Updated 2003-09-24, by Martin Borgman / News 24 September 2003: Added GNU m4 1.4, the basis for many UNIX tools and updated the email address of the Tru64 project leader. 21 September 2003: Added the POSIX.2 utility PAX. With PAX we can extract the files from the OpenOffice.org source distribution. Added a UNIX to OpenVMS porting hints and tips section to the reference section. Updated the Tru64 reference section. 10 September 2003: Updated versions of DIX and FSHELP and I updated the tcp/ip version of our server to version T5.4-13L. 10 August 2003: See the link to the reference section. It contains a number of tables with the UNIX System Interfaces with a column for OpenVMS 7.3-2. The information in the various UNIX standard colums was compiled using The System Interface Table, an extract from The Single UNIX Specification, Version 3. Published in the U.K. by The Open Group. In the reference section you also find the Tru64 port of OpenOffice.org 1.0. We use this port as reference material because they used the same compiler suite we are using. 27 July 2003: I completely revised our porting web site. It now conforms to the OpenOffice.org style, but is not yet hosted on the OpenOffice.org site. We will move this site to the OpenOffice.org site when we have some actual results. There is also some other software hosted on this site, some of these programs are helpful or necessary to port OpenOffice.org to OpenVMS, some have no relation to the project at all. All these tools will be moved to the 4ovms.dyndns.org web site in the near future. Why port OpenOffice.org to OpenVMS?? We have all seen the amazing effort that brought mozilla.org to OpenVMS. Whenever a new release is ready for download, a VMS version is always among the first ports. Because of this great effort, we decided to start an OpenOffice port to OpenVMS. When we made this decision, we really didn't know what we were getting into. First of all the OpenOffice 1.0 source tree consists of nearly 50,000 files, although not all of them are actual source files. Second VMS has no bash shell, so what does ./configure do, and how do we get these thing going on VMS. Last but not least, none of us really have any experience with such large porting projects. So we did the stupid thing and started early 2002 with the 638 release of OpenOffice on an OpenVMS 7.3 system, with an ODS-5 volume for the source files. Our second issue was partly solved by the GNV project. This gave us bash and several other standard UNIX utilities, but none of them actually work on ODS-5 file names. We were lucky that only very few of the source files contain characters that are not supported by ODS-2 so with some tinkering we could get a working version of dmake to get the build started. We were deeply into debugging our ./configure problems when Compaq asked us to participate in the OpenVMS 7.3-1 (Ruby) field test. One of the things that made this interesting for us was that some of the DII COE enhancements in OpenVMS 7.2-6C1 were supposedly ported to OpenVMS 7.3-1. This could make our porting effort a lot easier. So what is DII COE? For those of you who spent the last couple of years or so out of reach of the media and have no idea what the terms DII and COE mean, please read on. Over two years ago Compaq signed a deal with the US military about continued long-term support of OpenVMS. For Compaq this meant that OpenVMS would be on the map again. Companies like Gartner that told us to forget about OpenVMS and continue our business on UNIX or even worse Windows, suddenly started to write nice reports about VMS. The deal also meant an enormous amount of work for Compaq. There was a lot to be done and so little time. The military wanted Compaq to change OpenVMS to support their Defense Information Infrastructure (DII) Common Operating Environment (COE), which is built on SUN Solaris technology. The COE kernel consists of: * Java-based system management utilities * Account and profile management * Common Data Store * Installation and Segment development tools OpenVMS needs a lot of changes to support an easy port of the DII COE kernel, but these changes would also allow others to easily port there (SUN) UNIX software to OpenVMS. Compaq's deal with the US military created some very interesting planning issues. To secure the long-term support for OpenVMS Compaq really needed to get started with the Itanium port of OpenVMS. Because OpenVMS 7.3 was already in the final stages of development, Compaq decided to start a new project based on OpenVMS 7.2 with some parts of OpenVMS 7.3. This was to become their first DII COE release named 7.2-6C1. So they now had three major projects with very tight schedules. You can see there status at the links below. * HP recently announced OpenVMS evaluation release version 8.0 for ItaniumŪ-based HP Integrity Servers * The field test version of OpenVMS Version 7.3-2 is scheduled to be available in June 2003, with the final version available in Q4 2003 * The OpenVMS application platform has been certified by Hewlett-Packard Company as in substantial compliance with all certification criteria for the COE Kernel Version 4.2.0.0P4 Somewhere in the future these tree projects will merge into one. This will be an OpenVMS version that runs on VAX, Alpha and Intel Itanium hardware and on which you can build and run software that was developed for Sun Solaris as if it was made for OpenVMS. See the OpenVMS Rolling Roadmaps . Compaq is considering extending this UNIX support by adding UNIX 98 and/or Linux compliance. Haven't I heard this all before? Some of you must have heard this story before. Before OSF there was another effort that would bring a unified UNIX standard to the market. This would make porting application to the different UNIX's a lot easier. This effort brought us the POSIX standard. Digital VMS and I think IBM OS390 were among the first to support POSIX. POSIX on VMS was however not integrated in the OS but it was sold separately as a layered product. It did work well, but because it wasn't integrated in the OS it was also very slow. With the DII COE effort Compaq will add the necessary system calls to the VMS kernel and not emulate them as they did with POSIX. So UNIX applications that are ported to OpenVMS with DII COE support will not only port easily, they will also run just as fast as on a comparable UNIX machine. What about 7.3-1 Because the OpenVMS 7.2-6Cx releases are not available to the general public, OpenVMS 7.3-1 is the next best thing. So what does OpenVMS 7.3-1 have to offer? File System enhancements To support UNIX applications on OpenVMS we need a file system that can handle UNIX file system specifics like longer names, odd characters in names and case sensitivity. Some of these features were already in place with ODS-5 but the following features where added in OpenVMS 7.3-1 * You can now have an ODS-5 system disk * You now have hard links on ODS-5 disks | $ INITIALIZE/VOLUME_CHARACTERISICS=[NO]HARDLINKS $ SET VOLUME/VOLUME_CHARACTERISICS=[NO]HARDLINKS $ SET FILE foo. /ENTER=foo.link $ DIRECTORY/LINKCOUNT | * You now have POSIX style time of last file access on ODS-5 disks | $ INITIALIZE/VOLUME_CHARACTERISICS=[NO]ACCESS_DATES=[deltatime] $ SET VOLUME/VOLUME_CHARACTERISICS=[NO]ACCESS_DATES=[deltatime] $ DIRECTORY/DATE=ACCESSED | * You can now tell DCL to lookup files case sensitively | $ SET PROCESS/CASE_LOOKUP={SENSITIVE,BLIND} | * You now have UNIX style mount points supported across volumes (I havent found any information on this feature in the release notes of EFT 1) * And of course RMS file system Performance Enhancements There are some rumors about a new file system for OpenVMS in the future. This new file system would be at least as fast as the fastest thing on UNIX. We'll see when it arrives. CRTL This is basically were things should get more exiting because what we need for our porting project is a C runtime library that is fully UNIX compliant. * The CRTL now supports larger than 2GB files. To support this the functions fseeko and ftello were added and the functions fstat, ftruncate, ftw, lseek, mmap, stat and truncate now have support for the new 64-bit file offset * Feature switches to enable or disable new (UNIX) functionality (I will explain these later) o DECC$FILENAME_UNIX_ONLY o DECC$XPG4_STRPTIME o DECC$EFS_CASE_PRESERVE o DECC$EFS_CASE_SPECIAL o DECC$ARGV_PARSE_STYLE o DECC$FILE_SHARING o DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION o DECC$DEFAULT_LRL o DECC$TZ_CACHE_SIZE o DECC$EFS_FILE_TIMESTAMPS o DECC$ENABLE_GETENV_CACHE o DECC$SELECT_IGNORES_INVALID_FD o DECC$EXEC_FILEATTR_INHERITANCE o DECC$POSIX_SEEK_STREAM_FILE o DECC$STDIO_CTX_EOL o DECC$TRACE o DECC$PIPE_BUFFER_SIZE o DECC$FILE_OWNER_UNIX o DECC$FILE_PERMISSION_UNIX o DECC$READDIR_DROPDOTNOTYPE o DECC$RENAME_NO_INHERIT * Virtual root directory support (the UNIX / directory) o Logical SYS$POSIX_ROOT defines the virtual root o Logical DECC$DISABLE_POSIX_ROOT to enable or disable the virtual root * Although OpenVMS 7.3-1 does not support POSIX stile IDs, it does support 32-bit UID and GID in the following functions: o endpwent, getpwent, setpwent - user database functions o endgrent, getgrent, setgrent - group database entry functions o getgrnam, getgrnam_r - search group database for name o getgrgid, getgrgid_r - get group database entry for a group ID * TCP/IP functions (Not in the release notes?) o freehostent o getipnodebyaddr o getipnodebyname * Feature switch setting functions: o decc$feature_get_index o decc$feature_get_name o decc$feature_get_value o decc$feature_set_value * Miscellaneous functions: o strtok_r (reentrant version of strtok)(Not in the release notes) o vfscanf, vfwscanf, vscanf, vwscanf, vsscanf, vswscanf GNV GNV, which stands for "GNU's Not VMS", is an Open Source initiative to bring a UNIX like environment to OpenVMS. It is hosted on the sourceforge web site http://gnv.sourceforge.net/ . GNV provides an environment for porting and running UNIX tools and software on OpenVMS (this is what we need for our porting project). It contains an implementation of the BASH shell and many UNIX shell utilities. The OpenVMS team added the following to the sourceforge kit: * ODS-5 file system support (CRTL). * additional utilities. * And distribute it as a PCSI kit (including the source code). What do the new 7.3-1 features mean for our porting effort The file system enhancements are of course interesting, but many OpenVMS commands do not behave as expected when you set your process to case sensitive mode. For example I had an aborted TPU session which I could not recover until I changed my process settings to case blind. What amazed me the most was that the CDE tools don't like ODS-5 filenames. ODS-5 is not that new! The file system enhancements are not all that important to our project at the moment, but this may change when things really get going. The CRTL is very important for our project. The better the UNIX compliance of the CRTL, the easier our port. We desperately need a working "fork" but this function is not part of the EFT release nor will it be in the final 7.3-1 release. Compaq however promised regular updates to the CRTL so lets hope Compaq gets around to this in the next CRTL update. Unfortunately for our project the ODS-5 support in the 7.3-1 EFT was broken. Because of the broken ODS-5 support in the CRTL the GNV tools didn't work on ODS-5 filenames either. We also had an odd problem with tar. We are unable to successfully extract all the files from the OpenOffice source tar file. We had to untar the source files on a UNIX box and then put everything back into a tar file, copy the tar file back to VMS and untar. Because both the CRTL and the GNV tools are broken in EFT version, our project came close to a standstill. Other ways to port There are other ways to port UNIX applications to OpenVMS. In the introduction I mentioned the amazing Mozilla port. This port was done on a system with the POSIX layered product. If you want to know how you can build Mozilla from source code please read the instructions at http://www.openvms.compaq.com/openvms/products/ips/cswb/cswb_source.html . Mind you, a regular build of Mozilla on a 667 MHz DS20E takes 22 hours! Porting OpenOffice Porting something as OpenOffice is something that should not be taken lightly! It will take a lot of your spare time. If you have a wife and kid(s) and really love them, don't even think about joining a porting effort, or you'll become the man that cut's the meat on Sunday. For those that are still with us, point your web browser to the following sites: * http://porting.openoffice.org/ This is the main page of the porting site. * http://porting.openoffice.org/porting_overview.html This page tells you about some of the porting projects and the project leaders. There even is a VMS port listed, but as far as we know it is not an active project. So Marc Dufresne , prove us wrong. It also explains some technical issues of porting. I can only tell you that the Compaq C++ compiler ships with STL, and that we VMS people usually load our regularly used shared libraries in memory with the INSTALL command. * http://porting.openoffice.org/porting_implement.html This page explains how to start a port. You'll need the GNV tools for this, but you won't get very far with the ./configure script. You'll need to setup the environment yourself. (We will provide one when we have one) * http://tools.openoffice.org/build_env_conf.html This page explains the ./configure procedure. It also gives some additional build prerequisites. * http://tools.openoffice.org/build_env_param.html This page describes the build environment parameters. * http://tools.openoffice.org/build_env_tools.html This page describes the provided build and install tools. * http://tools.openoffice.org/build_env_modstruct.html This page describes the directory structure of a module in general. * http://tools.openoffice.org/build_env_mkfiles.html This page describes the general structure of the make files. The OpenOffice site has a lot of other interesting pages, but these are the one's that should get things started. OK, you still need the source code. There's a link to the sources on nearly any of the OpenOffice pages. Here is a link to gpc library that seems to missing from the source tree (Alan Murta's Public Software (gpc) ). Our build environment (updated 30-07-2003) Our current build environment consists of the following: * One old Alpha 1000A 5/400 system with 512 MB of memory and a S3 trio video card. * OpenVMS 7.3-2 EFT1 * TCP/IP 5.4-13L * JAVA 1.4.1-1 from the Java? technology on hp Alpha systems for the Java? Platform page * GNV 1.5-4 from the hp OpenVMS systems open source tools page * C 6.5 * C++ 6.5 * DECset 12.4 (not a requirement, but some of our programmers love LSE. They also love vi, weird!) * Perl 5.6.1 with patch 2 from OpenVMS secure web server (based on apache) page I don't think that we need the OpenVMS porting tools because the CRTL makes them obsolete. We might need more tools from the e-business technology page like GTK+. Below is a list of links featured on this site: * Links on this site * * Link * * Description * Reference Reference section TCSH placed on to do list (2-jun-2003) dmake Update dmake page (3-may-2003) gzip Updated verion of the GNV gzip utility (14-may-2003, 7-may-2003) GNU m4 1.4 GNU m4 is an implementation of the traditional Unix macro processor and is used by many UNIX utilities (sendmail, automake, autoconf, aclocal,...) (24-sep-2003) pax 2.1 PAX is the POSIX.2 Portable Archive eXchange utility. With PAX you can read and write tar and cpio formatted archives (21-sep-2003) VMSenv Logicals for OpenOffice port (30-apr-2003) issulist General OpenVMS porting issuelist (25-apr-2003) fshelp 2.1.2 Freeware utility to view and search OpenVMS help files dix 3.3 Freeware utility to view, search and modify OpenVMS indexed files regedit Freeware utility to edit the OpenVMS registry Maintained by the OpenOffice on OpenVMS porting Project . We welcome your feedback . CollabNet, Inc. CollabNet is a trademark of CollabNet, Inc. Sun, Sun Microsystems, the Sun Logo, Solaris, Java, StarOffice, StarOffice 6.0 and StarSuite 6.0 are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States and other countries.