Ganymede 0.99.1 released

Ganymede 0.99.1 released

Post by Jonathan Abbe » Fri, 28 May 1999 04:00:00

Ganymede 0.99.1 is now available for download at


Ganymede is a GPL'ed network directory management system written in
Java, providing support for team management of NIS, DNS, etc.


Quite a few changes to support production use, including the ability
to have Ganymede use an RMI registry running on a custom port and a
'stopServer' application to supported automated shut-down of the server.

Added an 'rpcpass' application to the client distribution to support
Ganymede integration with the Linux NIS kit.

Did more work on improving the documentation.  This still needs
a lot of work, but there's now a hypertext version of the INSTALL
file cross-linked with a comprehensive file glossary.  Lots of
improvements to the source code's javadocs, but there's lots
more to be done.

Brian is working on a total revamp of the DNS support code we're using
with Ganymede.  We're moving away from the old GASH hosts_info file
format and moving to an extensible XML format that will support all
the GASH DNS complexity with support for multiple DNS domains added.

In the next release or two we'll hopefully revamp the set of schema
kits included to include a DNS-only schema kit and a useful DNS and
NIS schema modeled after (but more flexible than) the current gash
and gasharl schemas.

-------------------- Changes from 0.99 to 0.99.1 -------------------

RELEASE DATE: May 27, 1999

1. [SERVER] Made decodeDB omit built-in field types by default

Did a bit of work to clean up the schema report code generated by

2. [SERVER] Cleaned up, documented DBEditSet, DBEditObject

Added lots and lots of documentation to the DBEditSet transaction
class, made the commit() operation a bit more robust in terms
of relinquishing a write lock on exceptions and errors.

The DBEditObject class was modified to include a boolean finalAbort
parameter in the release() method.  Javadocs for this method were
improved to clarify and document the different ways this method can be

3. [SERVER DISTRIBUTION] Added a stopServer commandline app

In order to facilitate automatic shutdown of the Ganymede server on
operating system shutdown, I've created a command-line stopServer
application that can shut the server down if you keep the server's
supergash password in its file.

Yet another thing for production use.. we use this to support
automatic server shutdown when we reboot our Solaris Ganymede server.

4. [SERVER, CLIENT DISTRIBUTION] Made registry port number configurable

The Ganymede server and clients can now be configured to use an RMI
Registry on a non-standard tcp port.  This is necessary if you are
going to run the Ganymede server on the same system as other RMI
servers (such as Sun's SIMS administration console).

The server, client, admin console and password client all now accept a
property/parameter called ganymede.registryPort.  If the
ganymede.registryPort is not set, all Ganymede code will default to
the standard RMI registry port, 1099.

5. [SERVER] Added Session.findLabeledObject()

Added a convenient shortcut method in Session called
findLabeledObject() which allows the client to quickly get an invid
from an object type and name without having to use the full Query()

This method is used by client/

6. [CLIENT] Added client/ to support Linux NIS rpc.yppasswdd

Added a program 'rpcpass' to the client distribution.  rpcpass is
designed to be used with the -x/--execute option present in versions and later of the Linux NISkit's rpc.yppasswdd daemon
(included in the ypserv distribution), to allow users to use yppasswd
to change their password in Ganymede.

When run, rpcpass reads a single line from stdin,
which should be of the form

<username> o:<oldpass> p:<new cryptpass> s:<shell> g:<gcos>\n

Where the p:, s:, and g: fields are each optional.

After reading this line from stdin, rpcpass will connect to
the Ganymede server and change the password and/or shell.  If
this operation succeeds, rpcpass will emit a single line
to stdout,


which is to be read by rpc.yppasswdd to signal success.  If
there are any problems, these will be described in a
report to stdout, which rpc.yppasswdd will take as a failure

Note that while the rpc.yppasswdd daemon may pass gcos information to
rpcpass, the gecos field is formatted differently on different
operating systems, and so rpcpass does not attempt to handle it at

Of course, any program can use the rpcpass program to propagate
password/shell change requests to Ganymede, not just the Linux NIS
kit's rpc.yppasswdd daemon.

7. [SOURCE] Fixed a couple more PATH problems with building sources

A couple of fixes relating to doing source builds with '.' not in
one's PATH.

EXECUTING: src/server/build
  ERROR     :  buildrmi: command not found
  FILE FIXED: src/server/build
  PREV LINE :  buildrmi
  NEW LINE  :  ./buildrmi

EXCECUTING: src/classes/buildJar
  ERROR     :  sync_tree: command not found
  FILE FIXED: src/classes/buildJar
  PREV LINE :  sync_tree
  NEW LINE  :  ./sync_tree

8. [DOCUMENTATION] Significantly Improved Documentation

Fixed all link errors in the javadocs.  Added more javadocs to several

Reworked doc/index.html.  Added an HTML version of the INSTALL file,
cross-linked to a file glossary.  Added the log file format documentation
to the doc distrib.


Applied Research Laboratories                 The University of Texas at Austin