[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ganymede 0.99.6 released

Date Fri, 27 Aug 1999 15:12:04 -0500 (CDT)
From Jonathan Abbey <jonabbey@arlut.utexas.edu>

Ganymede 0.99.6 is now available for download at

 http://www.arlut.utexas.edu/gash2/

or

 ftp://ftp.arlut.utexas.edu/pub/ganymede/

Mirrors: (may take a short while to update)

 ftp://ftp.netlag.com/ganymede/ (USA)
 ftp://mirror.aarnet.edu.au/pub/ganymede/ (Australia/NZ only)
 ftp://ftp.kddlabs.co.jp/pub/ganymede/ (KDD R&D Labs, Saitama, Japan)

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

--

A month's worth of bug fixes, including fixes to GUI components in the
client, improvements to the server's handling of new object creation,
and improvements to some of the DBEditObject hooks used in creating
custom plug-ins.  Added support for MD5-hashed passwords to the
Ganymede server, but have not yet made the Linux and BSD schema kits
take advantage of this capability.

Tweaked the Ganymede client to work properly under the new JDK 1.3
beta (Kestrel) that Sun released this week.

For 0.99.7 I'm planning on significantly changing the way that schema
kits are packaged and installed, to support independent development
and distribution of schema kits.  Documentation and DNS schema kit
work are both still in the pipeline for the future.

-------------------- Changes from 0.99.5 to 0.99.6 -------------------

RELEASE DATE: August 27, 1999

1. [SERVER DISTRIB] Fixed decodeDB

decodeDB was failing because the properties weren't being loaded and
the db load routine was attempting to find the Ganymede.journal
property.

2. [SCHEMA] More improvements to gasharl schema.

Fixed ARL maildirect file generation to only emit entries for
normal category user records, made it possible to clear the
primary user field for systems.  Fixed a minor infidelity in
hosts_info generation.

3. [CLIENT] Fixed problems with string area gui object

I fixed a couple of problems with the JstringArea class used in
the Ganymede client to display and edit multi-line string fields.

I had to make some changes to the code so that it really didn't try to
do editing when the field was not editable, and so that when errors
are returned when the JstringArea is edited, the focus-loss update
trigger won't get into an infinite loop, popping an error dialog up
over and over and over and over again.

The JstringArea is one of the least used GUI components in the client,
which is why this wasn't detected and fixed a long time ago.

4. [CLIENT] Fixed error in handling fixable transaction failure

The change I made in 0.99.5 to the client's handling of catastrophic
transaction commit failure broke proper handling of non-catastrophic,
correctable commit failure.. if such a transaction failed to commit,
gclient would reset its state, even though the transaction was still
open and repairable.

gclient.commitTransaction() now handles both circumstances properly.

5. [SERVER] Added support for MD5-hashed passwords.

Added MD5 support to PasswordDBField.java.  Bumped DBStore.minor_version
to 13 for MD5 support.

The server can now store and authenticate using MD5-hashed passwords.
Schema kits can be written to input MD5-hashed passwords into the
system as well as UNIX crypt()'ed passwords.

Neither the Linux nor the BSD schemas have yet been modified to
support MD5 passwords, but the PasswordDBField code now supports MD5.

6. [SERVER] Improved the server's password reset logic

Previously, if the -resetadmin parameter was given on the command
line, the server would always open a new transaction and reset the
supergash password.  Now the server checks to see if the password has
changed before doing the edit.  This cuts down on the redundant 'hey,
i set the supergash password!' mail that Ganymede was sending out.

7. [SERVER] Fixed adminPersonaCustom.convertAdminInvidToString()

The new DBLog transaction logic for finding an email address to mail
to was broken when the change was made by an end-user and not by an
admin persona.  I fixed adminPersonaCustom.convertAdminInvidToString()
so that it can gracefully deal with the possibility that the 'admin
invid' in an DBLogEvent produced by the DBEditSet commit() routine is
actually an end-user Invid.

8. [SERVER] Reworked DBSession.createDBObject()

The old createDBObject() call in DBSession had problems if a user
in an owner group tried to create a new object at the same time that
another user had the owner group checked out for editing.. the object
create would fail in an ungraceful manner, resulting in the server
thinking that the user had a negative number of objects checked out,
and getting very confused.

The DBSession createDBObject() code now does a transaction checkpoint 
before attempting to place the newly created object in the proper
owner groups.  If one of the owner groups turns out to be unavailable,
the object create will fail and the transaction will be rolled back.

I also modified createDBObject() to return a ReturnVal so that
detailed failure information can be returned to the user if object
creation fails.

This is continuing a trend.. I've been finding the need to go through
the code and make some of the server's internal paths better about
returning detailed error information.

9. [SERVER] Improved DBEditSet.rollback() code

Minor changes to the transaction rollback code, to take advantage of
the optimized vector compare operations in arlut.csd.Util.VectorUtils.
Should make rollbacks in very large transactions noticeably faster.

10. [DISTRIBUTION] Added template schema directory, fixed installServer

In 0.99.5 and for awhile before, the installServer script would break
if you tried to install the Ganymede server without choosing a schema
kit, which caused installServer to break with a complaint about

'Couldn't write schema build config'.

installServer now goes ahead and installs an empty schema directory
with all of the build scaffolding required to develop your own schema
kit.

I am planning on significantly revising the way that schema kits are
packaged and distributed to make it easier to distribute schema kits
independently, but that is something for a future revision, I think.

Thanks to Glen Joseph <gjoseph@us.ibm.com> for reporting this.

11. [SERVER] Reworked embedded object initialization

In 0.99.5 and before, embedded objects had their custom
initializeNewObject() methods called before the embedded object
was linked into its container, making it hard for custom code
to make initialization decisions based on the container's state.

This has been fixed; initializeNewObject() for embedded object types
is now called after the object has been linked into its parent.

In addition, initializeNewObject() now returns a ReturnVal rather than
a boolean, to allow detailed error messages to be returned to the
user.  All custom DBEditObject subclasses included in the Ganymede
distribution have been brought up to date with the new
initializeNewObject() method signature.

Thanks to Martin Schneider <martin@ira.uka.de> for bringing this to my
attention.

12. [SERVER] DBEditObject.createNewEmbeddedObject() now returns ReturnVal

Another change made to provide better feedback paths for server
errors.

This method wasn't one that was ever overridden in the schema kits
provided with Ganymede, but adopters who did override this method
will need to modify their custom code to return a ReturnVal rather
than a boolean.

13. [CLIENT] Fixed string field GUI component.. now limits size properly

Way back in dev6a, I modified the arlut.csd.JDataComponent.JentryField
class so that it would employ a custom DocumentModel to make sure bad
characters couldn't be entered into a string/number/ip field in the
Ganyemde client.

Looks like I had somehow missed testing the code which was supposed to
prevent entry of characters after the size limitation on the field had
been met.  There was code there for that function, but it wasn't
correctly functional.

Modified the arlut.csd.JDataComponent.JentryDocument class to check
for the number of characters currently in the JentryField versus the
stated limit (if any) on the number of characters allowed in the
field.

14. [SERVER] Moved GanymedeServer creation, binding to end of server start

Previously there was a remote chance that a user or admin console
could attach to the server before all startup housekeeping was taken
care of.  The GanymedeServer RMI binding is now the very last thing
done by Ganymede.main().

15. [CLIENT] Fixed client behavior for Java 1.3 beta (Kestrel)

In the new Java 1.3 beta, code-named Kestrel, a lot of JInternalFrame
code has been changed.  Several things in the Ganymede client had to
be tweaked to insure internal windows in the Ganymede client work
acceptably well with all existing versions of Swing.

-------------------------------------------------------------------------------
Jonathan Abbey 				              jonabbey@arlut.utexas.edu
Applied Research Laboratories                 The University of Texas at Austin
Ganymede, a free NIS/DNS management system    http://www.arlut.utexas.edu/gash2

----------------------------------------------------------------------------
To make changes to your subscription to the ganymede announcement list, send
mail to majordomo@arlut.utexas.edu.

To unsubcribe, include the line

unsubscribe ganymede-announce

in the body of your mail message

Visit the Ganymede web page at http://www.arlut.utexas.edu/gash2

----------------------------------------------------------------------------