-
Notifications
You must be signed in to change notification settings - Fork 6
/
CREDITS
540 lines (412 loc) · 21.7 KB
/
CREDITS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
Ganymede Release 2.0
29 June 2013
CREDITS
---------------------------------------------
Ganymede has been under development for over 15 years now, in both
planning and execution. The work has primarily been performed in the
Information Technology Services Division of the Applied Research
Laboratories at the University of Texas at Austin, with support from
division and laboratory management.
The development of Ganymede has benefited from the direct
development contributions of the following individuals:
--
Jonathan Abbey, [email protected]
Primary architect and coder on the project. Designed and implemented
the Ganymede server and admin console, the table and tree GUI
components used in both the admin console and the primary client, the
great bulk of the project documentation (or lack thereof) as well as
much of the Git and build script work. Answers e-mail.
--
Deepak Giridharagopal
While working at ARL, Deepak made extensive contributions to the
development of Ganymede 2.0, including transitioning Ganymede's build
system from old Perl scripts to using Ant. Deepak also developed the
Jython integration, and worked on the new Sync Channel software, both
in the Ganymede client and especially in the amazing Python Sync
Channel servicing code framework, known as SyncUtil, which forms the
basis of the gasharl schema kit's support for efficient sync'ing to
Active Directory.
Deepak also designed and implemented the Ganymede 2.0 Query Language,
using Terrance Parr's splendiferously good ANTLR tool.
--
Dan Scott
Dan originated the GASH project, providing strategic vision and
architectural design to solve the essential problem of shared group
control over the lab's master NIS and DNS databases. Dan has
contributed greatly to the higher level design issues in Ganymede, as
well as providing invaluable user interface design feedback and bug
reporting. Neither Ganymede nor GASH could have been developed at all
without his support.
--
Mike Mulvaney
Mike worked on Ganymede during his year and a half at the lab, from
February of 1997 through September of 1998, before moving to the
Washington D.C. area. Significant amounts of the client remain
primarily Mike's work. In addition to the large bulk of client-side
coding, Mike contributed significantly to the design of the system
architecture as a whole. Ganymede would be a far poorer thing were it
not for Mike.
--
Brian O'Mara
Brian worked on Ganymede during his tenure as a student employee at
ARL from February 1998 through August of 2000. Brian created custom
icons for the Ganymede client and rewrote the permissions editor to
use more Swing classes, as well as creating the persona selection
dialog introduced in Ganymede 0.98. Brian also reworked the Query
dialog to be more user-friendly. During his last year at ARL, Brian
did an enormous amount of work in preparing for the ultimate
replacement of the old-style hosts_info DNS support with new code to
convert BIND files into an XML representation and back again.
As if that wasn't enough, Brian also created the Ganymede logo as well
as many of the icons used in the Ganymede clients.
--
Navin Manohar
Navin worked on Ganymede from its inception in late 1995 through his
departure from the lab in April of 1997. Navin contributed to initial
architecture design decisions during this time, as well as the initial
development of the client, including the basic framework within which
the client was developed. He developed the excellent calendar GUI
component that is used in the client, as well as the more unobtrusive
but vital GUI components that the client used for data entry, way back
in the Java 1.0 days.
--
James Ratcliff
James replaced the ARL-written baseTable, gridTable, and rowTable
classes used in the Ganymede client with a new SmartTable class that
wraps the javax.swing.JTable class with a compatible interface. This
work has made report printing possible in Ganymede.
James also provided the port of Ulrich Drepper's Unix SHA256, SHA512
crypt algorithms to Java that is used in Ganymede for secure password
hashing.
--
Erik Grostic
Erik worked on Ganymede from mid 1997 through his departure
from the lab in December of 1997. Erik developed the GUI code for the
permissions editor and the query submission dialog, helping bring the
client into fruition.
------
Within ARL, Gil Kloepfer provided design assistance on the networking
issues that Ganymede was designed to address as the lab moved into the
21st century. Marcus Walker and Tania Ayala made very helpful user
interface recommendations and bug reports. Marcus also helped
designed the gasharl schema's support for Active Directory constructs.
Jay Scott contributed work on the build script environment used to
propagate data from Ganymede into the laboratory's information
systems. GASH admins Mark Parker, Glen Kronschnabl, Carrie Woodworth,
Rich Gramann, Andrew Helyer, Richard Mach, Randy Zagar, and many
others made helpful reports on gaps and problems with Ganymede.
John Knutson has provided bug reports and code contributions in the
course of evaluating the Ganymede code for use on an SGL
project. Ganymede's support of floating point data fields came
from John.
A lot of Ganymede is based on the experience and design work
that went into GASH. In addition to the aforementioned names, Dean
Kennedy and Pug Bainter should be credited for their design work on
GASH. Pug Bainter authored the original GASH makefiles that the
Ganymede GASH schema uses to propagate information from
Ganymede into NIS and DNS.
Outside ARL, we have gotten very helpful bug reports and feedback
from:
Pug Bainter - lots of really good early bug reports
Martin Schneider - server customization bug reports
Michael McEniry - linux localhost patch
Christoph Litauer - xmlclient testing
Curtis King - detailed bug reports
Doug Floyd - bug reports and AIX testing
Matt Knopp - Early FreeBSD testing, Sesame Chicken
Mike Clay - Early FreeBSD testing
Stephen L. Johnson - bug reports
Matt Bush - beta testing, bug reports
Dan "Jher" Harris - beta testing
Sheilagh O'Hare - design brilliance
Frederick Dickey - packaging bug report
Lewis Muhlenkamp - packaging, client bug reports
Nikola Nedeljkovic - packaging reports
Andy Johnson - build script bug reports
Charles Adams - bug reports, debugging
Darrell Tippe - bug reports
Glen Joseph - installServer bug report
Chris McCraw - bugzilla testing
Ido Dubrawsky - testing
Michael Houle - many bug reports
Miklos Muller - many wonderful bug reports for Ganymede 1.0
Gaurav Bhargava - Bug reports, schema development
Martin Vogt - bug reports
Steve Lemons - bug reports
[email protected] - many excellect bug reports for Ganymede 2.0
Stefan Bier - Ganymede 2.0 bug reports, patches, German localization
Christian Hammers - Submitted a compatibility patch to Sha256Crypt and
Sha512Crypt for better glibc compatibility.
--
The Java implementation of the standard UNIX crypt() function was
converted from C by John Dumas, [email protected], whose code can
be found at http://www.vulcanware.com/java_jcrypt/index.html. jcrypt
is included in Ganymede by permission of the author.
--
The Qsmtp class was originally written by James Driscoll
([email protected]), and placed into the public domain. See
http://www.io.com/~maus/JavaPage.html for details and additional free
Java code. Note that the version of Qstmp packaged with Ganymede has
been significantly modified, to provide more convenient use in a
threaded context, and to provide rudimentary MIME file attachment
support.
--
The MD5Crypt class used to support FreeBSD-style md5 passwords was
originally written by Poul-Henning Kamp ([email protected]) in C, and
was translated into Java by Jonathan Abbey.. the following license
information was placed on the original code:
----------------------------------------------------------------------------
"THE BEER-WARE LICENSE" (Revision 42):
<[email protected]> wrote this file. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you think
this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
----------------------------------------------------------------------------
--
The MD4 class used to support Windows NT-compatible cryptographic
hashes was derived from MD classes written by Harry Mantakos,
[email protected], and are here under Harry's "there's code in here
that you're welcome to steal" license. The MD classes came from
Harry's JOTP project, which you can link to at
http://www.cs.umd.edu/users/harry/jotp/.
The actual "LANMAN" and "NT MD4 Unicode" hash support code was written
by Andrew Tridgell and released under the GPL as part of the Samba
source code, and was ported to Java by Jonathan Abbey, using Harry's
MD4 code to perform the fundamental cryptographic hash function.
Note that Sun has declined to provide support for md4 in the
java.security.MessageDigest class. This is because md4 is terribly
weak by modern standards, but if you want to support old school Lan
Manager password hashes, that's what you have to use.
--
The Unix SHA Crypt algorithms embodied in the
arlut.csd.crypto.Sha256Crypt and arlut.csd.crypto.Sha512Crypt classes
come from Ulrich Drepper, who released the algorithms into the public
domain. See http://people.redhat.com/drepper/sha-crypt.html for a
discussion of details. The port was performed by James Ratcliff,
Unlike md4, the hashing used for the Unix SHA Crypt standard is
phenomenally strong, and you should probably try to use this if you're
generating hashed passwords for modern Linux, Solaris, AIX, or HPUX
systems.
--
The BCrypt implementation included in Ganymede (org.mindrot.BCrypt) is
copyright 2006 by Damien Miller <[email protected]>, under the BSD
license:
/*
* Copyright (c) 2006 Damien Miller <[email protected]>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
Damien has his current JBCrypt code online, see http://code.google.com/p/jbcrypt/
--
The Ganymede server uses James Clark's excellent XMLWriter class
library for XML generation. It is copyright 1997, 1998 by James
Clark, and is included in Ganymede in accordance with his stated
licensing terms. See http://www.jclark.com/xml/xp/copying.txt for his
copyright terms.
--
The Java UUID Generator code used by ARL custom code to generate RFC
and DCE-compliant globally unique identifiers for our Macintosh LDAP
synchronization was written by Tatu Saloranta, [email protected],
and is included in Ganymede under the Lesser General Public License.
See http://jug.safehaus.org/ for more information.
--
The Java Base 64 encoder/decoder (here named arlut.csd.crypto.Base64)
used to generate LDAP style SSHA password encodings was written by
Robert Harder ([email protected]) and placed into the public domain.
See http://iharder.net/base64/ for Robert's Java Base64 page.
--
Ganymede 2.0 ships with Jython, in src/jython. Jython is used in the
Ganymede server to allow DBEditObject sub classes to be written in
Python, but interpreted on the server. Jython is copyright the Jython
Developers and is licensed under the following BSD-like terms:
Copyright (c) 2000, Jython Developers
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the distribution.
- Neither the name of the Jython Developers nor the names of
its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Jython is at http://www.jython.org/
--
The Ganymede client makes use of the Foxtrot project
(http://foxtrot.sourceforge.net/) by Simone Bordet, a very nifty GUI
threading tool that allows us to synchronously decouple the client's
GUI thread from certain kinds of long-standing network activity on the
client while allowing the GUI thread to dispatch GUI events until the
network activity is done. The Foxtrot project is included in the
Ganymede clients under the BSD license.
--
Some code in Ganymede 2.0 is based on Terence Parr's incredutastic
ANTLR3 parser generator. The src/lib directory contains a jar file of
runtime classes from his project, which he has released under the BSD
license:
[The BSD License]
Copyright (c) 2003-2008, Terence Parr
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the
distribution.
Neither the name of the author nor the names of its contributors
may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
See http://www.antlr.org/ for information on ANTLR.
--
Ganymede uses the gnu.trove PrimeFinder class to optimize its hash
tables.
The Trove library is licensed under the Lesser GNU Public License,
which is included with the distribution in a file called LICENSE.txt.
Other license arrangements are possible, for a fee: contact
[email protected] for terms/pricing.
The PrimeFinder and HashFunctions classes in Trove are subject to the
following license restrictions:
Copyright (c) 1999 CERN - European Organization for Nuclear Research.
Permission to use, copy, modify, distribute and sell this software and
its documentation for any purpose is hereby granted without fee,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation. CERN makes no representations about the
suitability of this software for any purpose. It is provided "as is"
without expressed or implied warranty.
--
The gasharl schema kit uses Steve Waldman's c3p0 DataSource / Resource
Pool class library for JDBC to provide connection pooling for internal
use at the laboratory. We are including the binary c3p0 jar file
under src/schemas/gasharl/lib in the public release of Ganymede to
simplify our revision control and to provide an example of the use of
external JDBC connections in custom schema code.
The c3p0 home page is at
http://sourceforge.net/projects/c3p0
The c3p0 package is distributed under the terms of version 2.1 of the
GNU Lesser General Public License (LGPL).
--
The 'ant validate' task makes use of the Perl Config::Properties
package, copyright by Randy Jay Yarger, Craig Manley, and Salvador
Fandiño. It is free software, licensed under the same terms as Perl
is. At the time of this writing, the URL for Config::Properties is
http://search.cpan.org/src/SALVA/Config-Properties-0.58/.
The verification/launchers directory contains some scripts that can be
used to launch the Ganymede server in conjunction with software
coverage and/or performance profiling code. The software coverage
tool that is used is called Emma, and it is Copyright by Vlad
Roubtsov. See http://emma.sourceforge.net/ for details on and source
code from Emma. Emma is distributed and licensed under the Common
Public License, at http://www.eclipse.org/legal/cpl-v10.html. The
profiling tool is called PerfAnal, and it is distributed under the GNU
General Public License. See
http://java.sun.com/developer/technicalArticles/Programming/perfanal/
for details on PerfAnal.
--
The jarbundler-2.1.0.jar file under src/lib provides Seth
J. Morabito's Mac OS X JarBundler Ant task, as further developed by
Will Gilbert. It was downloaded from
http://informagen.com/JarBundler/ to provide Macintosh-specific
application packaging of the Ganymede clients.
The JarBundler project is licensed under the Apache Software License
v2.0 (ASLv2).
--
The mac_widgets.jar file under src/lib provides a very Mac-like
appearance when running the Ganymede client on the Macintosh. It was
downloaded from http://code.google.com/p/macwidgets/.
Mac Widgets is by Kenneth Orr, and is licensed under the Gnu Lesser
General Public License.
--
The forms-1.3.0pre4.jar file under src/lib is used to provide support
features for Kenneth Orr's Mac Widgets. It was downloaded from
http://www.jgoodies.com/downloads/libraries.html, using the 'JGoodies
Forms' link.
JGoodies Forms is by the JGoodies company, Karsten Lentzsch, founder.
JGoodies Forms is licensed under the permissive BSD license.
--
The arlut.csd.JTable.TableSorter class which is used to decorate and
provide sorting for the javax.swing.JTable class is a product of Sun
Microsystems, and is used under the following license:
Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of Sun Microsystems nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
The org.solinger.cracklib library used to provide password quality
checking for password fields was written by Justin F. Chapweske. It
is a port of the C cracklib written by Alec Mufett.
It is included in Ganymede under the terms of the Artistic License
version 2.0, and has been enhanced slightly for use in Ganymede.
You can find the original Java Cracklib port from
http://sourceforge.net/projects/solinger/
or by downloading it directly from
http://sourceforge.net/projects/solinger/files/Java%20CrackLib/0.5/cracklib-0.5.tar.gz/download
See src/ganymede/org/solinger/cracklib/README and
src/ganymede/org/solinger/cracklib/LICENSE for full details.
--
The SwingX jar file included in the Ganymede client comes from
https://swingx.dev.java.net/, and is included in Ganymede under the
terms of version 2.1 of the Lesser Gnu Public License (LGPL).
--
While most of the icons in the Ganymede distribution were created by
us, Ganymede also uses some icons released into the public domain from
the Tango project (http://tango.freedesktop.org/).
--
Special thanks to authors of Git, Ant, and Subversion for high quality
build and version control tools.