tools/relic/make-id-list
author kairo@kairo.at
Wed, 29 Aug 2007 07:19:31 -0700
changeset 5428 8a50b75d0ae12d0878c28081508f621aa45c543c
parent 1565 29667149241005bb56ed2e551bc0664aa02c0e9d
child 11060 aec732062dbb8a636dfaf81bc5b38aa1860cfe05
permissions -rwxr-xr-x
bug 386908 - remove xpfe/communicator from Thunderbird build, r=philringnalda, NPOTFFB

#!/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.
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",

  "IBM" => "IBM Corporation",
  "IBM Corp" => "IBM Corporation",
  "International Business Machines Corporation" => "IBM Corporation",

  "a mozilla.org contributor" => "Mozilla Foundation",
  "Mozilla" => "Mozilla Foundation",
  "Mozilla.com" => "Mozilla Corporation",
  "Mozilla.org" => "Mozilla Foundation",
  "Mozilla Organization" => "Mozilla Foundation",
  "mozilla.org" => "Mozilla Foundation",
  
  "mozilla.org SeaMonkey project" => "Mozilla Foundation",
  "SeaMonkey project" => "Mozilla Foundation",
  "SeaMonkey project at mozilla.org" => "Mozilla Foundation",
  "Mozilla Calendar Squad" => "Mozilla Foundation",
  
  "Mozilla Corp" => "Mozilla Corporation",

  "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",
  "Netscape Communications Corp, Inc" => "Netscape Communications Corporation",

  "Novell" => "Novell Inc",
  "Novell, Inc" => "Novell Inc",
  "Novell Corporation" => "Novell Inc",
  
  "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",
  "Digital Creations 2" => "Digital Creations 2 Inc",
  "Douglas F. Turner II" => "Doug Turner",
  "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",
  "Simdesk Technologies" => "Simdesk Technologies Inc",
  "Google" => "Google Inc",
  "Telephone Corporation)" => "NTT",

  "Frank Schoenheit" => "Frank Schönheit",
  "HÃ¥kan Waara" => "Håkan Waara",
  "Karsten Düsterloh" => "Karsten Düsterloh",
  "Simon Bünzli" => "Simon Bünzli",
  "Vincent Béron" => "Vincent Béron",
  "Tomas Mšller" => "Tomas Müller",
  
  "person recorded in the version control logs" => "Mozilla Foundation",
  "None" => "Mozilla Foundation"
);

# 'indevs' == "Initial Developers"
my %indevs;

while (<>)
{
  chomp;
  my @candidates = split(" and ", $_);
  foreach my $indev (@candidates)
  {
    # Chop off email addresses and suchlike
    $indev =~ s/[<,\(].*$//;
    $indev =~ s/^The\s*//i;

    # Trim whitespace
    $indev =~ s/^\s*//;
    $indev =~ s/\s*$//;

    $indev = $equivalents{$indev} || $indev;
    $indevs{$indev} = 1;
  }
}

# Print out the list in a form suitable for pasting into about:licence.
print join (",\n", sort {lc $a cmp lc $b} keys %indevs);
print ".\n";