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.