Merge branch 'org.openembedded.dev' of git@git.openembedded.net:openembedded into...
[openembedded.git] / contrib / mtn2git / manglenames.py
1 #!/usr/bin/python
2 # -*- coding: UTF-8 -*-
3 # Simple map from realname to...
4 # realname : ([keynames], "email address")
5
6 all_names = {
7     "Adrian Davey"       : (["ade@openembedded.org"], "ade@beth2.org"),
8     "Alan Carvalho de Assis"  : (["acassis@gmail.com"], "acassis@gmail.com"),
9     "Alessandro Gardich" : (["gremlin@gremlin.it"], "gremlin@gremlin.it"),
10     "Alessandro Iurlano" : (["Alessandro Iurlano alessandro.iurlano@gmail.com", "alessandro.iurlano@gmail.com"], "alessandro.iurlano@gmail.com"),
11     "Alexander Hanff"    : (["core.ldf@gmail.com"], "core.ldf@gmail.com"),
12     "Alexis Maldonado "  : (["Alexis Maldonado <maldonad@cs.tum.edu>"], "maldonad@cs.tum.edu"),
13     "Alex Lange"         : (["Alex Lange"], "chicken@handhelds.org"),
14     "Alex Osborne"       : (["Alex Osborne"], "ato@meshy.org"),
15     "Andrea Adami"       : (["andrea.adami@gmail.com"], "andrea.adami@gmail.com"),
16     "Andrew Paulsen"     : (["andrew.paulsen@gmail.com"], "andrew.paulsen@gmail.com"),
17     "Andrew Wilcox"      : (["awilcox@openembedded.org"], "andy@protium.com"),
18     "Angus Ainslie"      : (["angus@handheldshell.com"], "angus@handheldshell.com"),
19     "ant"                : (["ant", "ant, Jay"], "ant@unknown.openembedded.org"),
20     "Antonio Ospite"     : (["ospite@studenti.unina.it"], "ospite@studenti.unina.it"),
21     "Antti Andreimann"   : (["antti.andreimann@mail.ee", "mailto:antti.andreimann@mail.ee"], "antti.andreimann@mail.ee"),
22     "araimondi"          : (["araimondi@gmx.net"], "araimondi@gmx.net"),
23     "Arjan Schrijver"    : (["arjan@openembedded.org"], "arjan@anymore.nl"),
24     "Bastian Ballmann"   : (["balle@chaostal.de", "Bastian Ballmann <balle@chaostal.de>"], "balle@chaostal.de"),
25     "Bernhard Guillon"   : (["Bernhard.Guillon@opensimpad.org", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org>", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org> - close #1874"], "Bernhard.Guillon@opensimpad.org"),
26     "Bernhard Rosenkraenzer" : (["bero@arklinux.org"], "bero@arklinux.org"),
27     "Bignaux Ronan"      : (["ronan@aimao.org"], "ronan@aimao.org"),
28     "Bruno Randolf"      : (["br1@openembedded.org", "(none)!br1"], "br1@subnet.at"),
29     "Carsten Schneider"  : (["Carsten Schneider <zcarsten@gmx.net>"], "zcarsten@gmx.net"),
30     "ccsmart"            : (["ccsmart@openembedded.org", "ccsmart@smartpal.de"], "ccsmart@smartpal.de"),
31     "Cesar Eduardo Barros"     : (["cesarb@cesarb.net"], "cesarb@cesarb.net"),
32     "Chia-I Wu"          : (["olvaffe@gmail.com"], "olvaffe@gmail.com"),
33     "Chris Larson"       : (["clarson@kergoth.com", "tuxnami.org!kergoth", "(none)!kergoth", "ti.com!kergoth", "direwolf!kergoth", "ti.com!a0868066", "ti.com!patch", "local!kergoth", "local[kergoth]!kergoth", "handhelds.org!kergoth", "org[kergoth]!kergoth", "kergoth.com!kergoth", "com[kergoth]!kergoth"], "clarson@kergoth.com"),
34     "Chris Lord"         : (["Cwiiis", "(none)!cwiiis"], "chris@openedhand.com"),
35     "Christiano P."      : (["Cristiano P. <cris69@solnet.ch>"], "cris69@solnet.ch"),
36     "Clark Wixon"        : (["cwixon@usa.net"], "cwixon@usa.net"),
37     "Clement Hermann"    : (["clement.hermann@free.fr"], "clement.hermann@free.fr"),
38     "Cliff Brake"        : (["cbrake@openembedded.org", "accelent.com!cbrake", "rr.com!cbrake"], "cbrake@bec-systems.com"),
39     "Craig Hughes"       : (["craig@gumstix.com"], "craig@gumstix.com"),
40     "Cyril Romain"       : (["c.romain@laposte.net", "CyrilRomain", "Cyril Romain", "cyril Romain <c.romain@laposte.net>", "Cyril Romain <c.romain@laposte.net>", "cyril.romain@gmail.com", "cyril.romain@laposte.net"], "cyril.romain@gmail.com"),
41     "Daniel Willmann"    : (["daniel@openembedded.org", "daniel@totalueberwachung.de"], "daniel@totalueberwachung.de"),
42     "Dan Williams"       : (["Dan Williams <dan.j.williams@gmail.com>"], "dan.j.williams@gmail.com"),
43     "David Karlstrom"    : (["daka@nslu2-linux.org", "daka@thg.se"], "daka@thg.se"),
44     "Denys Dmytriyenko"  : (["denis@denix.org"], "denis@denix.org"),
45     "Derek Young"        : (["dyoung@nslu2-linux.org", "(none)!dereky", "(none)!dyoung"], "dyoung@nslu2-linux.org"),
46     "Dirk Opfer"         : (["dirk@openembedded.org", "opfer.lan!dirk"], "dirk@opfer-online.de"),
47     "Dmitry Artamonow"   : (["DmitryArtamonow", "mad_soft@inbox.ru"], "mad_soft@inbox.ru"),
48     "Dmitry Baryshkov"   : (["Dmitry Baryshkov <dbaryshkov@gmail.com>", "dbaryshkov@gmail.com"], "dbaryshkov@gmail.com"),
49     "Dojii Seketeli"     : (["dodji@openedhand.com"], "dodji@openedhand.com"),
50     "Dominik Kuhlen"     : (["kuhlen@openembedded.org"], "kuhlen@gmit-gmbh.de"),
51     "Eblis"              : (["eblis102@gmail.com"], "eblis102@gmail.com"),
52     "Erik Hovland"       : (["erik@openembedded.org", "erik@hovland.org"], "erik@hovland.org"),
53     "Esben Haabendal"    : (["eha@doredevelopment.dk"], "eha@doredevelopment.dk"),
54     "Fabrice Aeschbacher": (["Fabrice.Aeschbacher@siemens.com"], "fabrice.aeschbacher@siemens.com"),
55     "Felix Domke"        : (["tmbinc@openembedded.org"], "tmbinc@elitedvb.ne"),
56     "Florian Boor"       : (["florian@openembedded.org"], "florian.boor@kernelconcepts.de"),
57     "Frans Meulenbroeks" : (["eFfeM@openembedded.org"], "fransmeulenbroeks@yahoo.com"),
58     "Frederic Bompart"   : (["frederic@openembedded.org"], "frederic@unknown.openembedded.org"),
59     "Geoffrey Wossum"    : (["gwossum", "gwossum@acm.org", "geoffrey.wossum"], "gwossum@acm.org"),
60     "Gerald Britton"     : (["doomcom.org!gbritton", "org[gbritton]!gbritton"], "gbritton@doomcom.org"),
61     "giel"               : (["giel"], "giel@unknown.openembedded.org"),
62     "gilligan"           : (["gilligan@openembedded.org"], "gilligan@unknown.openembedded.org"),
63     "Giorgio Padrin"     : (["Giorgio Padrin <giorgio@mandarinlogiq.org>"], "giorgio@mandarinlogiq.org"),
64     "GoxboxLive"         : (["GoxboxLive <goxboxlive@gmail.com>"], "goxboxlive@gmail.com"),
65     "Graeme Gregory"     : (["dp@xora.org.uk", "xora@openembedded.org", "hyboria!xora", "(none)!xora", "(none)!XorA"], "dp@xora.org.uk"),
66     "Greg Gilbert"       : (["brooks.edu!ggilbert", "(none)!ggilbert", "treke.ath.cx!ggilbert", "treke.net!ggilbert"], "greg@treke.net"),
67     "Grzegorz Ratajczak" : (["McGregor <mcgregor@blackmesaeast.com.pl>"], "mcgregor@blackmesaeast.com.pl"),
68     "Harald Welte"       : (["laforge@openmoko.org"], "laforge@openmoko.org"),
69     "Helge Deller"       : (["deller@gmx.de"], "deller@gmx.de"),
70     "Henning Heinold"    : (["woglinde", "woglinde@openembedded.org", "woglinde2@openembedded.org"], "heinold@inf.fu-berlin.de"),
71     "Henryk Ploetz"      : (["henryk@openembedded.org", "henryk@openmoko.org", "henryk.ploetz"], "henryk@openmoko.org"),
72     "Henry von Tresckow" : (["hvontres@gmail.com", "hvontres"], "hvontres@gmail.com"),
73     "hillct-oe"          : (["hillct-oe@pinnacledigital.com"], "hillct-oe@pinnacledigital.com"),
74     "Holger Freyther"    : (["freyther@openembedded.org", "zecke@selfish.org", "handhelds.org!zecke", "(none)!ich"], "zecke@selfish.org"),
75     "Holger Schurig"     : (["schurig@openembedded.org", "hs4233@mail.mn-solutions.de", "homelinux.net!schurig", "mn-logistik.de!schurig", "mn-solutions.de!schurig"], "schurig@mn-solutions.de"),
76     "ja4mail"            : (["jay4mail@gmail.com"], "jay4mail@gmail.com"),
77     "Jake Morrison"      : (["Jake MORRISON", "Jake Morrison <jake@cogini.com>", "Jake MORRISON <jake@cogini.com>"], "jake@cogini.com"),
78     "Jamie Lenehan"      : (["lenehan@openembedded.org", "lenehan@twibble.org"], "lenehan@twibble.org"),
79     "Jan Lübbe"          : (["jluebbe@lasnet.de", "jluebbe@openembedded.org"], "jluebbe@debian.org"),
80     "Jeremy Laine"       : (["jemery_laine", "Jereme_Laine", "Jeremy_Laine", "jeremy.laine@m4x.org", "jeremy_laine@openembedded.org", "jeremy_laine"], "jeremy.laine@m4x.org"),
81     "Jeroen Hoek"        : (["Jeroen Hoek"], "mail@jeroenhoek.nl"),
82     "Joaquim Duran"      : (["Joaquim Duran <joaquinduran@adtelecom.es>", "joaquinduran@adtelecom.es"], "joaquinduran@adtelecom.es"),
83     "John Bowler"        : (["jbowler@nslu2-linux.org", "kalmiopsis!jbowler"], "jbowler@nslu2-linux.org"),
84     "John Lee"           : (["john_lee@openembedded.org", "john_lee@openmoko.com"], "john_lee@openmoko.org"),
85     "Jonathan McDowell"  : (["noodles@openembedded.org", "orange!noodles"], "noodles@earth.li"),
86     "Jordan Crouse"      : (["amd.com!jcrouse"], "jordan.crouse@amd.com"),
87     "Jorik Jonker"       : (["jorik@kippendief.biz"], "jorik@kippendief.biz"),
88     "José Bernardo de Bandos Rodrigues da Silva" : (["jbs@bandos.homelinux.com"], "jbs@bandos.homelinux.com"),
89     "Joseph Cole"        : (["jnc@openembedded.org"], "jnc@unknown.openembedded.org"),
90     "Joshua Wise"        : (["joshuawise.com!joshua"], "joshua@joshuawise.com"),
91     "jp30"               : (["jp30@nslu2-linux.org"], "jp30@nslu2-linux.org"),
92     "Junqian Gordon Xu"  : (["xjqian@gmail.com", "xjqian@openembedded.org"], "xjqian@gmail.com"),
93     "Justin Patrin"      : (["justinp@openembedded.org"], "papercrane@gmail.com"),
94     "Kalev Lember"       : (["kalev@smartlink.ee"], "kalev@smartlink.ee"),
95     "Karol Sokolowski"   : (["Karol Sokolowski <sokoowpwr@o2.pl>"], "sokoowpwr@o2.pl"),
96     "Khem Raj"           : (["khem@openembedded.org", "KhemRaj", "raj.khem@gmail.com"], "raj.khem@gmail.com"),
97     "Koen Kooi"          : (["koen@openembedded.org", "(none)!koen", "utwente.nl!koen", "void!koen"], "koen@openembedded.org"),
98     "kolla"              : (["kolla@uninett.no"], "kolla@uninett.no"),
99     "Kristoffer Ericson" : (["kristoffer@openembedded.org"], "kristoffer_e1@hotmail.com"),
100     "Leon Woestenberg"   : (["likewise@gmx.net", "likewise@openembedded.org"], "leon.woestenberg@gmail.com"),
101     "Leon Zhang"         : (["Leon Zhang"], "leoncamel@gmail.com"),
102     "Liam Girdwood"      : (["lrg@openembedded.org"], "liam.girdwood@wolfsonmicro.com"),
103     "Lorn Potter"        : (["trolltech.com.au!lpotter", "(none)!lpotter"], "lpotter@trolltech.com"), 
104     "Lukas Gorris"       : (["Lukas Gorris", "lukas.gorris@gmx.de"], "lukas.gorris@gmx.de"),
105     "Manuel Teira"       : (["Manuel Teira <manuel.teira@telefonica.net>", "manuel.teira@telefonica.net", "sirfred@openembedded.org"], "manuel.teira@telefonica.net"),
106     "Marcin Juszkiewicz" : (["Marcin", "Marcin Juszkiewicz <openembedded@hrw.one.pl>", "Marcin Juzkiewicz <hrw@openembedded.org>", "hrw@openedhand.com", "hrw@openembedded.org", "local!szczepan", "hrw.one.pl!szczepan", "hrw.one.pl!hrw", "local!hrw"], "hrw@openembedded.org"),
107     "Marek Vasut"        : (["MarekVasut", "marek.vasut@gmail.com", "Marek Vasut <marek.vasut@gmail.com>", "Marek VaÅ¡ut <marek.vasut@gmail.com>"], "marek.vasut@gmail.com"),
108     "Mark Brown"         : (["broonie@sirena.org.uk", "broonie"], "broonie@sirena.org.uk"),
109     "Martin Dietze"      : (["MartinDietze@openembedded.org"], "di@fh-wedel.de"),
110     "Matthew Swabey"     : (["mas@ecs.soton.ac.uk", "mattaw"], "mas@ecs.soton.ac.uk"),
111     "Matthew Allum"      : (["(none)!mallum"], "mallum@openedhand.com"),
112     "Matthias Goebl"     : (["mgoebl@openembedded.org"], "oe@m.goebl.net"),
113     "Matthias Hentges"   : (["coredump2@openembedded.org", "coredump@openembedded.org", "local!CoreDump", "handhelds.org!CoreDump", "local!mhentges"], "oe@hentges.net"),
114     "Matt Reimer"        : (["mreimer@openembedded.org", "mattjreimer@gmail.com"], "mattjreimer@gmail.com"),
115     "Michael Krelin"     : (["polyonymous", "polyonymous@klever.net", "polyonymous@openembedded.org"], "hacker@klever.net"),
116     "Michael Lauer"      : (["mickeyl", "mickeyl@openembedded.org", "uni-frankfurt.de!mickeyl", "uni-frankfurt.de!mickey", "uni-frankfurt.de!patch", "vanille.de!mickey", "vanille.de!mickeyl", "de[mickey]!mickey", "de[mickey]!mickeyl"], "mickey@vanille-media.de"),
117     "Michael-Luke Jones" : (["blaster8@nslu2-linux.org"], "mlj28@cam.ac.uk"),
118     "Michal Panczyk"     : (["mpanczyk@gmail.com"], "mpanczyk@gmail.com"),
119     "Mika Laitio"        : (["lamikr@openembedded.org"], "lamikr@cc.jyu.fi"),
120     "Mike Montour"       : (["mail@mmontour.net"], "mail@mmontour.net"),
121     "Mike Westerhof"     : (["mwester@openembedded.org", "mwester@wraith"], "mwester@dls.net"),
122     "Mustafa Yuecel"     : (["yuecelm@nslu2-linux.org", "yuecelm@openembedded.org", "musti@openembedded.org"], "yuecelm@ee.ethz.ch"),
123     "Nicolas Ferre"      : (["nicolas.ferre@atmel.com", "nicolas.ferre@rfo.atmel.com", "nicolasfr@gmail.com", "Enodr <nicolasfr@gmail.com>"], "nicolasfr@gmail.com"),
124     "Nigel Kostiuck"     : (["labotomy.net!emte", "(none)!emte"], "emte@labotomy.net"),
125     "Oliver Fels"        : (["oliver.fels@gmx.net", "Oliver Fels <oliver.fels@gmx.net>"], "oliver.fels@gmx.net"),
126     "Ondrej Sokol"       : (["Ondrej Sokol <o.sokol@seznam.cz>"], "o.sokol@seznam.cz"),
127     "OpenEmbedded Project"     : (["oe@openembedded.org"], "openembedded-devel@lists.openembedded.org"),
128     "Openmoko anonymizer key"  : (["openmoko@openembedded.org"], "devel@lists.openmoko.org"),
129     "Otavio Salvador"    : (["otavio@ossystems.com.br", "Otavio Salvador <otavio@debian.org>", "Otavio Salvador <otavio@ossystems.com.br>"], "otavio@ossystems.com.br"),
130     "Ottavio Campana"    : (["Ottavio Campana"], "ottavio@campana.vi.it"),
131     "Ovidiu Sas"         : (["osas@nslu2-linux.org"], "sip.nslu@gmail.com"),
132     "Oyvind Repvik"      : (["nail@nslu2-linux.org", "oyvind@repvik.org"], "nail@nslu2-linux.org"),
133     "Patrick Ohly"       : (["pohly@openembedded.org"], "patrick.ohly@gmx.de"),
134     "Patrick Steiner"    : (["law@a1.net", "law@openembedded.org", "Patrick Steiner <law@a1.net>", "Patrick Steiner <patrick.steiner@a1.net>"], "law@a1.net"),
135     "Patrik Gfeller"     : (["Patrik Gfeller <gfellerpatrik@gmx.net>", "gfellerpatrik@gmx.net"], "gfellerpatrik@gmx.net"),
136     "Paul Eggleton"      : (["bluelightning", "bluelightning@bluelightning.org", "bluelightning@openembedded.org", "Paul Eggleton"], "bluelightning@bluelightning.org"),
137     "Paul Sokolovsky"    : (["pfalcon@openembedded.org", "pmiscml@gmail.com"], "pmiscml@gmail.com"),
138     "Peter Urbanec"      : (["peteru@openembedded.org", "black.lan!peteru"], "toppy@urbanec.net"),
139     "Petr Stetiar"       : (["ynezz@true.cz", "PetrÅ tetiar"], "ynezz@true.cz"),
140     "Phil Blundell"      : (["pb@openembedded.org", "nexus.co.uk!pb", "(none)!pb", "uk[pb]!pb", "reciva.com!pb", "uni-frankfurt.de!pb_"], "philb@gnu.org"),
141     "Philip Balister"    : (["crofton@openembedded.org"], "philip@balister.org"),
142     "Philippe De Swert"  : (["philippe@openembedded.org"], "philippedeswert@scarlet.be"),
143     "Philipp Zabel"      : (["ph5@openembedded.org", "pH5@openembedded.org"], "philipp.zabel@gmail.com"),
144     "Pieter G"           : (["pieterg@gmx.com"], "pieterg@gmx.com"),
145     "Purdyd"             : (["purdyd_at_wisheights@yahoo.com"], "purdyd_at_wisheights@yahoo.com"),
146     "Raymond Danks"      : (["raymond@edanks.com"], "raymond@edanks.com"),
147     "Rene Wagner"        : (["rw@openembedded.org", "dyndns.org!oe", "dyndns.org!reenoo"], "rw@handhelds.org"),
148     "Richard Purdie"     : (["rpurdie@openembedded.org", "rpurdie@rpsys.net", "rpsys.net!RP", "example.net!RP", "rpsys.net!anon", "rpsys.net!root", "example.net!root"], "rpurdie@rpsys.net"),
149     "Rick Farina"        : (["Zero_Chaos", "Zero_Chaos <sidhayn@hotmail.com>"], "sidhayn@hotmail.com"),
150     "Robert Demski"      : (["Robert Demski <Robert.Demski@wp.pl>"], "Robert.Demski@wp.pl"),
151     "Robert Schuster"    : (["thebohemian@openembedded.org", "thebohemian2@openembedded.org", "thebohemian@gmx.net", "theBohemian@gmx.net"], "thebohemian@gmx.net"),
152     "Rodrigo Vivi"       : (["rodrigo.vivi@gmail.com", "rodrigo.vivi@openembedded.org"], "rodrigo.vivi@gmail.com"),
153     "Rod Whitby"         : (["rwhitby@nslu2-linux.org", "nslu2-linux@nslu2-linux.org", "rwhitby.net!rwhitby", "(none)!rwhitby"], "rod@whitby.id.au"),
154     "Rolf Leggewie"      : (["Rolf Leggewie <bugs.openembedded.org@rolf.leggewie.biz>", "bugs.openembedded.org@rolf.leggewie.biz", "Laibsch@openembedded.org"], "oe-devel@rolf.leggewie.biz"),
155     "Roman Moravcik"     : (["roman.moravcik@gmail.com"], "roman.moravcik@gmail.com"),
156     "Russ Ferriday"      : (["russf@topia.com"], "russf@topia.com"),
157     "Sergey Bostandzhyan": (["jin@mediatomb.cc", "jin@mediatomb.org"], "jin@mediatomb.org"),
158     "Sergey Lapin"       : (["Sergey Lapin <slapinid@gmail.com>", "slapin", "slapinid@gmail.com", "slapin@openembedded.org"], "slapinid@gmail.com"),
159     "Shane Volpe"        : (["Shane Volpe", "shanevolpe@gmail.com", "Shane Volpe <shanevolpe@gmail.com>", "svolpe@openembedded.org"], "shanevolpe@gmail.com"),
160     "Simon Vogl"         : (["simon.vogl@researchstudio.at", "vogl@soft.uni-linz.ac.at"], "vogl@soft.uni-linz.ac.at"),
161     "Sleep Walker"       : (["Sleep.Walker <froser@gmail.com>"], "froser@gmail.com"),
162     "Sören Apel"         : (["abraxa_", "abraxa@dar-clan.de"], "abraxa@dar-clan.de"),
163     "Stanislav Brabec"   : (["utx@openembedded.org", "utx@penguin.cz", "Stanislav Brabec <utx@penguin.cz>"], "utx@penguin.cz"),
164     "Stefan Schmidt"     : (["stefan@openembedded.org", "Stefan Schmidt"], "stefan@datenfreihafen.org"),
165     "Stelios Koroneos"   : (["ifaistos@openembedded.org"], "skoroneos@digital-opsis.com"),
166     "Stepan Backshaev"   : (["Stepan Backshaev <step2back@gmail.com>"], "step2back@gmail.com"),
167     "Steve Sakoman"      : (["sakoman@gmail.com", "steve@sakoman.com"], "steve@sakoman.com"),
168     "Thomas Kunze"       : (["thesing", "thesing@openembedded.org", "Thomas Kunze <thesing>", "Thomas Kunze <thommycheck@gmx.de>", "Thomas Kunze <thommy@tabao.de>", "thommy@tabao.de"], "thommycheck@gmx.de"),
169     "Thomas Wood"        : (["thomas@openedhand.com"],"thomas@openedhand.com"),
170     "Tim Ansell"         : (["mithis.com!buildroot", "mithis.com!mithro", "com[tim]!mithro"], "mithro@mithis.com"),
171     "Tim Ellis"          : (["tim.ellis@mac.com"], "tim.ellis@mac.com"),
172     "Tim Hurman"         : (["kano.org.uk!timh"], "kano@kano.org.uk"),
173     "Tim Sander"         : (["oe@iss.tu-darmstadt.de"], "oe@iss.tu-darmstadt.de"),
174     "T Kemp"             : (["tkemp@klc.net.nz"], "tkemp@klc.net.nz"),
175     "Todd Blumer"        : (["todd@openembedded.org", "todd@sdgsystems.com"], "todd@sdgsystems.com"),
176     "Tom King"           : (["ka6sox@nslu2-linux.org"], "ka6sox@nslu2-linux.org"),
177     "Tom Kirkpatrick"    : (["Tom Kirkpatrck", "stv@kirkconsulting.co.uk", "Tom Kirkpatrick <stv@kirkconsulting.co.uk>"], "stv@kirkconsulting.co.uk"),
178     "Tom Rini"           : (["TomRini", "Tom Rini", "trini@embeddedalley.com", "trini@kernel.crashing.org"], "trini@embeddedalley.com"),
179     "Tom Walsh"          : (["Tom Walsh <tom@openhardware.net>"], "tom@openhardware.net"),
180     "Valentin Longchamp" : (["valentin.longchamp@epfl.ch"], "valentin.longchamp@epfl.ch"),
181     "Wolfson Key"        : (["wolfson@openembedded.org"], "linux@wolfsonmicro.com"),
182     "Yin Kangkai"        : (["arfankai@gmail.com"], "arfankai@gmail.com"),
183 }
184
185 reverse = {
186     '1.34!tigrux' : None,
187     'apache' : None,
188     'bitkeeper.com!nslu2-linux.adm' : None,
189     'bkbits.net!nslu2-linux.adm' : None,
190     'bkbits.net!openembedded.adm' : None,
191     '!ByronT' : None,
192     'cambridgebroadband.com!rjt' : None,
193     'conversagent.com!fontenot' : None,
194     'doma!kebert' : None,
195     'giantshoulder.com!g2' : None,
196     'home!ral' : None,
197     'local!phillim' : None,
198     'mine.nu!erich' : None,
199     '(none)!chris' : None,
200     '(none)!chriz' : None,
201     '(none)!dp' : None,
202     '(none)!jacques' : None,
203     '(none)!openembedded' : None,
204     '(none)!pablo' : None,
205     '(none)!patrick' : None,
206     '(none)!red' : None,
207     '(none)!root' : None,
208     '(none)!unslung' : None,
209     '(none)!wind' : None,
210     '(none)!xf005570' : None,
211     'nslu2-linux.org!perlguru' : None,
212     'rant-central.com!CodeWhacker' : None,
213     'rant-central.com!roy' : None,
214     'rochcivictheatre.org!tgall' : None,
215     'techsurgeons.com!joshin' : None,
216     'tetrapyloctomy.org!p.osiczko' : None,
217     'thegrantclan.org!jgrant' : None,
218     'uottawa.ca!stephane' : None,
219     '!xf005570' : None,
220     'zeckescompany.nl!alwin' : None,
221     'activebuddy.com!fontenot' : None,
222 }
223
224 import re, sys
225
226 for name, (ids, email) in all_names.items():
227     sys.stderr.write( "%s: %s\n" % (name, email) )
228     for id in ids:
229         assert not id in reverse
230         reverse[id] = (name, email)
231
232 rx = re.compile(r"^(author|committer) ([a-zA-Z0-9\[\]\(\)\-\.\_!])* <(.+)> (.+)\n$")
233
234 last = ""
235
236 for line in sys.stdin:
237     m = rx.match(line)
238     if m is None:
239         sys.stdout.write(line)
240         continue
241     g = m.groups()
242     try:
243         replacement = reverse[g[2]]
244     except:
245         replacement = None
246         sys.stderr.write("id unknown %s\n" % repr(g[2]))
247     if replacement is None:
248         if '!' in g[2]:
249             domain, addr = g[2].split('!')
250             email = "%s@%s" % (addr, domain)
251             replacement = (email, email)
252         elif '@' in g[2]:
253             replacement = (g[2], g[2])
254         else:
255             raise "id unknown %s" % repr(replacement)
256     line = m.expand(r"\1 %s <%s> \4\n" % replacement )
257     sys.stdout.write(line)
258