2007-03-22 10:30:00 -07:00
|
|
|
|
#!/usr/bin/perl -w
|
|
|
|
|
#
|
|
|
|
|
# This is a script to take a long list of Initial Developers on stdin and
|
|
|
|
|
# output a de-duped, munged list suitable for putting into about:licence or
|
|
|
|
|
# other similar place in order to comply with the MPL section 3.3
|
|
|
|
|
|
|
|
|
|
# Equivalence mappings; having these is easier than updating hundreds of files
|
|
|
|
|
# to make them all use the same variant of each name.
|
2008-01-31 04:36:56 -08:00
|
|
|
|
#
|
|
|
|
|
# Procedure:
|
2010-10-28 04:51:06 -07:00
|
|
|
|
# Need to be in the top-level dir otherwise relic exclusions don't work.
|
2011-01-27 06:45:33 -08:00
|
|
|
|
# Edit relic to set quiet to 1 on line 1471 or thereabouts, in the def'n of
|
|
|
|
|
# the "relicensing_error" sub
|
2008-01-31 04:36:56 -08:00
|
|
|
|
# relic -I -f * > names.txt
|
2010-10-28 04:51:06 -07:00
|
|
|
|
# Tidy up names.txt
|
|
|
|
|
# and make one unified file if you ran relic over multiple trees.
|
2008-01-31 04:36:56 -08:00
|
|
|
|
# make-id-list < names.txt > final.txt
|
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
|
my %equivalents = (
|
|
|
|
|
"ActiveState Tool Corporation" => "ActiveState Tool Corp",
|
|
|
|
|
"Activestate Tool Corp" => "ActiveState Tool Corp",
|
|
|
|
|
"ActiveState Tool Corp." => "ActiveState Tool Corp",
|
|
|
|
|
|
|
|
|
|
"Crocodile Clips Ltd." => "Crocodile Clips Ltd",
|
|
|
|
|
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"Hewlett-Packard Company. Portions created by Hewlett-Packard Company are Copyright" => "Hewlett-Packard Company",
|
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"IBM" => "IBM Corporation",
|
|
|
|
|
"IBM Corp" => "IBM Corporation",
|
|
|
|
|
"International Business Machines Corporation" => "IBM Corporation",
|
|
|
|
|
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"Mozilla.com" => "Mozilla Corporation",
|
|
|
|
|
"Mozilla Corp" => "Mozilla Corporation",
|
|
|
|
|
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"None" => "Mozilla Foundation",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"a mozilla.org contributor" => "Mozilla Foundation",
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"person recorded in the version control logs" => "Mozilla Foundation",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"Mozilla" => "Mozilla Foundation",
|
|
|
|
|
"Mozilla.org" => "Mozilla Foundation",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
"Mozilla Organization" => "Mozilla Foundation",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"mozilla.org" => "Mozilla Foundation",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"example Inc" => "Mozilla Foundation",
|
|
|
|
|
"SeaMonkey team" => "Mozilla Foundation",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
"mozilla.org SeaMonkey project" => "Mozilla Foundation",
|
|
|
|
|
"SeaMonkey project" => "Mozilla Foundation",
|
|
|
|
|
"SeaMonkey project at mozilla.org" => "Mozilla Foundation",
|
|
|
|
|
"Mozilla Calendar Squad" => "Mozilla Foundation",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"mozilla.org code" => "Mozilla Foundation",
|
2011-01-27 06:45:33 -08:00
|
|
|
|
"Mozilla Fonudation" => "Mozilla Foundation",
|
|
|
|
|
"Mozilla Founation" => "Mozilla Foundation",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
|
|
|
|
|
"Mozilla Messaging Corporation" => "Mozilla Messaging",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"Netscape" => "Netscape Communications Corporation",
|
|
|
|
|
"Netscape Corp" => "Netscape Communications Corporation",
|
|
|
|
|
"Netscape Communications" => "Netscape Communications Corporation",
|
|
|
|
|
"Netscape Communications, Inc" => "Netscape Communications Corporation",
|
|
|
|
|
"Netscape Communications Corp" => "Netscape Communications Corporation",
|
|
|
|
|
"Netscape Communications Corp." => "Netscape Communications Corporation",
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"Netscape Commmunications Corp" => "Netscape Communications Corporation",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"Netscape Communications Corp, Inc" => "Netscape Communications Corporation",
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"Netscape Communication Corporation" => "Netscape Communications Corporation",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
"Netscape Communications Corporation." => "Netscape Communications Corporation",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
|
|
|
|
"Novell" => "Novell Inc",
|
|
|
|
|
"Novell, Inc" => "Novell Inc",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
"Novell Corporation" => "Novell Inc",
|
|
|
|
|
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"Red Hat Software" => "Red Hat Inc",
|
|
|
|
|
"Red Hat" => "Red Hat Inc",
|
|
|
|
|
"Red Hat, Inc" => "Red Hat Inc",
|
|
|
|
|
|
|
|
|
|
"RSA Security INC" => "RSA Security Inc",
|
|
|
|
|
"RSA Security" => "RSA Security Inc",
|
|
|
|
|
"RSA Security, Inc" => "RSA Security Inc",
|
|
|
|
|
|
|
|
|
|
"Sun Microsystem" => "Sun Microsystems Inc",
|
|
|
|
|
"Sun Microsystems" => "Sun Microsystems Inc",
|
|
|
|
|
"Sun Microsystems, Inc." => "Sun Microsystems Inc",
|
|
|
|
|
"Sun Microsystems, Inc" => "Sun Microsystems Inc",
|
|
|
|
|
|
|
|
|
|
"bmlk\@gmx.de" => "Bernd Mielke",
|
|
|
|
|
"davel\@mozilla.com" => "Dave Liebreich",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"dschaffe\@adobe.com" => "Dan Schaffer",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
"Digital Creations 2" => "Digital Creations 2 Inc",
|
|
|
|
|
"Douglas F. Turner II" => "Doug Turner",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
"Kenneth Herron" => "Ken Herron",
|
|
|
|
|
"sqlite3", "Sqlite Project",
|
|
|
|
|
"University Of Queensland" => "University of Queensland",
|
|
|
|
|
"OEOne Corporation" => "OEone Corporation",
|
|
|
|
|
"Paul Kocher of Cryptography Research" => "Paul Kocher",
|
|
|
|
|
"QUALCOMM incorporated" => "Qualcomm Inc",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
"QUALCOMM Incorporated" => "Qualcomm Inc",
|
2007-05-17 07:55:53 -07:00
|
|
|
|
"Simdesk Technologies" => "Simdesk Technologies Inc",
|
|
|
|
|
"Google" => "Google Inc",
|
|
|
|
|
"Telephone Corporation)" => "NTT",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
"Disruptive Innovations" => "Disruptive Innovations SARL",
|
|
|
|
|
"Florian QUEZE" => "Florian Queze",
|
|
|
|
|
"Nelson B Bolyard" => "Nelson B. Bolyard",
|
|
|
|
|
"Richard L Walsh" => "Richard L. Walsh",
|
|
|
|
|
"timeless" => "Josh Soref",
|
|
|
|
|
"Olivier Parniere BT Global Services / Etat francais Ministere de la Defense" => "Olivier Parniere",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"Craig Toppper" => "Craig Topper",
|
|
|
|
|
"Mook" => "Mark 'Mook' Yen",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
|
2008-01-30 09:19:24 -08:00
|
|
|
|
"Frank Schoenheit" => "Frank Schönheit",
|
|
|
|
|
"Frank Sch<63>nheit" => "Frank Schönheit",
|
|
|
|
|
"Håkan Waara" => "Håkan Waara",
|
|
|
|
|
"H<>kan Waara" => "Håkan Waara",
|
|
|
|
|
"Karsten Düsterloh" => "Karsten Düsterloh",
|
|
|
|
|
"Simon Bünzli" => "Simon Bünzli",
|
|
|
|
|
"Vincent Béron" => "Vincent Béron",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
"Tomas M<>ller" => "Tomas Müller",
|
|
|
|
|
"Dão Gottwald" => "Dão Gottwald",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"L<>szl<7A> N<>meth" => "László Németh",
|
2008-01-31 04:36:56 -08:00
|
|
|
|
"Bj<42>rn Jacke" => "Björn Jacke",
|
2010-10-28 04:51:06 -07:00
|
|
|
|
"Žiga Sancin" => "Žiga Sancin",
|
2007-03-22 10:30:00 -07:00
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
# 'indevs' == "Initial Developers"
|
|
|
|
|
my %indevs;
|
|
|
|
|
|
|
|
|
|
while (<>)
|
|
|
|
|
{
|
|
|
|
|
chomp;
|
|
|
|
|
my @candidates = split(" and ", $_);
|
|
|
|
|
foreach my $indev (@candidates)
|
|
|
|
|
{
|
|
|
|
|
# Chop off email addresses and suchlike
|
|
|
|
|
$indev =~ s/[<,\(].*$//;
|
2008-01-30 09:19:24 -08:00
|
|
|
|
$indev =~ s/^The\s+//i;
|
2010-10-28 04:51:06 -07:00
|
|
|
|
$indev =~ s/\.?\s*Portions created.*$//;
|
2007-03-22 10:30:00 -07:00
|
|
|
|
|
2007-05-17 07:55:53 -07:00
|
|
|
|
# Trim whitespace
|
2007-03-22 10:30:00 -07:00
|
|
|
|
$indev =~ s/^\s*//;
|
|
|
|
|
$indev =~ s/\s*$//;
|
|
|
|
|
|
|
|
|
|
$indev = $equivalents{$indev} || $indev;
|
2010-10-28 04:51:06 -07:00
|
|
|
|
$indevs{$indev} = 1 if $indev;
|
2007-03-22 10:30:00 -07:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Print out the list in a form suitable for pasting into about:licence.
|
|
|
|
|
print join (",\n", sort {lc $a cmp lc $b} keys %indevs);
|
2007-05-17 07:55:53 -07:00
|
|
|
|
print ".\n";
|