#!/usr/bin/python # -*- coding: UTF-8 -*- # Simple map from realname to... # realname : ([keynames], "email address") all_names = { "Adrian Davey" : (["ade@openembedded.org"], "ade@beth2.org"), "Alan Carvalho de Assis" : (["acassis@gmail.com"], "acassis@gmail.com"), "Alessandro Gardich" : (["gremlin@gremlin.it"], "gremlin@gremlin.it"), "Alessandro Iurlano" : (["Alessandro Iurlano alessandro.iurlano@gmail.com", "alessandro.iurlano@gmail.com"], "alessandro.iurlano@gmail.com"), "Alexander Hanff" : (["core.ldf@gmail.com"], "core.ldf@gmail.com"), "Alexis Maldonado " : (["Alexis Maldonado "], "maldonad@cs.tum.edu"), "Alex Lange" : (["Alex Lange"], "chicken@handhelds.org"), "Alex Osborne" : (["Alex Osborne"], "ato@meshy.org"), "Andrea Adami" : (["andrea.adami@gmail.com"], "andrea.adami@gmail.com"), "Andrew Paulsen" : (["andrew.paulsen@gmail.com"], "andrew.paulsen@gmail.com"), "Andrew Wilcox" : (["awilcox@openembedded.org"], "andy@protium.com"), "Angus Ainslie" : (["angus@handheldshell.com"], "angus@handheldshell.com"), "ant" : (["ant", "ant, Jay"], "ant@unknown.openembedded.org"), "Antonio Ospite" : (["ospite@studenti.unina.it"], "ospite@studenti.unina.it"), "Antti Andreimann" : (["antti.andreimann@mail.ee", "mailto:antti.andreimann@mail.ee"], "antti.andreimann@mail.ee"), "araimondi" : (["araimondi@gmx.net"], "araimondi@gmx.net"), "Arjan Schrijver" : (["arjan@openembedded.org"], "arjan@anymore.nl"), "Bastian Ballmann" : (["balle@chaostal.de", "Bastian Ballmann "], "balle@chaostal.de"), "Bernhard Guillon" : (["Bernhard.Guillon@opensimpad.org", "Bernhard Guillon ", "Bernhard Guillon - close #1874"], "Bernhard.Guillon@opensimpad.org"), "Bernhard Rosenkraenzer" : (["bero@arklinux.org"], "bero@arklinux.org"), "Bignaux Ronan" : (["ronan@aimao.org"], "ronan@aimao.org"), "Bruno Randolf" : (["br1@openembedded.org", "(none)!br1"], "br1@subnet.at"), "Carsten Schneider" : (["Carsten Schneider "], "zcarsten@gmx.net"), "ccsmart" : (["ccsmart@openembedded.org", "ccsmart@smartpal.de"], "ccsmart@smartpal.de"), "Cesar Eduardo Barros" : (["cesarb@cesarb.net"], "cesarb@cesarb.net"), "Chia-I Wu" : (["olvaffe@gmail.com"], "olvaffe@gmail.com"), "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"), "Chris Lord" : (["Cwiiis", "(none)!cwiiis"], "chris@openedhand.com"), "Christiano P." : (["Cristiano P. "], "cris69@solnet.ch"), "Clark Wixon" : (["cwixon@usa.net"], "cwixon@usa.net"), "Clement Hermann" : (["clement.hermann@free.fr"], "clement.hermann@free.fr"), "Cliff Brake" : (["cbrake@openembedded.org", "accelent.com!cbrake", "rr.com!cbrake"], "cbrake@bec-systems.com"), "Craig Hughes" : (["craig@gumstix.com"], "craig@gumstix.com"), "Cyril Romain" : (["c.romain@laposte.net", "CyrilRomain", "Cyril Romain", "cyril Romain ", "Cyril Romain ", "cyril.romain@gmail.com", "cyril.romain@laposte.net"], "cyril.romain@gmail.com"), "Daniel Willmann" : (["daniel@openembedded.org", "daniel@totalueberwachung.de"], "daniel@totalueberwachung.de"), "Dan Williams" : (["Dan Williams "], "dan.j.williams@gmail.com"), "David Karlstrom" : (["daka@nslu2-linux.org", "daka@thg.se"], "daka@thg.se"), "Denys Dmytriyenko" : (["denis@denix.org"], "denis@denix.org"), "Derek Young" : (["dyoung@nslu2-linux.org", "(none)!dereky", "(none)!dyoung"], "dyoung@nslu2-linux.org"), "Dirk Opfer" : (["dirk@openembedded.org", "opfer.lan!dirk"], "dirk@opfer-online.de"), "Dmitry Artamonow" : (["DmitryArtamonow", "mad_soft@inbox.ru"], "mad_soft@inbox.ru"), "Dmitry Baryshkov" : (["Dmitry Baryshkov ", "dbaryshkov@gmail.com"], "dbaryshkov@gmail.com"), "Dojii Seketeli" : (["dodji@openedhand.com"], "dodji@openedhand.com"), "Dominik Kuhlen" : (["kuhlen@openembedded.org"], "kuhlen@gmit-gmbh.de"), "Eblis" : (["eblis102@gmail.com"], "eblis102@gmail.com"), "Erik Hovland" : (["erik@openembedded.org", "erik@hovland.org"], "erik@hovland.org"), "Esben Haabendal" : (["eha@doredevelopment.dk"], "eha@doredevelopment.dk"), "Fabrice Aeschbacher": (["Fabrice.Aeschbacher@siemens.com"], "fabrice.aeschbacher@siemens.com"), "Felix Domke" : (["tmbinc@openembedded.org"], "tmbinc@elitedvb.ne"), "Florian Boor" : (["florian@openembedded.org"], "florian.boor@kernelconcepts.de"), "Frans Meulenbroeks" : (["eFfeM@openembedded.org"], "fransmeulenbroeks@yahoo.com"), "Frederic Bompart" : (["frederic@openembedded.org"], "frederic@unknown.openembedded.org"), "Geoffrey Wossum" : (["gwossum", "gwossum@acm.org", "geoffrey.wossum"], "gwossum@acm.org"), "Gerald Britton" : (["doomcom.org!gbritton", "org[gbritton]!gbritton"], "gbritton@doomcom.org"), "giel" : (["giel"], "giel@unknown.openembedded.org"), "gilligan" : (["gilligan@openembedded.org"], "gilligan@unknown.openembedded.org"), "Giorgio Padrin" : (["Giorgio Padrin "], "giorgio@mandarinlogiq.org"), "GoxboxLive" : (["GoxboxLive "], "goxboxlive@gmail.com"), "Graeme Gregory" : (["dp@xora.org.uk", "xora@openembedded.org", "hyboria!xora", "(none)!xora", "(none)!XorA"], "dp@xora.org.uk"), "Greg Gilbert" : (["brooks.edu!ggilbert", "(none)!ggilbert", "treke.ath.cx!ggilbert", "treke.net!ggilbert"], "greg@treke.net"), "Grzegorz Ratajczak" : (["McGregor "], "mcgregor@blackmesaeast.com.pl"), "Harald Welte" : (["laforge@openmoko.org"], "laforge@openmoko.org"), "Helge Deller" : (["deller@gmx.de"], "deller@gmx.de"), "Henning Heinold" : (["woglinde", "woglinde@openembedded.org", "woglinde2@openembedded.org"], "heinold@inf.fu-berlin.de"), "Henryk Ploetz" : (["henryk@openembedded.org", "henryk@openmoko.org", "henryk.ploetz"], "henryk@openmoko.org"), "Henry von Tresckow" : (["hvontres@gmail.com", "hvontres"], "hvontres@gmail.com"), "hillct-oe" : (["hillct-oe@pinnacledigital.com"], "hillct-oe@pinnacledigital.com"), "Holger Freyther" : (["freyther@openembedded.org", "zecke@selfish.org", "handhelds.org!zecke", "(none)!ich"], "zecke@selfish.org"), "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"), "ja4mail" : (["jay4mail@gmail.com"], "jay4mail@gmail.com"), "Jake Morrison" : (["Jake MORRISON", "Jake Morrison ", "Jake MORRISON "], "jake@cogini.com"), "Jamie Lenehan" : (["lenehan@openembedded.org", "lenehan@twibble.org"], "lenehan@twibble.org"), "Jan Lübbe" : (["jluebbe@lasnet.de", "jluebbe@openembedded.org"], "jluebbe@debian.org"), "Jeremy Laine" : (["jemery_laine", "Jereme_Laine", "Jeremy_Laine", "jeremy.laine@m4x.org", "jeremy_laine@openembedded.org", "jeremy_laine"], "jeremy.laine@m4x.org"), "Jeroen Hoek" : (["Jeroen Hoek"], "mail@jeroenhoek.nl"), "Joaquim Duran" : (["Joaquim Duran ", "joaquinduran@adtelecom.es"], "joaquinduran@adtelecom.es"), "John Bowler" : (["jbowler@nslu2-linux.org", "kalmiopsis!jbowler"], "jbowler@nslu2-linux.org"), "John Lee" : (["john_lee@openembedded.org", "john_lee@openmoko.com"], "john_lee@openmoko.org"), "Jonathan McDowell" : (["noodles@openembedded.org", "orange!noodles"], "noodles@earth.li"), "Jordan Crouse" : (["amd.com!jcrouse"], "jordan.crouse@amd.com"), "Jorik Jonker" : (["jorik@kippendief.biz"], "jorik@kippendief.biz"), "José Bernardo de Bandos Rodrigues da Silva" : (["jbs@bandos.homelinux.com"], "jbs@bandos.homelinux.com"), "Joseph Cole" : (["jnc@openembedded.org"], "jnc@unknown.openembedded.org"), "Joshua Wise" : (["joshuawise.com!joshua"], "joshua@joshuawise.com"), "jp30" : (["jp30@nslu2-linux.org"], "jp30@nslu2-linux.org"), "Junqian Gordon Xu" : (["xjqian@gmail.com", "xjqian@openembedded.org"], "xjqian@gmail.com"), "Justin Patrin" : (["justinp@openembedded.org"], "papercrane@gmail.com"), "Kalev Lember" : (["kalev@smartlink.ee"], "kalev@smartlink.ee"), "Karol Sokolowski" : (["Karol Sokolowski "], "sokoowpwr@o2.pl"), "Khem Raj" : (["khem@openembedded.org", "KhemRaj", "raj.khem@gmail.com"], "raj.khem@gmail.com"), "Koen Kooi" : (["koen@openembedded.org", "(none)!koen", "utwente.nl!koen", "void!koen"], "koen@openembedded.org"), "kolla" : (["kolla@uninett.no"], "kolla@uninett.no"), "Kristoffer Ericson" : (["kristoffer@openembedded.org"], "kristoffer_e1@hotmail.com"), "Leon Woestenberg" : (["likewise@gmx.net", "likewise@openembedded.org"], "leon.woestenberg@gmail.com"), "Leon Zhang" : (["Leon Zhang"], "leoncamel@gmail.com"), "Liam Girdwood" : (["lrg@openembedded.org"], "liam.girdwood@wolfsonmicro.com"), "Lorn Potter" : (["trolltech.com.au!lpotter", "(none)!lpotter"], "lpotter@trolltech.com"), "Lukas Gorris" : (["Lukas Gorris", "lukas.gorris@gmx.de"], "lukas.gorris@gmx.de"), "Manuel Teira" : (["Manuel Teira ", "manuel.teira@telefonica.net", "sirfred@openembedded.org"], "manuel.teira@telefonica.net"), "Marcin Juszkiewicz" : (["Marcin", "Marcin Juszkiewicz ", "Marcin Juzkiewicz ", "hrw@openedhand.com", "hrw@openembedded.org", "local!szczepan", "hrw.one.pl!szczepan", "hrw.one.pl!hrw", "local!hrw"], "hrw@openembedded.org"), "Marek Vasut" : (["MarekVasut", "marek.vasut@gmail.com", "Marek Vasut ", "Marek Vašut "], "marek.vasut@gmail.com"), "Mark Brown" : (["broonie@sirena.org.uk", "broonie"], "broonie@sirena.org.uk"), "Martin Dietze" : (["MartinDietze@openembedded.org"], "di@fh-wedel.de"), "Matthew Swabey" : (["mas@ecs.soton.ac.uk", "mattaw"], "mas@ecs.soton.ac.uk"), "Matthew Allum" : (["(none)!mallum"], "mallum@openedhand.com"), "Matthias Goebl" : (["mgoebl@openembedded.org"], "oe@m.goebl.net"), "Matthias Hentges" : (["coredump2@openembedded.org", "coredump@openembedded.org", "local!CoreDump", "handhelds.org!CoreDump", "local!mhentges"], "oe@hentges.net"), "Matt Reimer" : (["mreimer@openembedded.org", "mattjreimer@gmail.com"], "mattjreimer@gmail.com"), "Michael Krelin" : (["polyonymous", "polyonymous@klever.net", "polyonymous@openembedded.org"], "hacker@klever.net"), "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"), "Michael-Luke Jones" : (["blaster8@nslu2-linux.org"], "mlj28@cam.ac.uk"), "Michal Panczyk" : (["mpanczyk@gmail.com"], "mpanczyk@gmail.com"), "Mika Laitio" : (["lamikr@openembedded.org"], "lamikr@cc.jyu.fi"), "Mike Montour" : (["mail@mmontour.net"], "mail@mmontour.net"), "Mike Westerhof" : (["mwester@openembedded.org", "mwester@wraith"], "mwester@dls.net"), "Mustafa Yuecel" : (["yuecelm@nslu2-linux.org", "yuecelm@openembedded.org", "musti@openembedded.org"], "yuecelm@ee.ethz.ch"), "Nicolas Ferre" : (["nicolas.ferre@atmel.com", "nicolas.ferre@rfo.atmel.com", "nicolasfr@gmail.com", "Enodr "], "nicolasfr@gmail.com"), "Nigel Kostiuck" : (["labotomy.net!emte", "(none)!emte"], "emte@labotomy.net"), "Oliver Fels" : (["oliver.fels@gmx.net", "Oliver Fels "], "oliver.fels@gmx.net"), "Ondrej Sokol" : (["Ondrej Sokol "], "o.sokol@seznam.cz"), "OpenEmbedded Project" : (["oe@openembedded.org"], "openembedded-devel@lists.openembedded.org"), "Openmoko anonymizer key" : (["openmoko@openembedded.org"], "devel@lists.openmoko.org"), "Otavio Salvador" : (["otavio@ossystems.com.br", "Otavio Salvador ", "Otavio Salvador "], "otavio@ossystems.com.br"), "Ottavio Campana" : (["Ottavio Campana"], "ottavio@campana.vi.it"), "Ovidiu Sas" : (["osas@nslu2-linux.org"], "sip.nslu@gmail.com"), "Oyvind Repvik" : (["nail@nslu2-linux.org", "oyvind@repvik.org"], "nail@nslu2-linux.org"), "Patrick Ohly" : (["pohly@openembedded.org"], "patrick.ohly@gmx.de"), "Patrick Steiner" : (["law@a1.net", "law@openembedded.org", "Patrick Steiner ", "Patrick Steiner "], "law@a1.net"), "Patrik Gfeller" : (["Patrik Gfeller ", "gfellerpatrik@gmx.net"], "gfellerpatrik@gmx.net"), "Paul Eggleton" : (["bluelightning", "bluelightning@bluelightning.org", "bluelightning@openembedded.org", "Paul Eggleton"], "bluelightning@bluelightning.org"), "Paul Sokolovsky" : (["pfalcon@openembedded.org", "pmiscml@gmail.com"], "pmiscml@gmail.com"), "Peter Urbanec" : (["peteru@openembedded.org", "black.lan!peteru"], "toppy@urbanec.net"), "Petr Stetiar" : (["ynezz@true.cz", "PetrŠtetiar"], "ynezz@true.cz"), "Phil Blundell" : (["pb@openembedded.org", "nexus.co.uk!pb", "(none)!pb", "uk[pb]!pb", "reciva.com!pb", "uni-frankfurt.de!pb_"], "philb@gnu.org"), "Philip Balister" : (["crofton@openembedded.org"], "philip@balister.org"), "Philippe De Swert" : (["philippe@openembedded.org"], "philippedeswert@scarlet.be"), "Philipp Zabel" : (["ph5@openembedded.org", "pH5@openembedded.org"], "philipp.zabel@gmail.com"), "Pieter G" : (["pieterg@gmx.com"], "pieterg@gmx.com"), "Purdyd" : (["purdyd_at_wisheights@yahoo.com"], "purdyd_at_wisheights@yahoo.com"), "Raymond Danks" : (["raymond@edanks.com"], "raymond@edanks.com"), "Rene Wagner" : (["rw@openembedded.org", "dyndns.org!oe", "dyndns.org!reenoo"], "rw@handhelds.org"), "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"), "Rick Farina" : (["Zero_Chaos", "Zero_Chaos "], "sidhayn@hotmail.com"), "Robert Demski" : (["Robert Demski "], "Robert.Demski@wp.pl"), "Robert Schuster" : (["thebohemian@openembedded.org", "thebohemian2@openembedded.org", "thebohemian@gmx.net", "theBohemian@gmx.net"], "thebohemian@gmx.net"), "Rodrigo Vivi" : (["rodrigo.vivi@gmail.com", "rodrigo.vivi@openembedded.org"], "rodrigo.vivi@gmail.com"), "Rod Whitby" : (["rwhitby@nslu2-linux.org", "nslu2-linux@nslu2-linux.org", "rwhitby.net!rwhitby", "(none)!rwhitby"], "rod@whitby.id.au"), "Rolf Leggewie" : (["Rolf Leggewie ", "bugs.openembedded.org@rolf.leggewie.biz", "Laibsch@openembedded.org"], "oe-devel@rolf.leggewie.biz"), "Roman Moravcik" : (["roman.moravcik@gmail.com"], "roman.moravcik@gmail.com"), "Russ Ferriday" : (["russf@topia.com"], "russf@topia.com"), "Sergey Bostandzhyan": (["jin@mediatomb.cc", "jin@mediatomb.org"], "jin@mediatomb.org"), "Sergey Lapin" : (["Sergey Lapin ", "slapin", "slapinid@gmail.com", "slapin@openembedded.org"], "slapinid@gmail.com"), "Shane Volpe" : (["Shane Volpe", "shanevolpe@gmail.com", "Shane Volpe ", "svolpe@openembedded.org"], "shanevolpe@gmail.com"), "Simon Vogl" : (["simon.vogl@researchstudio.at", "vogl@soft.uni-linz.ac.at"], "vogl@soft.uni-linz.ac.at"), "Sleep Walker" : (["Sleep.Walker "], "froser@gmail.com"), "Sören Apel" : (["abraxa_", "abraxa@dar-clan.de"], "abraxa@dar-clan.de"), "Stanislav Brabec" : (["utx@openembedded.org", "utx@penguin.cz", "Stanislav Brabec "], "utx@penguin.cz"), "Stefan Schmidt" : (["stefan@openembedded.org", "Stefan Schmidt"], "stefan@datenfreihafen.org"), "Stelios Koroneos" : (["ifaistos@openembedded.org"], "skoroneos@digital-opsis.com"), "Stepan Backshaev" : (["Stepan Backshaev "], "step2back@gmail.com"), "Steve Sakoman" : (["sakoman@gmail.com", "steve@sakoman.com"], "steve@sakoman.com"), "Thomas Kunze" : (["thesing", "thesing@openembedded.org", "Thomas Kunze ", "Thomas Kunze ", "Thomas Kunze ", "thommy@tabao.de"], "thommycheck@gmx.de"), "Thomas Wood" : (["thomas@openedhand.com"],"thomas@openedhand.com"), "Tim Ansell" : (["mithis.com!buildroot", "mithis.com!mithro", "com[tim]!mithro"], "mithro@mithis.com"), "Tim Ellis" : (["tim.ellis@mac.com"], "tim.ellis@mac.com"), "Tim Hurman" : (["kano.org.uk!timh"], "kano@kano.org.uk"), "Tim Sander" : (["oe@iss.tu-darmstadt.de"], "oe@iss.tu-darmstadt.de"), "T Kemp" : (["tkemp@klc.net.nz"], "tkemp@klc.net.nz"), "Todd Blumer" : (["todd@openembedded.org", "todd@sdgsystems.com"], "todd@sdgsystems.com"), "Tom King" : (["ka6sox@nslu2-linux.org"], "ka6sox@nslu2-linux.org"), "Tom Kirkpatrick" : (["Tom Kirkpatrck", "stv@kirkconsulting.co.uk", "Tom Kirkpatrick "], "stv@kirkconsulting.co.uk"), "Tom Rini" : (["TomRini", "Tom Rini", "trini@embeddedalley.com", "trini@kernel.crashing.org"], "trini@embeddedalley.com"), "Tom Walsh" : (["Tom Walsh "], "tom@openhardware.net"), "Valentin Longchamp" : (["valentin.longchamp@epfl.ch"], "valentin.longchamp@epfl.ch"), "Wolfson Key" : (["wolfson@openembedded.org"], "linux@wolfsonmicro.com"), "Yin Kangkai" : (["arfankai@gmail.com"], "arfankai@gmail.com"), } reverse = { '1.34!tigrux' : None, 'apache' : None, 'bitkeeper.com!nslu2-linux.adm' : None, 'bkbits.net!nslu2-linux.adm' : None, 'bkbits.net!openembedded.adm' : None, '!ByronT' : None, 'cambridgebroadband.com!rjt' : None, 'conversagent.com!fontenot' : None, 'doma!kebert' : None, 'giantshoulder.com!g2' : None, 'home!ral' : None, 'local!phillim' : None, 'mine.nu!erich' : None, '(none)!chris' : None, '(none)!chriz' : None, '(none)!dp' : None, '(none)!jacques' : None, '(none)!openembedded' : None, '(none)!pablo' : None, '(none)!patrick' : None, '(none)!red' : None, '(none)!root' : None, '(none)!unslung' : None, '(none)!wind' : None, '(none)!xf005570' : None, 'nslu2-linux.org!perlguru' : None, 'rant-central.com!CodeWhacker' : None, 'rant-central.com!roy' : None, 'rochcivictheatre.org!tgall' : None, 'techsurgeons.com!joshin' : None, 'tetrapyloctomy.org!p.osiczko' : None, 'thegrantclan.org!jgrant' : None, 'uottawa.ca!stephane' : None, '!xf005570' : None, 'zeckescompany.nl!alwin' : None, 'activebuddy.com!fontenot' : None, } import re, sys for name, (ids, email) in all_names.items(): sys.stderr.write( "%s: %s\n" % (name, email) ) for id in ids: assert not id in reverse reverse[id] = (name, email) rx = re.compile(r"^(author|committer) ([a-zA-Z0-9\[\]\(\)\-\.\_!])* <(.+)> (.+)\n$") last = "" for line in sys.stdin: m = rx.match(line) if m is None: sys.stdout.write(line) continue g = m.groups() try: replacement = reverse[g[2]] except: replacement = None sys.stderr.write("id unknown %s\n" % repr(g[2])) if replacement is None: if '!' in g[2]: domain, addr = g[2].split('!') email = "%s@%s" % (addr, domain) replacement = (email, email) elif '@' in g[2]: replacement = (g[2], g[2]) else: raise "id unknown %s" % repr(replacement) line = m.expand(r"\1 %s <%s> \4\n" % replacement ) sys.stdout.write(line)