diff options
Diffstat (limited to 'nixpkgs/maintainers')
33 files changed, 11542 insertions, 0 deletions
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix new file mode 100644 index 00000000000..6d677218115 --- /dev/null +++ b/nixpkgs/maintainers/maintainer-list.nix @@ -0,0 +1,8854 @@ +/* List of NixOS maintainers. + ```nix + handle = { + # Required + name = "Your name"; + email = "address@example.org"; + + # Optional + github = "GithubUsername"; + githubId = your-github-id; + keys = [{ + longkeyid = "rsa2048/0x0123456789ABCDEF"; + fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333"; + }]; + }; + ``` + + where + + - `handle` is the handle you are going to use in nixpkgs expressions, + - `name` is your, preferably real, name, + - `email` is your maintainer email address, and + - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`), + - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/<userhandle>`, + - `keys` is a list of your PGP/GPG key IDs and fingerprints. + + `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient. + + Add PGP/GPG keys only if you actually use them to sign commits and/or mail. + + To get the required PGP/GPG values for a key run + ```shell + gpg --keyid-format 0xlong --fingerprint <email> | head -n 2 + ``` + + !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth. + + More fields may be added in the future. + + Please keep the list alphabetically sorted. + See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data. +*/ +{ + "0x4A6F" = { + email = "0x4A6F@shackspace.de"; + name = "Joachim Ernst"; + github = "0x4A6F"; + githubId = 9675338; + keys = [{ + longkeyid = "rsa8192/0x87027528B006D66D"; + fingerprint = "F466 A548 AD3F C1F1 8C88 4576 8702 7528 B006 D66D"; + }]; + }; + "1000101" = { + email = "b1000101@pm.me"; + github = "1000101"; + githubId = 791309; + name = "Jan Hrnko"; + }; + a1russell = { + email = "adamlr6+pub@gmail.com"; + github = "a1russell"; + githubId = 241628; + name = "Adam Russell"; + }; + aanderse = { + email = "aaron@fosslib.net"; + github = "aanderse"; + githubId = 7755101; + name = "Aaron Andersen"; + }; + aaronjanse = { + email = "aaron@ajanse.me"; + github = "aaronjanse"; + githubId = 16829510; + name = "Aaron Janse"; + }; + aaronschif = { + email = "aaronschif@gmail.com"; + github = "aaronschif"; + githubId = 2258953; + name = "Aaron Schif"; + }; + abaldeau = { + email = "andreas@baldeau.net"; + github = "baldo"; + githubId = 178750; + name = "Andreas Baldeau"; + }; + abbe = { + email = "ashish.is@lostca.se"; + github = "wahjava"; + githubId = 2255192; + name = "Ashish SHUKLA"; + keys = [{ + longkeyid = "rsa4096/0xC746CFA9E74FA4B0"; + fingerprint = "F682 CDCC 39DC 0FEA E116 20B6 C746 CFA9 E74F A4B0"; + }]; + }; + abbradar = { + email = "ab@fmap.me"; + github = "abbradar"; + githubId = 1174810; + name = "Nikolay Amiantov"; + }; + abhi18av = { + email = "abhi18av@gmail.com"; + github = "abhi18av"; + githubId = 12799326; + name = "Abhinav Sharma"; + }; + abigailbuccaneer = { + email = "abigailbuccaneer@gmail.com"; + github = "abigailbuccaneer"; + githubId = 908758; + name = "Abigail Bunyan"; + }; + aborsu = { + email = "a.borsu@gmail.com"; + github = "aborsu"; + githubId = 5033617; + name = "Augustin Borsu"; + }; + aboseley = { + email = "adam.boseley@gmail.com"; + github = "aboseley"; + githubId = 13504599; + name = "Adam Boseley"; + }; + abuibrahim = { + email = "ruslan@babayev.com"; + github = "abuibrahim"; + githubId = 2321000; + name = "Ruslan Babayev"; + }; + acairncross = { + email = "acairncross@gmail.com"; + github = "acairncross"; + githubId = 1517066; + name = "Aiken Cairncross"; + }; + acowley = { + email = "acowley@gmail.com"; + github = "acowley"; + githubId = 124545; + name = "Anthony Cowley"; + }; + adamt = { + email = "mail@adamtulinius.dk"; + github = "adamtulinius"; + githubId = 749381; + name = "Adam Tulinius"; + }; + adelbertc = { + email = "adelbertc@gmail.com"; + github = "adelbertc"; + githubId = 1332980; + name = "Adelbert Chang"; + }; + adev = { + email = "adev@adev.name"; + github = "adevress"; + githubId = 1773511; + name = "Adrien Devresse"; + }; + adisbladis = { + email = "adis@blad.is"; + github = "adisbladis"; + githubId = 63286; + name = "Adam Hose"; + }; + Adjective-Object = { + email = "mhuan13@gmail.com"; + github = "Adjective-Object"; + githubId = 1174858; + name = "Maxwell Huang-Hobbs"; + }; + adnelson = { + email = "ithinkican@gmail.com"; + github = "adnelson"; + githubId = 5091511; + name = "Allen Nelson"; + }; + adolfogc = { + email = "adolfo.garcia.cr@gmail.com"; + github = "adolfogc"; + githubId = 1250775; + name = "Adolfo E. GarcĂa Castro"; + }; + adsr = { + email = "as@php.net"; + github = "adsr"; + githubId = 315003; + name = "Adam Saponara"; + }; + aepsil0n = { + email = "eduard.bopp@aepsil0n.de"; + github = "aepsil0n"; + githubId = 3098430; + name = "Eduard Bopp"; + }; + aerialx = { + email = "aaron+nixos@aaronlindsay.com"; + github = "AerialX"; + githubId = 117295; + name = "Aaron Lindsay"; + }; + aespinosa = { + email = "allan.espinosa@outlook.com"; + github = "aespinosa"; + githubId = 58771; + name = "Allan Espinosa"; + }; + aethelz = { + email = "aethelz@protonmail.com"; + github = "aethelz"; + githubId = 10677343; + name = "Eugene"; + }; + aflatter = { + email = "flatter@fastmail.fm"; + github = "aflatter"; + githubId = 168; + name = "Alexander Flatter"; + }; + afldcr = { + email = "alex@fldcr.com"; + github = "afldcr"; + githubId = 335271; + name = "James Alexander Feldman-Crough"; + }; + aforemny = { + email = "alexanderforemny@googlemail.com"; + github = "aforemny"; + githubId = 610962; + name = "Alexander Foremny"; + }; + afranchuk = { + email = "alex.franchuk@gmail.com"; + github = "afranchuk"; + githubId = 4296804; + name = "Alex Franchuk"; + }; + aherrmann = { + email = "andreash87@gmx.ch"; + github = "aherrmann"; + githubId = 732652; + name = "Andreas Herrmann"; + }; + ahuzik = { + email = "ales.guzik@gmail.com"; + github = "alesguzik"; + githubId = 209175; + name = "Ales Huzik"; + }; + aij = { + email = "aij+git@mrph.org"; + github = "aij"; + githubId = 4732885; + name = "Ivan Jager"; + }; + ajs124 = { + email = "nix@ajs124.de"; + github = "ajs124"; + githubId = 1229027; + name = "Andreas SchrĂ€gle"; + }; + ajgrf = { + email = "a@ajgrf.com"; + github = "ajgrf"; + githubId = 10733175; + name = "Alex Griffin"; + }; + ak = { + email = "ak@formalprivacy.com"; + github = "alexanderkjeldaas"; + githubId = 339369; + name = "Alexander Kjeldaas"; + }; + akavel = { + email = "czapkofan@gmail.com"; + github = "akavel"; + githubId = 273837; + name = "Mateusz CzapliĆski"; + }; + akaWolf = { + email = "akawolf0@gmail.com"; + github = "akaWolf"; + githubId = 5836586; + name = "Artjom Vejsel"; + }; + akc = { + email = "akc@akc.is"; + github = "akc"; + githubId = 1318982; + name = "Anders Claesson"; + }; + akru = { + email = "mail@akru.me"; + github = "akru"; + githubId = 786394; + name = "Alexander Krupenkin "; + }; + albakham = { + email = "dev@geber.ga"; + github = "albakham"; + githubId = 43479487; + name = "Titouan Biteau"; + }; + alexarice = { + email = "alexrice999@hotmail.co.uk"; + github = "alexarice"; + githubId = 17208985; + name = "Alex Rice"; + }; + alexbakker = { + email = "ab@alexbakker.me"; + github = "alexbakker"; + githubId = 2387841; + name = "Alexander Bakker"; + }; + alexchapman = { + email = "alex@farfromthere.net"; + github = "AJChapman"; + githubId = 8316672; + name = "Alex Chapman"; + }; + alexfmpe = { + email = "alexandre.fmp.esteves@gmail.com"; + github = "alexfmpe"; + githubId = 2335822; + name = "Alexandre Esteves"; + }; + alexvorobiev = { + email = "alexander.vorobiev@gmail.com"; + github = "alexvorobiev"; + githubId = 782180; + name = "Alex Vorobiev"; + }; + algorith = { + email = "dries_van_daele@telenet.be"; + name = "Dries Van Daele"; + }; + alibabzo = { + email = "alistair.bill@gmail.com"; + github = "alibabzo"; + githubId = 2822871; + name = "Alistair Bill"; + }; + alkeryn = { + email = "plbraundev@gmail.com"; + github = "Alkeryn"; + githubId = 11599075; + name = "Pierre-Louis Braun"; + }; + all = { + email = "nix-commits@lists.science.uu.nl"; + name = "Nix Committers"; + }; + allonsy = { + email = "linuxbash8@gmail.com"; + github = "allonsy"; + githubId = 5892756; + name = "Alec Snyder"; + }; + AluisioASG = { + name = "AluĂsio Augusto Silva Gonçalves"; + email = "aluisio@aasg.name"; + github = "AluisioASG"; + githubId = 1904165; + keys = [{ + longkeyid = "rsa4096/0x9FAA63E097506D9D"; + fingerprint = "7FDB 17B3 C29B 5BA6 E5A9 8BB2 9FAA 63E0 9750 6D9D"; + }]; + }; + almac = { + email = "alma.cemerlic@gmail.com"; + github = "a1mac"; + githubId = 60479013; + name = "Alma Cemerlic"; + }; + alunduil = { + email = "alunduil@gmail.com"; + github = "alunduil"; + githubId = 169249; + name = "Alex Brandt"; + }; + alva = { + email = "alva@skogen.is"; + github = "fjallarefur"; + githubId = 42881386; + name = "Alva"; + keys = [{ + longkeyid = "ed25519/0xF53E323342F7A6D3"; + fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A"; + }]; + }; + amar1729 = { + email = "amar.paul16@gmail.com"; + github = "amar1729"; + githubId = 15623522; + name = "Amar Paul"; + }; + ambrop72 = { + email = "ambrop7@gmail.com"; + github = "ambrop72"; + githubId = 2626481; + name = "Ambroz Bizjak"; + }; + amiddelk = { + email = "amiddelk@gmail.com"; + github = "amiddelk"; + githubId = 1358320; + name = "Arie Middelkoop"; + }; + amiloradovsky = { + email = "miloradovsky@gmail.com"; + github = "amiloradovsky"; + githubId = 20530052; + name = "Andrew Miloradovsky"; + }; + notbandali = { + name = "Amin Bandali"; + email = "bandali@gnu.org"; + github = "notbandali"; + githubId = 1254858; + keys = [{ + longkeyid = "rsa4096/0xA21A020248816103"; + fingerprint = "BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103"; + }]; + }; + aminechikhaoui = { + email = "amine.chikhaoui91@gmail.com"; + github = "AmineChikhaoui"; + githubId = 5149377; + name = "Amine Chikhaoui"; + }; + amorsillo = { + email = "andrew.morsillo@gmail.com"; + github = "AndrewMorsillo"; + githubId = 858965; + name = "Andrew Morsillo"; + }; + andersk = { + email = "andersk@mit.edu"; + github = "andersk"; + githubId = 26471; + name = "Anders Kaseorg"; + }; + anderslundstedt = { + email = "git@anderslundstedt.se"; + github = "anderslundstedt"; + githubId = 4514101; + name = "Anders Lundstedt"; + }; + AndersonTorres = { + email = "torres.anderson.85@protonmail.com"; + github = "AndersonTorres"; + githubId = 5954806; + name = "Anderson Torres"; + }; + anderspapitto = { + email = "anderspapitto@gmail.com"; + github = "anderspapitto"; + githubId = 1388690; + name = "Anders Papitto"; + }; + andir = { + email = "andreas@rammhold.de"; + github = "andir"; + githubId = 638836; + name = "Andreas Rammhold"; + }; + andreabedini = { + email = "andrea@kzn.io"; + github = "andreabedini"; + githubId = 69135; + name = "Andrea Bedini"; + }; + andres = { + email = "ksnixos@andres-loeh.de"; + github = "kosmikus"; + githubId = 293191; + name = "Andres Loeh"; + }; + andrestylianos = { + email = "andre.stylianos@gmail.com"; + github = "andrestylianos"; + githubId = 7112447; + name = "Andre S. Ramos"; + }; + andrew-d = { + email = "andrew@du.nham.ca"; + github = "andrew-d"; + githubId = 1079173; + name = "Andrew Dunham"; + }; + andrewchambers = { + email = "ac@acha.ninja"; + github = "andrewchambers"; + githubId = 962885; + name = "Andrew Chambers"; + }; + andrewrk = { + email = "superjoe30@gmail.com"; + github = "andrewrk"; + githubId = 106511; + name = "Andrew Kelley"; + }; + andsild = { + email = "andsild@gmail.com"; + github = "andsild"; + githubId = 3808928; + name = "Anders Sildnes"; + }; + aneeshusa = { + email = "aneeshusa@gmail.com"; + github = "aneeshusa"; + githubId = 2085567; + name = "Aneesh Agrawal"; + }; + angristan = { + email = "angristan@pm.me"; + github = "angristan"; + githubId = 11699655; + name = "Stanislas Lange"; + }; + ankhers = { + email = "me@ankhers.dev"; + github = "ankhers"; + githubId = 750786; + name = "Justin Wood"; + }; + anmonteiro = { + email = "anmonteiro@gmail.com"; + github = "anmonteiro"; + githubId = 661909; + name = "Antonio Nuno Monteiro"; + }; + anpryl = { + email = "anpryl@gmail.com"; + github = "anpryl"; + githubId = 5327697; + name = "Anatolii Prylutskyi"; + }; + antoinerg = { + email = "roygobeil.antoine@gmail.com"; + github = "antoinerg"; + githubId = 301546; + name = "Antoine Roy-Gobeil"; + }; + anton-dessiatov = { + email = "anton.dessiatov@gmail.com"; + github = "anton-dessiatov"; + githubId = 2873280; + name = "Anton Desyatov"; + }; + Anton-Latukha = { + email = "anton.latuka+nixpkgs@gmail.com"; + github = "Anton-Latukha"; + githubId = 20933385; + name = "Anton Latukha"; + }; + antono = { + email = "self@antono.info"; + github = "antono"; + githubId = 7622; + name = "Antono Vasiljev"; + }; + antonxy = { + email = "anton.schirg@posteo.de"; + github = "antonxy"; + githubId = 4194320; + name = "Anton Schirg"; + }; + apeschar = { + email = "albert@peschar.net"; + github = "apeschar"; + githubId = 122977; + name = "Albert Peschar"; + }; + apeyroux = { + email = "alex@px.io"; + github = "apeyroux"; + githubId = 1078530; + name = "Alexandre Peyroux"; + }; + ar1a = { + email = "aria@ar1as.space"; + github = "ar1a"; + githubId = 8436007; + name = "Aria Edmonds"; + }; + arcadio = { + email = "arc@well.ox.ac.uk"; + github = "arcadio"; + githubId = 56009; + name = "Arcadio Rubio GarcĂa"; + }; + arcnmx = { + email = "arcnmx@users.noreply.github.com"; + github = "arcnmx"; + githubId = 13426784; + name = "arcnmx"; + }; + ardumont = { + email = "eniotna.t@gmail.com"; + github = "ardumont"; + githubId = 718812; + name = "Antoine R. Dumont"; + }; + arianvp = { + email = "arian.vanputten@gmail.com"; + github = "arianvp"; + githubId = 628387; + name = "Arian van Putten"; + }; + aristid = { + email = "aristidb@gmail.com"; + github = "aristidb"; + githubId = 30712; + name = "Aristid Breitkreuz"; + }; + ariutta = { + email = "anders.riutta@gmail.com"; + github = "ariutta"; + githubId = 1296771; + name = "Anders Riutta"; + }; + arnoldfarkas = { + email = "arnold.farkas@gmail.com"; + github = "arnoldfarkas"; + githubId = 59696216; + name = "Arnold Farkas"; + }; + arobyn = { + email = "shados@shados.net"; + github = "shados"; + githubId = 338268; + name = "Alexei Robyn"; + }; + artemist = { + email = "me@artem.ist"; + github = "artemist"; + githubId = 1226638; + name = "Artemis Tosini"; + keys = [{ + longkeyid = "rsa4096/0x4FDC96F161E7BA8A"; + fingerprint = "3D2B B230 F9FA F0C5 1832 46DD 4FDC 96F1 61E7 BA8A"; + }]; + }; + arthur = { + email = "me@arthur.li"; + github = "arthurl"; + githubId = 3965744; + name = "Arthur Lee"; + }; + artuuge = { + email = "artuuge@gmail.com"; + github = "artuuge"; + githubId = 10285250; + name = "Artur E. Ruuge"; + }; + asbachb = { + email = "asbachb-nixpkgs-5c2a@impl.it"; + github = "asbachb"; + githubId = 1482768; + name = "Benjamin Asbach"; + }; + ashalkhakov = { + email = "artyom.shalkhakov@gmail.com"; + github = "ashalkhakov"; + githubId = 1270502; + name = "Artyom Shalkhakov"; + }; + ashgillman = { + email = "gillmanash@gmail.com"; + github = "ashgillman"; + githubId = 816777; + name = "Ashley Gillman"; + }; + ashkitten = { + email = "ashlea@protonmail.com"; + github = "ashkitten"; + githubId = 9281956; + name = "ash lea"; + }; + aske = { + email = "aske@fmap.me"; + github = "aske"; + githubId = 869771; + name = "Kirill Boltaev"; + }; + asppsa = { + email = "asppsa@gmail.com"; + github = "asppsa"; + githubId = 453170; + name = "Alastair Pharo"; + }; + astro = { + email = "astro@spaceboyz.net"; + github = "astro"; + githubId = 12923; + name = "Astro"; + }; + astsmtl = { + email = "astsmtl@yandex.ru"; + github = "astsmtl"; + githubId = 2093941; + name = "Alexander Tsamutali"; + }; + asymmetric = { + email = "lorenzo@mailbox.org"; + github = "asymmetric"; + githubId = 101816; + name = "Lorenzo Manacorda"; + }; + aszlig = { + email = "aszlig@nix.build"; + github = "aszlig"; + githubId = 192147; + name = "aszlig"; + }; + atemu = { + name = "Atemu"; + email = "atemu.main+nixpkgs@gmail.com"; + github = "Atemu"; + githubId = 18599032; + }; + athas = { + email = "athas@sigkill.dk"; + github = "athas"; + githubId = 55833; + name = "Troels Henriksen"; + }; + atkinschang = { + email = "atkinschang+nixpkgs@gmail.com"; + github = "AtkinsChang"; + githubId = 5193600; + name = "Atkins Chang"; + }; + atnnn = { + email = "etienne@atnnn.com"; + github = "atnnn"; + githubId = 706854; + name = "Etienne Laurin"; + }; + auntie = { + email = "auntieNeo@gmail.com"; + github = "auntieNeo"; + githubId = 574938; + name = "Jonathan Glines"; + }; + avaq = { + email = "nixpkgs@account.avaq.it"; + github = "avaq"; + githubId = 1217745; + name = "Aldwin Vlasblom"; + }; + avery = { + email = "averyl+nixos@protonmail.com"; + github = "AveryLychee"; + githubId = 9147625; + name = "Avery Lychee"; + }; + averelld = { + email = "averell+nixos@rxd4.com"; + github = "averelld"; + githubId = 687218; + name = "averelld"; + }; + avitex = { + email = "theavitex@gmail.com"; + github = "avitex"; + githubId = 5110816; + name = "avitex"; + keys = [{ + longkeyid = "rsa4096/0x8B366C443CABE942"; + fingerprint = "271E 136C 178E 06FA EA4E B854 8B36 6C44 3CAB E942"; + }]; + }; + avnik = { + email = "avn@avnik.info"; + github = "avnik"; + githubId = 153538; + name = "Alexander V. Nikolaev"; + }; + aw = { + email = "aw-nixos@meterriblecrew.net"; + github = "herrwiese"; + githubId = 206242; + name = "Andreas Wiese"; + }; + aycanirican = { + email = "iricanaycan@gmail.com"; + github = "aycanirican"; + githubId = 135230; + name = "Aycan iRiCAN"; + }; + b4dm4n = { + email = "fabianm88@gmail.com"; + github = "B4dM4n"; + githubId = 448169; + name = "Fabian Möller"; + keys = [{ + longkeyid = "rsa4096/0x754B5C0963C42C5"; + fingerprint = "6309 E212 29D4 DA30 AF24 BDED 754B 5C09 63C4 2C50"; + }]; + }; + babariviere = { + email = "babathriviere@gmail.com"; + github = "babariviere"; + githubId = 12128029; + name = "babariviere"; + }; + bachp = { + email = "pascal.bach@nextrem.ch"; + github = "bachp"; + githubId = 333807; + name = "Pascal Bach"; + }; + backuitist = { + email = "biethb@gmail.com"; + github = "backuitist"; + githubId = 1017537; + name = "Bruno Bieth"; + }; + badi = { + email = "abdulwahidc@gmail.com"; + github = "badi"; + githubId = 35324; + name = "Badi' Abdul-Wahid"; + }; + balajisivaraman = { + email = "sivaraman.balaji@gmail.com"; + name = "Balaji Sivaraman"; + }; + balsoft = { + email = "balsoft75@gmail.com"; + github = "balsoft"; + githubId = 18467667; + name = "Alexander Bantyev"; + }; + bandresen = { + email = "bandresen@gmail.com"; + github = "bandresen"; + githubId = 80325; + name = "Benjamin Andresen"; + }; + baracoder = { + email = "baracoder@googlemail.com"; + github = "baracoder"; + githubId = 127523; + name = "Herman Fries"; + }; + barrucadu = { + email = "mike@barrucadu.co.uk"; + github = "barrucadu"; + githubId = 75235; + name = "Michael Walker"; + }; + basvandijk = { + email = "v.dijk.bas@gmail.com"; + github = "basvandijk"; + githubId = 576355; + name = "Bas van Dijk"; + }; + Baughn = { + email = "sveina@gmail.com"; + github = "Baughn"; + githubId = 45811; + name = "Svein Ove Aas"; + }; + bb010g = { + email = "me@bb010g.com"; + github = "bb010g"; + githubId = 340132; + name = "Brayden Banks"; + }; + bbarker = { + email = "brandon.barker@gmail.com"; + github = "bbarker"; + githubId = 916366; + name = "Brandon Elam Barker"; + }; + bbigras = { + email = "bigras.bruno@gmail.com"; + github = "bbigras"; + githubId = 24027; + name = "Bruno Bigras"; + }; + bcarrell = { + email = "brandoncarrell@gmail.com"; + github = "bcarrell"; + githubId = 1015044; + name = "Brandon Carrell"; + }; + bcdarwin = { + email = "bcdarwin@gmail.com"; + github = "bcdarwin"; + githubId = 164148; + name = "Ben Darwin"; + }; + bdesham = { + email = "benjamin@esham.io"; + github = "bdesham"; + githubId = 354230; + name = "Benjamin Esham"; + }; + bdimcheff = { + email = "brandon@dimcheff.com"; + github = "bdimcheff"; + githubId = 14111; + name = "Brandon Dimcheff"; + }; + bendlas = { + email = "herwig@bendlas.net"; + github = "bendlas"; + githubId = 214787; + name = "Herwig Hochleitner"; + }; + benley = { + email = "benley@gmail.com"; + github = "benley"; + githubId = 1432730; + name = "Benjamin Staffin"; + }; + bennofs = { + email = "benno.fuenfstueck@gmail.com"; + github = "bennofs"; + githubId = 3192959; + name = "Benno FĂŒnfstĂŒck"; + }; + benpye = { + email = "ben@curlybracket.co.uk"; + github = "benpye"; + githubId = 442623; + name = "Ben Pye"; + }; + benwbooth = { + email = "benwbooth@gmail.com"; + github = "benwbooth"; + githubId = 75972; + name = "Ben Booth"; + }; + berce = { + email = "bert.moens@gmail.com"; + github = "berce"; + githubId = 10439709; + name = "Bert Moens"; + }; + berdario = { + email = "berdario@gmail.com"; + github = "berdario"; + githubId = 752835; + name = "Dario Bertini"; + }; + bergey = { + email = "bergey@teallabs.org"; + github = "bergey"; + githubId = 251106; + name = "Daniel Bergey"; + }; + betaboon = { + email = "betaboon@0x80.ninja"; + github = "betaboon"; + githubId = 7346933; + name = "betaboon"; + }; + bfortz = { + email = "bernard.fortz@gmail.com"; + github = "bfortz"; + githubId = 16426882; + name = "Bernard Fortz"; + }; + bgamari = { + email = "ben@smart-cactus.org"; + github = "bgamari"; + githubId = 1010174; + name = "Ben Gamari"; + }; + bhall = { + email = "brendan.j.hall@bath.edu"; + github = "brendan-hall"; + githubId = 34919100; + name = "Brendan Hall"; + }; + bhipple = { + email = "bhipple@protonmail.com"; + github = "bhipple"; + githubId = 2071583; + name = "Benjamin Hipple"; + }; + bhougland = { + email = "benjamin.hougland@gmail.com"; + github = "bhougland18"; + githubId = 28444296; + name = "Benjamin Hougland"; + }; + binarin = { + email = "binarin@binarin.ru"; + github = "binarin"; + githubId = 185443; + name = "Alexey Lebedeff"; + }; + bjg = { + email = "bjg@gnu.org"; + name = "Brian Gough"; + }; + bjornfor = { + email = "bjorn.forsman@gmail.com"; + github = "bjornfor"; + githubId = 133602; + name = "BjĂžrn Forsman"; + }; + bkchr = { + email = "nixos@kchr.de"; + github = "bkchr"; + githubId = 5718007; + name = "Bastian Köcher"; + }; + blanky0230 = { + email = "blanky0230@gmail.com"; + github = "blanky0230"; + githubId = 5700358; + name = "Thomas Blank"; + }; + blitz = { + email = "js@alien8.de"; + github = "blitz"; + githubId = 37907; + name = "Julian Stecklina"; + }; + bluescreen303 = { + email = "mathijs@bluescreen303.nl"; + github = "bluescreen303"; + githubId = 16330; + name = "Mathijs Kwik"; + }; + bobakker = { + email = "bobakk3r@gmail.com"; + github = "bobakker"; + githubId = 10221570; + name = "Bo Bakker"; + }; + bobvanderlinden = { + email = "bobvanderlinden@gmail.com"; + github = "bobvanderlinden"; + githubId = 6375609; + name = "Bob van der Linden"; + }; + bodil = { + email = "nix@bodil.org"; + github = "bodil"; + githubId = 17880; + name = "Bodil Stokke"; + }; + boj = { + email = "brian@uncannyworks.com"; + github = "boj"; + githubId = 50839; + name = "Brian Jones"; + }; + boothead = { + email = "ben@perurbis.com"; + github = "boothead"; + githubId = 87764; + name = "Ben Ford"; + }; + borisbabic = { + email = "boris.ivan.babic@gmail.com"; + github = "borisbabic"; + githubId = 1743184; + name = "Boris BabiÄ"; + }; + bosu = { + email = "boriss@gmail.com"; + github = "bosu"; + githubId = 3465841; + name = "Boris Sukholitko"; + }; + bradediger = { + email = "brad@bradediger.com"; + github = "bradediger"; + githubId = 4621; + name = "Brad Ediger"; + }; + brainrape = { + email = "martonboros@gmail.com"; + github = "brainrape"; + githubId = 302429; + name = "Marton Boros"; + }; + bramd = { + email = "bram@bramd.nl"; + github = "bramd"; + githubId = 86652; + name = "Bram Duvigneau"; + }; + braydenjw = { + email = "nixpkgs@willenborg.ca"; + github = "braydenjw"; + githubId = 2506621; + name = "Brayden Willenborg"; + }; + brian-dawn = { + email = "brian.t.dawn@gmail.com"; + github = "brian-dawn"; + githubId = 1274409; + name = "Brian Dawn"; + }; + brianhicks = { + email = "brian@brianthicks.com"; + github = "BrianHicks"; + githubId = 355401; + name = "Brian Hicks"; + }; + bricewge = { + email = "bricewge@gmail.com"; + github = "bricewge"; + githubId = 5525646; + name = "Brice Waegeneire"; + }; + bstrik = { + email = "dutchman55@gmx.com"; + github = "bstrik"; + githubId = 7716744; + name = "Berno Strik"; + }; + brettlyons = { + email = "blyons@fastmail.com"; + github = "brettlyons"; + githubId = 3043718; + name = "Brett Lyons"; + }; + btlvr = { + email = "btlvr@protonmail.com"; + github = "btlvr"; + githubId = 32319131; + name = "Brett L"; + }; + buffet = { + email = "niclas@countingsort.com"; + github = "buffet"; + githubId = 33751841; + name = "Niclas Meyer"; + }; + bugworm = { + email = "bugworm@zoho.com"; + github = "bugworm"; + githubId = 7214361; + name = "Roman Gerasimenko"; + }; + bzizou = { + email = "Bruno@bzizou.net"; + github = "bzizou"; + githubId = 2647566; + name = "Bruno Bzeznik"; + }; + c0bw3b = { + email = "c0bw3b@gmail.com"; + github = "c0bw3b"; + githubId = 24417923; + name = "Renaud"; + }; + c0deaddict = { + email = "josvanbakel@protonmail.com"; + github = "c0deaddict"; + githubId = 510553; + name = "Jos van Bakel"; + }; + caadar = { + email = "v88m@posteo.net"; + github = "caadar"; + githubId = 15320726; + name = "Car Cdr"; + }; + cab404 = { + email = "cab404@mailbox.org"; + github = "cab404"; + githubId = 6453661; + name = "Vladimir Serov"; + keys = [ + # compare with https://keybase.io/cab404 + { longkeyid = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3"; + fingerprint = "rsa3072/0xCBDECF658C38079E"; + } + { longkeyid = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A"; + fingerprint = "ed25519/0xB7EFFC271D55DB8A"; + } + ]; + }; + calbrecht = { + email = "christian.albrecht@mayflower.de"; + github = "calbrecht"; + githubId = 1516457; + name = "Christian Albrecht"; + }; + callahad = { + email = "dan.callahan@gmail.com"; + github = "callahad"; + githubId = 24193; + name = "Dan Callahan"; + }; + calvertvl = { + email = "calvertvl@gmail.com"; + github = "calvertvl"; + githubId = 7435854; + name = "Victor Calvert"; + }; + campadrenalin = { + email = "campadrenalin@gmail.com"; + github = "campadrenalin"; + githubId = 289492; + name = "Philip Horger"; + }; + candeira = { + email = "javier@candeira.com"; + github = "candeira"; + githubId = 91694; + name = "Javier Candeira"; + }; + canndrew = { + email = "shum@canndrew.org"; + github = "canndrew"; + githubId = 5555066; + name = "Andrew Cann"; + }; + cap = { + name = "cap"; + email = "nixos_xasenw9@digitalpostkasten.de"; + github = "scaredmushroom"; + githubId = 45340040; + }; + carlosdagos = { + email = "m@cdagostino.io"; + github = "carlosdagos"; + githubId = 686190; + name = "Carlos D'Agostino"; + }; + carlsverre = { + email = "accounts@carlsverre.com"; + github = "carlsverre"; + githubId = 82591; + name = "Carl Sverre"; + }; + cartr = { + email = "carter.sande@duodecima.technology"; + github = "cartr"; + githubId = 5241813; + name = "Carter Sande"; + }; + casey = { + email = "casey@rodarmor.net"; + github = "casey"; + githubId = 1945; + name = "Casey Rodarmor"; + }; + catern = { + email = "sbaugh@catern.com"; + github = "catern"; + githubId = 5394722; + name = "Spencer Baugh"; + }; + caugner = { + email = "nixos@caugner.de"; + github = "caugner"; + githubId = 495429; + name = "Claas Augner"; + }; + cbley = { + email = "claudio.bley@gmail.com"; + github = "avdv"; + githubId = 3471749; + name = "Claudio Bley"; + }; + cdepillabout = { + email = "cdep.illabout@gmail.com"; + github = "cdepillabout"; + githubId = 64804; + name = "Dennis Gosnell"; + }; + ccellado = { + email = "annplague@gmail.com"; + github = "ccellado"; + githubId = 44584960; + name = "Denis Khalmatov"; + }; + ceedubs = { + email = "ceedubs@gmail.com"; + github = "ceedubs"; + githubId = 977929; + name = "Cody Allen"; + }; + cfouche = { + email = "chaddai.fouche@gmail.com"; + github = "Chaddai"; + githubId = 5771456; + name = "ChaddaĂŻ FouchĂ©"; + }; + cfsmp3 = { + email = "carlos@sanz.dev"; + github = "cfsmp3"; + githubId = 5949913; + name = "Carlos Fernandez Sanz"; + }; + cge = { + email = "cevans@evanslabs.org"; + github = "cgevans"; + githubId = 2054509; + name = "Constantine Evans"; + keys = [ + { longkeyid = "rsa4096/0xB67DB1D20A93A9F9"; + fingerprint = "32B1 6EE7 DBA5 16DE 526E 4C5A B67D B1D2 0A93 A9F9"; + } + { longkeyid = "rsa4096/0x1A1D58B86AE2AABD"; + fingerprint = "669C 1D24 5A87 DB34 6BE4 3216 1A1D 58B8 6AE2 AABD"; + } + ]; + }; + chaduffy = { + email = "charles@dyfis.net"; + github = "charles-dyfis-net"; + githubId = 22370; + name = "Charles Duffy"; + }; + changlinli = { + email = "mail@changlinli.com"; + github = "changlinli"; + githubId = 1762540; + name = "Changlin Li"; + }; + CharlesHD = { + email = "charleshdespointes@gmail.com"; + github = "CharlesHD"; + githubId = 6608071; + name = "Charles Huyghues-Despointes"; + }; + chaoflow = { + email = "flo@chaoflow.net"; + github = "chaoflow"; + githubId = 89596; + name = "Florian Friesdorf"; + }; + chattered = { + email = "me@philscotted.com"; + name = "Phil Scott"; + }; + ChengCat = { + email = "yu@cheng.cat"; + github = "ChengCat"; + githubId = 33503784; + name = "Yucheng Zhang"; + }; + chessai = { + email = "chessai1996@gmail.com"; + github = "chessai"; + githubId = 18648043; + name = "Daniel Cartwright"; + }; + chiiruno = { + email = "okinan@protonmail.com"; + github = "chiiruno"; + githubId = 30435868; + name = "Okina Matara"; + }; + chkno = { + email = "chuck@intelligence.org"; + github = "chkno"; + githubId = 1118859; + name = "Scott Worley"; + }; + choochootrain = { + email = "hurshal@imap.cc"; + github = "choochootrain"; + githubId = 803961; + name = "Hurshal Patel"; + }; + chpatrick = { + email = "chpatrick@gmail.com"; + github = "chpatrick"; + githubId = 832719; + name = "Patrick Chilton"; + }; + chreekat = { + email = "b@chreekat.net"; + github = "chreekat"; + githubId = 538538; + name = "Bryan Richter"; + }; + chris-martin = { + email = "ch.martin@gmail.com"; + github = "chris-martin"; + githubId = 399718; + name = "Chris Martin"; + }; + chrisaw = { + email = "home@chrisaw.com"; + github = "cawilliamson"; + githubId = 1141769; + name = "Christopher A. Williamson"; + }; + chrisjefferson = { + email = "chris@bubblescope.net"; + github = "chrisjefferson"; + githubId = 811527; + name = "Christopher Jefferson"; + }; + chrisrosset = { + email = "chris@rosset.org.uk"; + github = "chrisrosset"; + githubId = 1103294; + name = "Christopher Rosset"; + }; + christianharke = { + email = "christian@harke.ch"; + github = "christianharke"; + githubId = 13007345; + name = "Christian Harke"; + keys = [{ + longkeyid = "rsa4096/0x830A9728630966F4"; + fingerprint = "4EBB 30F1 E89A 541A A7F2 52BE 830A 9728 6309 66F4"; + }]; + }; + christopherpoole = { + email = "mail@christopherpoole.net"; + github = "christopherpoole"; + githubId = 2245737; + name = "Christopher Mark Poole"; + }; + ciil = { + email = "simon@lackerbauer.com"; + github = "ciil"; + githubId = 3956062; + name = "Simon Lackerbauer"; + }; + cizra = { + email = "todurov+nix@gmail.com"; + github = "cizra"; + githubId = 2131991; + name = "Elmo Todurov"; + }; + ck3d = { + email = "ck3d@gmx.de"; + github = "ck3d"; + githubId = 25088352; + name = "Christian Kögler"; + }; + clkamp = { + email = "c@lkamp.de"; + github = "clkamp"; + githubId = 46303707; + name = "Christian LĂŒtke-Stetzkamp"; + }; + kampka = { + email = "christian@kampka.net"; + github = "kampka"; + githubId = 422412; + name = "Christian Kampka"; + keys = [{ + longkeyid = "ed25519/0x1CBE9645DD68E915"; + fingerprint = "F7FA 0BD0 8775 337C F6AB 4A14 1CBE 9645 DD68 E915"; + }]; + }; + ckauhaus = { + email = "kc@flyingcircus.io"; + github = "ckauhaus"; + githubId = 1448923; + name = "Christian Kauhaus"; + }; + cko = { + email = "christine.koppelt@gmail.com"; + github = "cko"; + githubId = 68239; + name = "Christine Koppelt"; + }; + clacke = { + email = "claes.wallin@greatsinodevelopment.com"; + github = "clacke"; + githubId = 199180; + name = "Claes Wallin"; + }; + cleverca22 = { + email = "cleverca22@gmail.com"; + github = "cleverca22"; + githubId = 848609; + name = "Michael Bishop"; + }; + cmacrae = { + email = "hi@cmacr.ae"; + github = "cmacrae"; + githubId = 3392199; + name = "Calum MacRae"; + }; + cmcdragonkai = { + email = "roger.qiu@matrix.ai"; + github = "cmcdragonkai"; + githubId = 640797; + name = "Roger Qiu"; + }; + cmfwyp = { + email = "cmfwyp@riseup.net"; + github = "cmfwyp"; + githubId = 20808761; + name = "cmfwyp"; + }; + cobbal = { + email = "andrew.cobb@gmail.com"; + github = "cobbal"; + githubId = 180339; + name = "Andrew Cobb"; + }; + coconnor = { + email = "coreyoconnor@gmail.com"; + github = "coreyoconnor"; + githubId = 34317; + name = "Corey O'Connor"; + }; + codsl = { + email = "codsl@riseup.net"; + github = "codsl"; + githubId = 6402559; + name = "codsl"; + }; + codyopel = { + email = "codyopel@gmail.com"; + github = "codyopel"; + githubId = 5561189; + name = "Cody Opel"; + }; + cohencyril = { + email = "cyril.cohen@inria.fr"; + github = "CohenCyril"; + githubId = 298705; + name = "Cyril Cohen"; + }; + colemickens = { + email = "cole.mickens@gmail.com"; + github = "colemickens"; + githubId = 327028; + name = "Cole Mickens"; + }; + colescott = { + email = "colescottsf@gmail.com"; + github = "colescott"; + githubId = 5684605; + name = "Cole Scott"; + }; + cole-h = { + name = "Cole Helbling"; + email = "cole.e.helbling@outlook.com"; + github = "cole-h"; + githubId = 28582702; + keys = [{ + longkeyid = "rsa4096/0xB37E0F2371016A4C"; + fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C"; + }]; + }; + copumpkin = { + email = "pumpkingod@gmail.com"; + github = "copumpkin"; + githubId = 2623; + name = "Dan Peebles"; + }; + corngood = { + email = "corngood@gmail.com"; + github = "corngood"; + githubId = 3077118; + name = "David McFarland"; + }; + coroa = { + email = "jonas@chaoflow.net"; + github = "coroa"; + githubId = 2552981; + name = "Jonas Hörsch"; + }; + costrouc = { + email = "chris.ostrouchov@gmail.com"; + github = "costrouc"; + githubId = 1740337; + name = "Chris Ostrouchov"; + }; + contrun = { + email = "uuuuuu@protonmail.com"; + github = "contrun"; + githubId = 32609395; + name = "B YI"; + }; + couchemar = { + email = "couchemar@yandex.ru"; + github = "couchemar"; + githubId = 1573344; + name = "Andrey Pavlov"; + }; + cpages = { + email = "page@ruiec.cat"; + github = "cpages"; + githubId = 411324; + name = "Carles PagĂšs"; + }; + craigem = { + email = "craige@mcwhirter.io"; + github = "craigem"; + githubId = 6470493; + name = "Craige McWhirter"; + }; + cransom = { + email = "cransom@hubns.net"; + github = "cransom"; + githubId = 1957293; + name = "Casey Ransom"; + }; + CrazedProgrammer = { + email = "crazedprogrammer@gmail.com"; + github = "CrazedProgrammer"; + githubId = 12202789; + name = "CrazedProgrammer"; + }; + cryptix = { + email = "cryptix@riseup.net"; + github = "cryptix"; + githubId = 111202; + name = "Henry Bubert"; + }; + CrystalGamma = { + email = "nixos@crystalgamma.de"; + github = "CrystalGamma"; + githubId = 6297001; + name = "Jona Stubbe"; + }; + csingley = { + email = "csingley@gmail.com"; + github = "csingley"; + githubId = 398996; + name = "Christopher Singley"; + }; + cstrahan = { + email = "charles@cstrahan.com"; + github = "cstrahan"; + githubId = 143982; + name = "Charles Strahan"; + }; + cswank = { + email = "craigswank@gmail.com"; + github = "cswank"; + githubId = 490965; + name = "Craig Swank"; + }; + cwoac = { + email = "oliver@codersoffortune.net"; + github = "cwoac"; + githubId = 1382175; + name = "Oliver Matthews"; + }; + cypherpunk2140 = { + email = "stefan.mihaila@pm.me"; + github = "stefan-mihaila"; + githubId = 2217136; + name = "Ètefan D. MihÄilÄ"; + keys = [ + { + longkeyid = "rsa4096/6E68A39BF16A3ECB"; + fingerprint = "CBC9 C7CC 51F0 4A61 3901 C723 6E68 A39B F16A 3ECB"; + } + { + longkeyid = "rsa4096/6220AD7846220A52"; + fingerprint = "7EAB 1447 5BBA 7DDE 7092 7276 6220 AD78 4622 0A52"; + } + ]; + }; + cyplo = { + email = "nixos@cyplo.dev"; + github = "cyplo"; + githubId = 217899; + name = "Cyryl PĆotnicki"; + }; + d-goldin = { + email = "dgoldin+github@protonmail.ch"; + github = "d-goldin"; + githubId = 43349662; + name = "Dima"; + keys = [{ + longkeyid = "rsa4096/BAB1D15FB7B4D4CE"; + fingerprint = "1C4E F4FE 7F8E D8B7 1E88 CCDF BAB1 D15F B7B4 D4CE"; + }]; + }; + dadada = { + name = "dadada"; + email = "dadada@dadada.li"; + github = "dadada"; + githubId = 7216772; + keys = [{ + longkeyid = "ed25519/0xEEB8D1CE62C4DFEA"; + fingerprint = "D68C 8469 5C08 7E0F 733A 28D0 EEB8 D1CE 62C4 DFEA"; + }]; + }; + dalance = { + email = "dalance@gmail.com"; + github = "dalance"; + githubId = 4331004; + name = "Naoya Hatta"; + }; + DamienCassou = { + email = "damien@cassou.me"; + github = "DamienCassou"; + githubId = 217543; + name = "Damien Cassou"; + }; + danbst = { + email = "abcz2.uprola@gmail.com"; + github = "danbst"; + githubId = 743057; + name = "Danylo Hlynskyi"; + }; + dancek = { + email = "hannu.hartikainen@gmail.com"; + github = "dancek"; + githubId = 245394; + name = "Hannu Hartikainen"; + }; + danderson = { + email = "dave@natulte.net"; + github = "danderson"; + githubId = 1918; + name = "David Anderson"; + }; + danharaj = { + email = "dan@obsidian.systems"; + github = "danharaj"; + githubId = 23366017; + name = "Dan Haraj"; + }; + danieldk = { + email = "me@danieldk.eu"; + github = "danieldk"; + githubId = 49398; + name = "DaniĂ«l de Kok"; + }; + danielfullmer = { + email = "danielrf12@gmail.com"; + github = "danielfullmer"; + githubId = 1298344; + name = "Daniel Fullmer"; + }; + das-g = { + email = "nixpkgs@raphael.dasgupta.ch"; + github = "das-g"; + githubId = 97746; + name = "Raphael Das Gupta"; + }; + das_j = { + email = "janne@hess.ooo"; + github = "dasJ"; + githubId = 4971975; + name = "Janne HeĂ"; + }; + dasuxullebt = { + email = "christoph.senjak@googlemail.com"; + name = "Christoph-Simon Senjak"; + }; + david50407 = { + email = "me@davy.tw"; + github = "david50407"; + githubId = 841969; + name = "David Kuo"; + }; + davidak = { + email = "post@davidak.de"; + github = "davidak"; + githubId = 91113; + name = "David Kleuker"; + }; + davidrusu = { + email = "davidrusu.me@gmail.com"; + github = "davidrusu"; + githubId = 1832378; + name = "David Rusu"; + }; + davidtwco = { + email = "nix@david.davidtw.co"; + github = "davidtwco"; + githubId = 1295100; + name = "David Wood"; + keys = [{ + longkeyid = "rsa4096/0x01760B4F9F53F154"; + fingerprint = "5B08 313C 6853 E5BF FA91 A817 0176 0B4F 9F53 F154"; + }]; + }; + davorb = { + email = "davor@davor.se"; + github = "davorb"; + githubId = 798427; + name = "Davor Babic"; + }; + dawidsowa = { + email = "dawid_sowa@posteo.net"; + github = "dawidsowa"; + githubId = 49904992; + name = "Dawid Sowa"; + }; + dbohdan = { + email = "dbohdan@dbohdan.com"; + github = "dbohdan"; + githubId = 3179832; + name = "D. Bohdan"; + }; + dbrock = { + email = "daniel@brockman.se"; + github = "dbrock"; + githubId = 14032; + name = "Daniel Brockman"; + }; + dduan = { + email = "daniel@duan.ca"; + github = "dduan"; + githubId = 75067; + name = "Daniel Duan"; + }; + deepfire = { + email = "_deepfire@feelingofgreen.ru"; + github = "deepfire"; + githubId = 452652; + name = "Kosyrev Serge"; + }; + delan = { + name = "Delan Azabani"; + email = "delan@azabani.com"; + github = "delan"; + githubId = 465303; + }; + delroth = { + email = "delroth@gmail.com"; + github = "delroth"; + githubId = 202798; + name = "Pierre Bourdon"; + }; + deltaevo = { + email = "deltaduartedavid@gmail.com"; + github = "DeltaEvo"; + githubId = 8864716; + name = "Duarte David"; + }; + demin-dmitriy = { + email = "demindf@gmail.com"; + github = "demin-dmitriy"; + githubId = 5503422; + name = "Dmitriy Demin"; + }; + demize = { + email = "johannes@kyriasis.com"; + github = "kyrias"; + githubId = 2285387; + name = "Johannes Löthberg"; + }; + demyanrogozhin = { + email = "demyan.rogozhin@gmail.com"; + github = "demyanrogozhin"; + githubId = 62989; + name = "Demyan Rogozhin"; + }; + derchris = { + email = "derchris@me.com"; + github = "derchrisuk"; + githubId = 706758; + name = "Christian Gerbrandt"; + }; + DerGuteMoritz = { + email = "moritz@twoticketsplease.de"; + github = "DerGuteMoritz"; + githubId = 19733; + name = "Moritz Heidkamp"; + }; + dermetfan = { + email = "serverkorken@gmail.com"; + github = "dermetfan"; + githubId = 4956158; + name = "Robin Stumm"; + }; + DerTim1 = { + email = "tim.digel@active-group.de"; + github = "DerTim1"; + githubId = 21953890; + name = "Tim Digel"; + }; + desiderius = { + email = "didier@devroye.name"; + github = "desiderius"; + githubId = 1311761; + name = "Didier J. Devroye"; + }; + devhell = { + email = ''"^"@regexmail.net''; + github = "devhell"; + githubId = 896182; + name = "devhell"; + }; + dezgeg = { + email = "tuomas.tynkkynen@iki.fi"; + github = "dezgeg"; + githubId = 579369; + name = "Tuomas Tynkkynen"; + }; + dfordivam = { + email = "dfordivam+nixpkgs@gmail.com"; + github = "dfordivam"; + githubId = 681060; + name = "Divam"; + }; + dfoxfranke = { + email = "dfoxfranke@gmail.com"; + github = "dfoxfranke"; + githubId = 4708206; + name = "Daniel Fox Franke"; + }; + dgonyeo = { + email = "derek@gonyeo.com"; + github = "dgonyeo"; + githubId = 2439413; + name = "Derek Gonyeo"; + }; + dhkl = { + email = "david@davidslab.com"; + github = "dhl"; + githubId = 265220; + name = "David Leung"; + }; + dipinhora = { + email = "dipinhora+github@gmail.com"; + github = "dipinhora"; + githubId = 11946442; + name = "Dipin Hora"; + }; + dirkx = { + email = "dirkx@webweaving.org"; + github = "dirkx"; + githubId = 392583; + name = "Dirk-Willem van Gulik"; + }; + disassembler = { + email = "disasm@gmail.com"; + github = "disassembler"; + githubId = 651205; + name = "Samuel Leathers"; + }; + disserman = { + email = "disserman@gmail.com"; + github = "divi255"; + githubId = 40633781; + name = "Sergei S."; + }; + dizfer = { + email = "david@izquierdofernandez.com"; + github = "dizfer"; + githubId = 8852888; + name = "David Izquierdo"; + }; + Dje4321 = { + email = "dje4321@gmail.com"; + github = "dje4321"; + githubId = 10913120; + name = "Dje4321"; + }; + dkabot = { + email = "dkabot@dkabot.com"; + github = "dkabot"; + githubId = 1316469; + name = "Naomi Morse"; + }; + dkudriavtsev = { + email = "dkudriavtsev@gmail.com"; + github = "dkudriavtsev"; + githubId = 9790772; + name = "Dmitry Kudriavtsev"; + }; + dmalikov = { + email = "malikov.d.y@gmail.com"; + github = "dmalikov"; + githubId = 997543; + name = "Dmitry Malikov"; + }; + DmitryTsygankov = { + email = "dmitry.tsygankov@gmail.com"; + github = "DmitryTsygankov"; + githubId = 425354; + name = "Dmitry Tsygankov"; + }; + dmjio = { + email = "djohnson.m@gmail.com"; + github = "dmjio"; + githubId = 875324; + name = "David Johnson"; + }; + dmrauh = { + email = "dmrauh@posteo.de"; + github = "dmrauh"; + githubId = 37698547; + name = "Dominik Michael Rauh"; + }; + dmvianna = { + email = "dmlvianna@gmail.com"; + github = "dmvianna"; + githubId = 1708810; + name = "Daniel Vianna"; + }; + dochang = { + email = "dochang@gmail.com"; + github = "dochang"; + githubId = 129093; + name = "Desmond O. Chang"; + }; + domenkozar = { + email = "domen@dev.si"; + github = "domenkozar"; + githubId = 126339; + name = "Domen Kozar"; + }; + dominikh = { + email = "dominik@honnef.co"; + github = "dominikh"; + githubId = 39825; + name = "Dominik Honnef"; + }; + doronbehar = { + email = "me@doronbehar.com"; + github = "doronbehar"; + githubId = 10998835; + name = "Doron Behar"; + }; + dotlambda = { + email = "rschuetz17@gmail.com"; + github = "dotlambda"; + githubId = 6806011; + name = "Robert SchĂŒtz"; + }; + doublec = { + email = "chris.double@double.co.nz"; + github = "doublec"; + githubId = 16599; + name = "Chris Double"; + }; + dpaetzel = { + email = "david.paetzel@posteo.de"; + github = "dpaetzel"; + githubId = 974130; + name = "David PĂ€tzel"; + }; + dpflug = { + email = "david@pflug.email"; + github = "dpflug"; + githubId = 108501; + name = "David Pflug"; + }; + dramaturg = { + email = "seb@ds.ag"; + github = "dramaturg"; + githubId = 472846; + name = "Sebastian Krohn"; + }; + drets = { + email = "dmitryrets@gmail.com"; + github = "drets"; + githubId = 6199462; + name = "Dmytro Rets"; + }; + drewkett = { + email = "burkett.andrew@gmail.com"; + name = "Andrew Burkett"; + }; + drewrisinger = { + email = "drisinger+nixpkgs@gmail.com"; + github = "drewrisinger"; + githubId = 10198051; + name = "Drew Risinger"; + }; + dsferruzza = { + email = "david.sferruzza@gmail.com"; + github = "dsferruzza"; + githubId = 1931963; + name = "David Sferruzza"; + }; + dtzWill = { + email = "w@wdtz.org"; + github = "dtzWill"; + githubId = 817330; + name = "Will Dietz"; + keys = [{ + longkeyid = "rsa4096/0xFD42C7D0D41494C8"; + fingerprint = "389A 78CB CD88 5E0C 4701 DEB9 FD42 C7D0 D414 94C8"; + }]; + }; + dump_stack = { + email = "root@dumpstack.io"; + github = "jollheef"; + githubId = 1749762; + name = "Mikhail Klementev"; + keys = [{ + longkeyid = "rsa4096/0x1525585D1B43C62A"; + fingerprint = "5DD7 C6F6 0630 F08E DAE7 4711 1525 585D 1B43 C62A"; + }]; + }; + dwarfmaster = { + email = "nixpkgs@dwarfmaster.net"; + github = "dwarfmaster"; + githubId = 2025623; + name = "Luc Chabassier"; + }; + dxf = { + email = "dingxiangfei2009@gmail.com"; + github = "dingxiangfei2009"; + githubId = 6884440; + name = "Ding Xiang Fei"; + }; + dysinger = { + email = "tim@dysinger.net"; + github = "dysinger"; + githubId = 447; + name = "Tim Dysinger"; + }; + dywedir = { + email = "dywedir@gra.red"; + github = "dywedir"; + githubId = 399312; + name = "Vladyslav M."; + }; + dzabraev = { + email = "dzabraew@gmail.com"; + github = "dzabraev"; + githubId = 15128988; + name = "Maksim Dzabraev"; + }; + e-user = { + email = "nixos@sodosopa.io"; + github = "e-user"; + githubId = 93086; + name = "Alexander Kahl"; + }; + eadwu = { + email = "edmund.wu@protonmail.com"; + github = "eadwu"; + githubId = 22758444; + name = "Edmund Wu"; + }; + ealasu = { + email = "emanuel.alasu@gmail.com"; + github = "ealasu"; + githubId = 1362096; + name = "Emanuel Alasu"; + }; + eamsden = { + email = "edward@blackriversoft.com"; + github = "eamsden"; + githubId = 54573; + name = "Edward Amsden"; + }; + earldouglas = { + email = "james@earldouglas.com"; + github = "earldouglas"; + githubId = 424946; + name = "James Earl Douglas"; + }; + earvstedt = { + email = "erik.arvstedt@gmail.com"; + github = "erikarvstedt"; + githubId = 36110478; + name = "Erik Arvstedt"; + }; + ebzzry = { + email = "ebzzry@ebzzry.io"; + github = "ebzzry"; + githubId = 7875; + name = "Rommel Martinez"; + }; + edanaher = { + email = "nixos@edanaher.net"; + github = "edanaher"; + githubId = 984691; + name = "Evan Danaher"; + }; + edef = { + email = "edef@edef.eu"; + github = "edef1c"; + githubId = 50854; + name = "edef"; + }; + emantor = { + email = "rouven+nixos@czerwinskis.de"; + github = "emantor"; + githubId = 934284; + name = "Rouven Czerwinski"; + }; + embr = { + email = "hi@liclac.eu"; + github = "liclac"; + githubId = 428026; + name = "embr"; + }; + emily = { + email = "nixpkgs@emily.moe"; + github = "emilazy"; + githubId = 18535642; + name = "Emily"; + }; + endocrimes = { + email = "dani@builds.terrible.systems"; + github = "endocrimes"; + githubId = 1330683; + name = "Danielle Lancashire"; + }; + ederoyd46 = { + email = "matt@ederoyd.co.uk"; + github = "ederoyd46"; + githubId = 119483; + name = "Matthew Brown"; + }; + eduarrrd = { + email = "e.bachmakov@gmail.com"; + github = "eduarrrd"; + githubId = 1181393; + name = "Eduard Bachmakov"; + }; + edude03 = { + email = "michael@melenion.com"; + github = "edude03"; + githubId = 494483; + name = "Michael Francis"; + }; + edwtjo = { + email = "ed@cflags.cc"; + github = "edwtjo"; + githubId = 54799; + name = "Edward Tjörnhammar"; + }; + eelco = { + email = "edolstra+nixpkgs@gmail.com"; + github = "edolstra"; + githubId = 1148549; + name = "Eelco Dolstra"; + }; + ehegnes = { + email = "eric.hegnes@gmail.com"; + github = "ehegnes"; + githubId = 884970; + name = "Eric Hegnes"; + }; + ehmry = { + email = "ehmry@posteo.net"; + github = "ehmry"; + githubId = 537775; + name = "Emery Hemingway"; + }; + eikek = { + email = "eike.kettner@posteo.de"; + github = "eikek"; + githubId = 701128; + name = "Eike Kettner"; + }; + ekleog = { + email = "leo@gaspard.io"; + github = "ekleog"; + githubId = 411447; + name = "Leo Gaspard"; + }; + elasticdog = { + email = "aaron@elasticdog.com"; + github = "elasticdog"; + githubId = 4742; + name = "Aaron Bull Schaefer"; + }; + eleanor = { + email = "dejan@proteansec.com"; + github = "proteansec"; + githubId = 1753498; + name = "Dejan Lukan"; + }; + eliasp = { + email = "mail@eliasprobst.eu"; + github = "eliasp"; + githubId = 48491; + name = "Elias Probst"; + }; + elijahcaine = { + email = "elijahcainemv@gmail.com"; + github = "pop"; + githubId = 1897147; + name = "Elijah Caine"; + }; + elitak = { + email = "elitak@gmail.com"; + github = "elitak"; + githubId = 769073; + name = "Eric Litak"; + }; + ellis = { + email = "nixos@ellisw.net"; + github = "ellis"; + githubId = 97852; + name = "Ellis Whitehead"; + }; + elohmeier = { + email = "elo-nixos@nerdworks.de"; + github = "elohmeier"; + githubId = 2536303; + name = "Enno Lohmeier"; + }; + elseym = { + email = "elseym@me.com"; + github = "elseym"; + githubId = 907478; + name = "Simon Waibl"; + }; + elvishjerricco = { + email = "elvishjerricco@gmail.com"; + github = "ElvishJerricco"; + githubId = 1365692; + name = "Will Fancher"; + }; + elyhaka = { + email = "elyhaka@protonmail.com"; + github = "Elyhaka"; + githubId = 57923898; + name = "Elyhaka"; + }; + emmanuelrosa = { + email = "emmanuel_rosa@aol.com"; + github = "emmanuelrosa"; + githubId = 13485450; + name = "Emmanuel Rosa"; + }; + endgame = { + email = "jack@jackkelly.name"; + github = "endgame"; + githubId = 231483; + name = "Jack Kelly"; + }; + enorris = { + name = "Eric Norris"; + email = "erictnorris@gmail.com"; + github = "ericnorris"; + githubId = 1906605; + }; + Enteee = { + email = "nix@duckpond.ch"; + github = "Enteee"; + githubId = 5493775; + name = "Ente"; + }; + enzime = { + email = "enzime@users.noreply.github.com"; + github = "enzime"; + githubId = 10492681; + name = "Michael Hoang"; + }; + eonpatapon = { + email = "eon@patapon.info"; + github = "eonpatapon"; + githubId = 418227; + name = "Jean-Philippe Braun"; + }; + eperuffo = { + email = "info@emanueleperuffo.com"; + github = "emanueleperuffo"; + githubId = 5085029; + name = "Emanuele Peruffo"; + }; + epitrochoid = { + email = "mpcervin@uncg.edu"; + name = "Mabry Cervin"; + }; + equirosa = { + email = "eduardo@eduardoquiros.com"; + github = "equirosa"; + githubId = 39096810; + name = "Eduardo Quiros"; + }; + eqyiel = { + email = "ruben@maher.fyi"; + github = "eqyiel"; + githubId = 3422442; + name = "Ruben Maher"; + }; + eraserhd = { + email = "jason.m.felice@gmail.com"; + github = "eraserhd"; + githubId = 147284; + name = "Jason Felice"; + }; + ericbmerritt = { + email = "eric@afiniate.com"; + github = "ericbmerritt"; + githubId = 4828; + name = "Eric Merritt"; + }; + ericdallo = { + email = "ercdll1337@gmail.com"; + github = "ericdallo"; + githubId = 7820865; + name = "Eric Dallo"; + }; + ericsagnes = { + email = "eric.sagnes@gmail.com"; + github = "ericsagnes"; + githubId = 367880; + name = "Eric Sagnes"; + }; + ericson2314 = { + email = "John.Ericson@Obsidian.Systems"; + github = "ericson2314"; + githubId = 1055245; + name = "John Ericson"; + }; + erictapen = { + email = "justin.humm@posteo.de"; + github = "erictapen"; + githubId = 11532355; + name = "Justin Humm"; + keys = [{ + longkeyid = "rsa4096/0x438871E000AA178E"; + fingerprint = "984E 4BAD 9127 4D0E AE47 FF03 4388 71E0 00AA 178E"; + }]; + }; + erikryb = { + email = "erik.rybakken@math.ntnu.no"; + github = "erikryb"; + githubId = 3787281; + name = "Erik Rybakken"; + }; + erosennin = { + email = "ag@sologoc.com"; + github = "erosennin"; + githubId = 1583484; + name = "Andrey Golovizin"; + }; + ersin = { + email = "me@ersinakinci.com"; + github = "earksiinni"; + githubId = 5427394; + name = "Ersin Akinci"; + }; + ertes = { + email = "esz@posteo.de"; + github = "ertes"; + githubId = 1855930; + name = "Ertugrul Söylemez"; + }; + esclear = { + email = "esclear@users.noreply.github.com"; + github = "esclear"; + githubId = 7432848; + name = "Daniel Albert"; + }; + Esteth = { + email = "adam.copp@gmail.com"; + name = "Adam Copp"; + }; + ethercrow = { + email = "ethercrow@gmail.com"; + github = "ethercrow"; + githubId = 222467; + name = "Dmitry Ivanov"; + }; + etu = { + email = "elis@hirwing.se"; + github = "etu"; + githubId = 461970; + name = "Elis Hirwing"; + keys = [{ + longkeyid = "rsa4096/0xD57EFA625C9A925F"; + fingerprint = "67FE 98F2 8C44 CF22 1828 E12F D57E FA62 5C9A 925F"; + }]; + }; + euank = { + email = "euank-nixpkg@euank.com"; + github = "euank"; + githubId = 2147649; + name = "Euan Kemp"; + }; + evanjs = { + email = "evanjsx@gmail.com"; + github = "evanjs"; + githubId = 1847524; + name = "Evan Stoll"; + }; + evck = { + email = "eric@evenchick.com"; + github = "ericevenchick"; + githubId = 195032; + name = "Eric Evenchick"; + }; + evenbrenden = { + email = "evenbrenden@gmail.com"; + github = "evenbrenden"; + githubId = 2512008; + name = "Even Brenden"; + }; + evils = { + email = "evils.devils@protonmail.com"; + github = "evils"; + githubId = 30512529; + name = "Evils"; + }; + exfalso = { + email = "0slemi0@gmail.com"; + github = "exfalso"; + githubId = 1042674; + name = "Andras Slemmer"; + }; + exi = { + email = "nixos@reckling.org"; + github = "exi"; + githubId = 449463; + name = "Reno Reckling"; + }; + exlevan = { + email = "exlevan@gmail.com"; + github = "exlevan"; + githubId = 873530; + name = "Alexey Levan"; + }; + expipiplus1 = { + email = "nix@monoid.al"; + github = "expipiplus1"; + githubId = 857308; + name = "Joe Hermaszewski"; + }; + eyjhb = { + email = "eyjhbb@gmail.com"; + github = "eyJhb"; + githubId = 25955146; + name = "eyJhb"; + }; + f--t = { + email = "git@f-t.me"; + github = "f--t"; + githubId = 2817965; + name = "f--t"; + }; + f4814n = { + email = "me@f4814n.de"; + github = "f4814"; + githubId = 11909469; + name = "Fabian Geiselhart"; + }; + fadenb = { + email = "tristan.helmich+nixos@gmail.com"; + github = "fadenb"; + githubId = 878822; + name = "Tristan Helmich"; + }; + falsifian = { + email = "james.cook@utoronto.ca"; + github = "falsifian"; + githubId = 225893; + name = "James Cook"; + }; + fare = { + email = "fahree@gmail.com"; + github = "fare"; + githubId = 8073; + name = "Francois-Rene Rideau"; + }; + farlion = { + email = "florian.peter@gmx.at"; + github = "workflow"; + githubId = 1276854; + name = "Florian Peter"; + }; + fdns = { + email = "fdns02@gmail.com"; + github = "fdns"; + githubId = 541748; + name = "Felipe Espinoza"; + }; + ffinkdevs = { + email = "fink@h0st.space"; + github = "ffinkdevs"; + githubId = 45924649; + name = "Fabian Fink"; + }; + fgaz = { + email = "fgaz@fgaz.me"; + github = "fgaz"; + githubId = 8182846; + name = "Francesco Gazzetta"; + }; + filalex77 = { + email = "brightone@protonmail.com"; + github = "filalex77"; + githubId = 12615679; + name = "Oleksii Filonenko"; + keys = [{ + longkeyid = "rsa3072/0xA1BC8428323ECFE8"; + fingerprint = "F549 3B7F 9372 5578 FDD3 D0B8 A1BC 8428 323E CFE8"; + }]; + }; + FireyFly = { + email = "nix@firefly.nu"; + github = "FireyFly"; + githubId = 415760; + name = "Jonas Höglund"; + }; + fishi0x01 = { + email = "fishi0x01@gmail.com"; + github = "fishi0x01"; + githubId = 10799507; + name = "Karl Fischer"; + }; + Flakebi = { + email = "flakebi@t-online.de"; + github = "Flakebi"; + githubId = 6499211; + name = "Sebastian Neubauer"; + keys = [{ + longkeyid = "rsa4096/0xECC755EE583C1672"; + fingerprint = "2F93 661D AC17 EA98 A104 F780 ECC7 55EE 583C 1672"; + }]; + }; + flexw = { + email = "felix.weilbach@t-online.de"; + github = "FlexW"; + githubId = 19961516; + name = "Felix Weilbach"; + }; + flokli = { + email = "flokli@flokli.de"; + github = "flokli"; + githubId = 183879; + name = "Florian Klink"; + }; + FlorianFranzen = { + email = "Florian.Franzen@gmail.com"; + github = "FlorianFranzen"; + githubId = 781077; + name = "Florian Franzen"; + }; + florianjacob = { + email = "projects+nixos@florianjacob.de"; + github = "florianjacob"; + githubId = 1109959; + name = "Florian Jacob"; + }; + flosse = { + email = "mail@markus-kohlhase.de"; + github = "flosse"; + githubId = 276043; + name = "Markus Kohlhase"; + }; + fluffynukeit = { + email = "dan@fluffynukeit.com"; + github = "fluffynukeit"; + githubId = 844574; + name = "Daniel Austin"; + }; + flyfloh = { + email = "nix@halbmastwurf.de"; + github = "flyfloh"; + githubId = 74379; + name = "Florian Pester"; + }; + fmthoma = { + email = "f.m.thoma@googlemail.com"; + github = "fmthoma"; + githubId = 5918766; + name = "Franz Thoma"; + }; + forkk = { + email = "forkk@forkk.net"; + github = "forkk"; + githubId = 1300078; + name = "Andrew Okin"; + }; + fornever = { + email = "friedrich@fornever.me"; + github = "fornever"; + githubId = 92793; + name = "Friedrich von Never"; + }; + fpletz = { + email = "fpletz@fnordicwalking.de"; + github = "fpletz"; + githubId = 114159; + name = "Franz Pletz"; + keys = [{ + longkeyid = "rsa4096/0x846FDED7792617B4"; + fingerprint = "8A39 615D CE78 AF08 2E23 F303 846F DED7 7926 17B4"; + }]; + }; + fps = { + email = "mista.tapas@gmx.net"; + github = "fps"; + githubId = 84968; + name = "Florian Paul Schmidt"; + }; + + fragamus = { + email = "innovative.engineer@gmail.com"; + github = "fragamus"; + githubId = 119691; + name = "Michael Gough"; + }; + + fredeb = { + email = "im@fredeb.dev"; + github = "fredeeb"; + githubId = 7551358; + name = "Frede Emil"; + }; + freepotion = { + email = "42352817+freepotion@users.noreply.github.com"; + github = "freepotion"; + githubId = 42352817; + name = "Free Potion"; + }; + freezeboy = { + email = "freezeboy@users.noreply.github.com"; + github = "freezeboy"; + githubId = 13279982; + name = "freezeboy"; + }; + Fresheyeball = { + email = "fresheyeball@gmail.com"; + github = "Fresheyeball"; + githubId = 609279; + name = "Isaac Shapira"; + }; + fridh = { + email = "fridh@fridh.nl"; + github = "fridh"; + githubId = 2129135; + name = "Frederik Rietdijk"; + }; + frlan = { + email = "frank@frank.uvena.de"; + github = "frlan"; + githubId = 1010248; + name = "Frank Lanitz"; + }; + fro_ozen = { + email = "fro_ozen@gmx.de"; + github = "froozen"; + githubId = 1943632; + name = "fro_ozen"; + }; + Frostman = { + email = "me@slukjanov.name"; + github = "Frostman"; + githubId = 134872; + name = "Sergei Lukianov"; + }; + frontsideair = { + email = "photonia@gmail.com"; + github = "frontsideair"; + githubId = 868283; + name = "Fatih Altinok"; + }; + ftrvxmtrx = { + email = "ftrvxmtrx@gmail.com"; + github = "ftrvxmtrx"; + githubId = 248148; + name = "Sigrid Solveig HaflĂnudĂłttir"; + }; + fuerbringer = { + email = "severin@fuerbringer.info"; + github = "fuerbringer"; + githubId = 10528737; + name = "Severin FĂŒrbringer"; + }; + funfunctor = { + email = "eocallaghan@alterapraxis.com"; + name = "Edward O'Callaghan"; + }; + fusion809 = { + email = "brentonhorne77@gmail.com"; + github = "fusion809"; + githubId = 4717341; + name = "Brenton Horne"; + }; + fuuzetsu = { + email = "fuuzetsu@fuuzetsu.co.uk"; + github = "fuuzetsu"; + githubId = 893115; + name = "Mateusz Kowalczyk"; + }; + fuwa = { + email = "echowss@gmail.com"; + github = "fuwa0529"; + githubId = 40521440; + name = "Haruka Akiyama"; + }; + fuzen = { + email = "me@fuzen.cafe"; + github = "fuzen-py"; + githubId = 17859309; + name = "Fuzen"; + }; + fuzzy-id = { + email = "hacking+nixos@babibo.de"; + name = "Thomas Bach"; + }; + fxfactorial = { + email = "edgar.factorial@gmail.com"; + github = "fxfactorial"; + githubId = 3036816; + name = "Edgar Aroutiounian"; + }; + gabesoft = { + email = "gabesoft@gmail.com"; + github = "gabesoft"; + githubId = 606000; + name = "Gabriel Adomnicai"; + }; + gal_bolle = { + email = "florent.becker@ens-lyon.org"; + github = "FlorentBecker"; + githubId = 7047019; + name = "Florent Becker"; + }; + gamb = { + email = "adam.gamble@pm.me"; + github = "gamb"; + githubId = 293586; + name = "Adam Gamble"; + }; + garbas = { + email = "rok@garbas.si"; + github = "garbas"; + githubId = 20208; + name = "Rok Garbas"; + }; + garrison = { + email = "jim@garrison.cc"; + github = "garrison"; + githubId = 91987; + name = "Jim Garrison"; + }; + gavin = { + email = "gavin.rogers@holo.host"; + github = "gavinrogers"; + githubId = 2430469; + name = "Gavin Rogers"; + }; + gazally = { + email = "gazally@runbox.com"; + github = "gazally"; + githubId = 16470252; + name = "Gemini Lasswell"; + }; + gebner = { + email = "gebner@gebner.org"; + github = "gebner"; + githubId = 313929; + name = "Gabriel Ebner"; + }; + geistesk = { + email = "post@0x21.biz"; + github = "geistesk"; + githubId = 8402811; + name = "Alvar Penning"; + }; + genesis = { + email = "ronan@aimao.org"; + github = "bignaux"; + githubId = 149484; + name = "Ronan Bignaux"; + }; + georgewhewell = { + email = "georgerw@gmail.com"; + github = "georgewhewell"; + githubId = 1176131; + name = "George Whewell"; + }; + gerschtli = { + email = "tobias.happ@gmx.de"; + github = "Gerschtli"; + githubId = 10353047; + name = "Tobias Happ"; + }; + ggpeti = { + email = "ggpeti@gmail.com"; + github = "ggpeti"; + githubId = 3217744; + name = "Peter Ferenczy"; + }; + gila = { + email = "jeffry.molanus@gmail.com"; + github = "gila"; + githubId = 15957973; + name = "Jeffry Molanus"; + }; + gilligan = { + email = "tobias.pflug@gmail.com"; + github = "gilligan"; + githubId = 27668; + name = "Tobias Pflug"; + }; + giogadi = { + email = "lgtorres42@gmail.com"; + github = "giogadi"; + githubId = 1713676; + name = "Luis G. Torres"; + }; + gleber = { + email = "gleber.p@gmail.com"; + github = "gleber"; + githubId = 33185; + name = "Gleb Peregud"; + }; + glenns = { + email = "glenn.searby@gmail.com"; + github = "glenns"; + githubId = 615606; + name = "Glenn Searby"; + }; + gloaming = { + email = "ch9871@gmail.com"; + github = "gloaming"; + githubId = 10156748; + name = "Craig Hall"; + }; + globin = { + email = "mail@glob.in"; + github = "globin"; + githubId = 1447245; + name = "Robin Gloster"; + }; + gnidorah = { + email = "gnidorah@users.noreply.github.com"; + github = "gnidorah"; + githubId = 12064730; + name = "gnidorah"; + }; + gnxlxnxx = { + email = "gnxlxnxx@web.de"; + github = "gnxlxnxx"; + githubId = 25820499; + name = "Roman Kretschmer"; + }; + goibhniu = { + email = "cillian.deroiste@gmail.com"; + github = "cillianderoiste"; + githubId = 643494; + name = "Cillian de RĂłiste"; + }; + Gonzih = { + email = "gonzih@gmail.com"; + github = "Gonzih"; + githubId = 266275; + name = "Max Gonzih"; + }; + goodrone = { + email = "goodrone@gmail.com"; + github = "goodrone"; + githubId = 1621335; + name = "Andrew Trachenko"; + }; + gpyh = { + email = "yacine.hmito@gmail.com"; + github = "yacinehmito"; + githubId = 6893840; + name = "Yacine Hmito"; + }; + grahamc = { + email = "graham@grahamc.com"; + github = "grahamc"; + githubId = 76716; + name = "Graham Christensen"; + }; + grburst = { + email = "GRBurst@protonmail.com"; + github = "GRBurst"; + githubId = 4647221; + name = "GRBurst"; + keys = [{ + longkeyid = "rsa4096/0x797F623868CD00C2"; + fingerprint = "7FC7 98AB 390E 1646 ED4D 8F1F 797F 6238 68CD 00C2"; + }]; + }; + greydot = { + email = "lanablack@amok.cc"; + github = "greydot"; + githubId = 7385287; + name = "Lana Black"; + }; + gridaphobe = { + email = "eric@seidel.io"; + github = "gridaphobe"; + githubId = 201997; + name = "Eric Seidel"; + }; + guibert = { + email = "david.guibert@gmail.com"; + github = "dguibert"; + githubId = 1178864; + name = "David Guibert"; + }; + groodt = { + email = "groodt@gmail.com"; + github = "groodt"; + githubId = 343415; + name = "Greg Roodt"; + }; + guibou = { + email = "guillaum.bouchard@gmail.com"; + github = "guibou"; + githubId = 9705357; + name = "Guillaume Bouchard"; + }; + GuillaumeDesforges = { + email = "aceus02@gmail.com"; + github = "GuillaumeDesforges"; + githubId = 1882000; + name = "Guillaume Desforges"; + }; + guillaumekoenig = { + email = "guillaume.edward.koenig@gmail.com"; + github = "guillaumekoenig"; + githubId = 10654650; + name = "Guillaume Koenig"; + }; + guyonvarch = { + email = "joris@guyonvarch.me"; + github = "guyonvarch"; + githubId = 6768842; + name = "Joris Guyonvarch"; + }; + hakuch = { + email = "hakuch@gmail.com"; + github = "hakuch"; + githubId = 1498782; + name = "Jesse Haber-Kucharsky"; + }; + hamhut1066 = { + email = "github@hamhut1066.com"; + github = "moredhel"; + githubId = 1742172; + name = "Hamish Hutchings"; + }; + hansjoergschurr = { + email = "commits@schurr.at"; + github = "hansjoergschurr"; + githubId = 9850776; + name = "Hans-Jörg Schurr"; + }; + HaoZeke = { + email = "r95g10@gmail.com"; + github = "haozeke"; + githubId = 4336207; + name = "Rohit Goswami"; + }; + haslersn = { + email = "haslersn@fius.informatik.uni-stuttgart.de"; + github = "haslersn"; + githubId = 33969028; + name = "Sebastian Hasler"; + }; + havvy = { + email = "ryan.havvy@gmail.com"; + github = "havvy"; + githubId = 731722; + name = "Ryan Scheel"; + }; + hax404 = { + email = "hax404foogit@hax404.de"; + github = "hax404"; + githubId = 1379411; + name = "Georg Haas"; + }; + hbunke = { + email = "bunke.hendrik@gmail.com"; + github = "hbunke"; + githubId = 1768793; + name = "Hendrik Bunke"; + }; + hce = { + email = "hc@hcesperer.org"; + github = "hce"; + githubId = 147689; + name = "Hans-Christian Esperer"; + }; + hectorj = { + email = "hector.jusforgues+nixos@gmail.com"; + github = "hectorj"; + githubId = 2427959; + name = "Hector Jusforgues"; + }; + hedning = { + email = "torhedinbronner@gmail.com"; + github = "hedning"; + githubId = 71978; + name = "Tor Hedin BrĂžnner"; + }; + heel = { + email = "parizhskiy@gmail.com"; + github = "heel"; + githubId = 287769; + name = "Sergii Paryzhskyi"; + }; + helkafen = { + email = "arnaudpourseb@gmail.com"; + github = "Helkafen"; + githubId = 2405974; + name = "SĂ©bastian MĂ©ric de Bellefon"; + }; + henrytill = { + email = "henrytill@gmail.com"; + github = "henrytill"; + githubId = 6430643; + name = "Henry Till"; + }; + herberteuler = { + email = "herberteuler@gmail.com"; + github = "herberteuler"; + githubId = 1401179; + name = "Guanpeng Xu"; + }; + hexa = { + email = "hexa@darmstadt.ccc.de"; + github = "mweinelt"; + githubId = 131599; + name = "Martin Weinelt"; + }; + hhm = { + email = "heehooman+nixpkgs@gmail.com"; + github = "hhm0"; + githubId = 3656888; + name = "hhm"; + }; + hinton = { + email = "t@larkery.com"; + name = "Tom Hinton"; + }; + hkjn = { + email = "me@hkjn.me"; + name = "Henrik Jonsson"; + github = "hkjn"; + githubId = 287215; + keys = [{ + longkeyid = "rsa4096/0x03EFBF839A5FDC15"; + fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15"; + }]; + }; + hlolli = { + email = "hlolli@gmail.com"; + github = "hlolli"; + githubId = 6074754; + name = "Hlodver Sigurdsson"; + }; + hugoreeves = { + email = "hugolreeves@gmail.com"; + github = "hugoreeves"; + githubId = 20039091; + name = "Hugo Reeves"; + }; + hodapp = { + email = "hodapp87@gmail.com"; + github = "Hodapp87"; + githubId = 896431; + name = "Chris Hodapp"; + }; + hrdinka = { + email = "c.nix@hrdinka.at"; + github = "hrdinka"; + githubId = 1436960; + name = "Christoph Hrdinka"; + }; + hschaeidt = { + email = "he.schaeidt@gmail.com"; + github = "hschaeidt"; + githubId = 1614615; + name = "Hendrik Schaeidt"; + }; + htr = { + email = "hugo@linux.com"; + github = "htr"; + githubId = 39689; + name = "Hugo Tavares Reis"; + }; + hyphon81 = { + email = "zero812n@gmail.com"; + github = "hyphon81"; + githubId = 12491746; + name = "Masato Yonekawa"; + }; + i077 = { + email = "nixpkgs@imranhossa.in"; + github = "i077"; + githubId = 2789926; + name = "Imran Hossain"; + }; + iand675 = { + email = "ian@iankduncan.com"; + github = "iand675"; + githubId = 69209; + name = "Ian Duncan"; + }; + ianmjones = { + email = "ian@ianmjones.com"; + github = "ianmjones"; + githubId = 4710; + name = "Ian M. Jones"; + }; + ianwookim = { + email = "ianwookim@gmail.com"; + github = "wavewave"; + githubId = 1031119; + name = "Ian-Woo Kim"; + }; + iblech = { + email = "iblech@speicherleck.de"; + github = "iblech"; + githubId = 3661115; + name = "Ingo Blechschmidt"; + }; + idontgetoutmuch = { + email = "dominic@steinitz.org"; + github = "idontgetoutmuch"; + githubId = 1550265; + name = "Dominic Steinitz"; + }; + igsha = { + email = "igor.sharonov@gmail.com"; + github = "igsha"; + githubId = 5345170; + name = "Igor Sharonov"; + }; + iimog = { + email = "iimog@iimog.org"; + github = "iimog"; + githubId = 7403236; + name = "Markus J. Ankenbrand"; + }; + ikervagyok = { + email = "ikervagyok@gmail.com"; + github = "ikervagyok"; + githubId = 7481521; + name = "BalĂĄzs Lengyel"; + }; + ilikeavocadoes = { + email = "ilikeavocadoes@hush.com"; + github = "ilikeavocadoes"; + githubId = 36193715; + name = "Lassi Haasio"; + }; + illegalprime = { + email = "themichaeleden@gmail.com"; + github = "illegalprime"; + githubId = 4401220; + name = "Michael Eden"; + }; + illiusdope = { + email = "mat@marini.ca"; + github = "illiusdope"; + githubId = 61913481; + name = "Mat Marini"; + }; + ilya-fedin = { + email = "fedin-ilja2010@ya.ru"; + github = "ilya-fedin"; + githubId = 17829319; + name = "Ilya Fedin"; + }; + ilya-kolpakov = { + email = "ilya.kolpakov@gmail.com"; + github = "ilya-kolpakov"; + githubId = 592849; + name = "Ilya Kolpakov"; + }; + imalison = { + email = "IvanMalison@gmail.com"; + github = "IvanMalison"; + githubId = 1246619; + name = "Ivan Malison"; + }; + imalsogreg = { + email = "imalsogreg@gmail.com"; + github = "imalsogreg"; + githubId = 993484; + name = "Greg Hale"; + }; + imuli = { + email = "i@imu.li"; + github = "imuli"; + githubId = 4085046; + name = "Imuli"; + }; + infinisil = { + email = "contact@infinisil.com"; + github = "infinisil"; + githubId = 20525370; + name = "Silvan Mosberger"; + keys = [{ + longkeyid = "rsa4096/0x422E9EDAE0157170"; + fingerprint = "6C2B 55D4 4E04 8266 6B7D DA1A 422E 9EDA E015 7170"; + }]; + }; + ingenieroariel = { + email = "ariel@nunez.co"; + github = "ingenieroariel"; + githubId = 54999; + name = "Ariel Nunez"; + }; + ironpinguin = { + email = "michele@catalano.de"; + github = "ironpinguin"; + githubId = 137306; + name = "Michele Catalano"; + }; + isgy = { + name = "isgy"; + email = "isgy@teiyg.com"; + github = "isgy"; + githubId = 13622947; + keys = [{ + longkeyid = "rsa4096/0xD3E1B013B4631293"; + fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293"; + }]; + }; + ivan = { + email = "ivan@ludios.org"; + github = "ivan"; + githubId = 4458; + name = "Ivan Kozik"; + }; + ivan-timokhin = { + email = "nixpkgs@ivan.timokhin.name"; + name = "Ivan Timokhin"; + github = "ivan-timokhin"; + githubId = 9802104; + }; + ivan-tkatchev = { + email = "tkatchev@gmail.com"; + name = "Ivan Tkatchev"; + }; + ivanbrennan = { + email = "ivan.brennan@gmail.com"; + github = "ivanbrennan"; + githubId = 1672874; + name = "Ivan Brennan"; + keys = [{ + longkeyid = "rsa4096/0x79C3C47DC652EA54"; + fingerprint = "7311 2700 AB4F 4CDF C68C F6A5 79C3 C47D C652 EA54"; + }]; + }; + ivar = { + email = "ivar.scholten@protonmail.com"; + github = "IvarWithoutBones"; + githubId = 41924494; + name = "Ivar"; + }; + ivegotasthma = { + email = "ivegotasthma@protonmail.com"; + github = "ivegotasthma"; + githubId = 2437675; + name = "John Doe"; + keys = [{ + longkeyid = "rsa4096/09AC52AEA87817A4"; + fingerprint = "4008 2A5B 56A4 79B9 83CB 95FD 09AC 52AE A878 17A4"; + }]; + }; + ixmatus = { + email = "parnell@digitalmentat.com"; + github = "ixmatus"; + githubId = 30714; + name = "Parnell Springmeyer"; + }; + ixxie = { + email = "matan@fluxcraft.net"; + github = "ixxie"; + githubId = 20320695; + name = "Matan Bendix Shenhav"; + }; + izorkin = { + email = "Izorkin@gmail.com"; + github = "izorkin"; + githubId = 26877687; + name = "Yurii Izorkin"; + }; + jacg = { + name = "Jacek Generowicz"; + email = "jacg@my-post-office.net"; + github = "jacg"; + githubId = 2570854; + }; + jasoncarr = { + email = "jcarr250@gmail.com"; + github = "jasoncarr0"; + githubId = 6874204; + name = "Jason Carr"; + }; + j-keck = { + email = "jhyphenkeck@gmail.com"; + github = "j-keck"; + githubId = 3081095; + name = "JĂŒrgen Keck"; + }; + j03 = { + email = "github@johannesloetzsch.de"; + github = "johannesloetzsch"; + githubId = 175537; + name = "Johannes Lötzsch"; + }; + jagajaga = { + email = "ars.seroka@gmail.com"; + github = "jagajaga"; + githubId = 2179419; + name = "Arseniy Seroka"; + }; + jakelogemann = { + email = "jake.logemann@gmail.com"; + github = "jakelogemann"; + githubId = 820715; + name = "Jake Logemann"; + }; + jakestanger = { + email = "mail@jstanger.dev"; + github = "JakeStanger"; + githubId = 5057870; + name = "Jake Stanger"; + }; + jakewaksbaum = { + email = "jake.waksbaum@gmail.com"; + github = "jbaum98"; + githubId = 5283991; + name = "Jake Waksbaum"; + }; + jammerful = { + email = "jammerful@gmail.com"; + github = "jammerful"; + githubId = 20176306; + name = "jammerful"; + }; + jansol = { + email = "jan.solanti@paivola.fi"; + github = "jansol"; + githubId = 2588851; + name = "Jan Solanti"; + }; + javaguirre = { + email = "contacto@javaguirre.net"; + github = "javaguirre"; + githubId = 488556; + name = "Javier Aguirre"; + }; + jb55 = { + email = "jb55@jb55.com"; + github = "jb55"; + githubId = 45598; + name = "William Casarin"; + }; + jbedo = { + email = "cu@cua0.org"; + github = "jbedo"; + githubId = 372912; + name = "Justin BedĆ"; + }; + jbgi = { + email = "jb@giraudeau.info"; + github = "jbgi"; + githubId = 221929; + name = "Jean-Baptiste Giraudeau"; + }; + jchw = { + email = "johnwchadwick@gmail.com"; + github = "jchv"; + githubId = 938744; + name = "John Chadwick"; + }; + jcumming = { + email = "jack@mudshark.org"; + name = "Jack Cummings"; + }; + jD91mZM2 = { + email = "me@krake.one"; + github = "jD91mZM2"; + githubId = 12830969; + name = "jD91mZM2"; + }; + jdagilliland = { + email = "jdagilliland@gmail.com"; + github = "jdagilliland"; + githubId = 1383440; + name = "Jason Gilliland"; + }; + jdanek = { + email = "jdanek@redhat.com"; + github = "jdanekrh"; + githubId = 17877663; + keys = [{ + longkeyid = "ed25519/0x69275CADF15D872E"; + fingerprint = "D4A6 F051 AD58 2E7C BCED 5439 6927 5CAD F15D 872E"; + }]; + name = "Jiri DanÄk"; + }; + jdehaas = { + email = "qqlq@nullptr.club"; + github = "jeroendehaas"; + githubId = 117874; + name = "Jeroen de Haas"; + }; + jefdaj = { + email = "jefdaj@gmail.com"; + github = "jefdaj"; + githubId = 1198065; + name = "Jeffrey David Johnson"; + }; + jefflabonte = { + email = "grimsleepless@protonmail.com"; + github = "jefflabonte"; + githubId = 9425955; + name = "Jean-François LabontĂ©"; + }; + jensbin = { + email = "jensbin+git@pm.me"; + github = "jensbin"; + githubId = 1608697; + name = "Jens Binkert"; + }; + jerith666 = { + email = "github@matt.mchenryfamily.org"; + github = "jerith666"; + githubId = 854319; + name = "Matt McHenry"; + }; + jeschli = { + email = "jeschli@gmail.com"; + github = "Jeschli"; + githubId = 10786794; + name = "Markus Hihn"; + }; + jethro = { + email = "jethrokuan95@gmail.com"; + github = "jethrokuan"; + githubId = 1667473; + name = "Jethro Kuan"; + }; + jfb = { + email = "james@yamtime.com"; + github = "tftio"; + githubId = 143075; + name = "James Felix Black"; + }; + jflanglois = { + email = "yourstruly@julienlanglois.me"; + github = "jflanglois"; + githubId = 18501; + name = "Julien Langlois"; + }; + jfrankenau = { + email = "johannes@frankenau.net"; + github = "jfrankenau"; + githubId = 2736480; + name = "Johannes Frankenau"; + }; + jgeerds = { + email = "jascha@geerds.org"; + github = "jgeerds"; + githubId = 1473909; + name = "Jascha Geerds"; + }; + jgertm = { + email = "jger.tm@gmail.com"; + github = "jgertm"; + githubId = 6616642; + name = "Tim Jaeger"; + }; + jgillich = { + email = "jakob@gillich.me"; + github = "jgillich"; + githubId = 347965; + name = "Jakob Gillich"; + }; + jglukasik = { + email = "joseph@jgl.me"; + github = "jglukasik"; + githubId = 6445082; + name = "Joseph Lukasik"; + }; + jhhuh = { + email = "jhhuh.note@gmail.com"; + github = "jhhuh"; + githubId = 5843245; + name = "Ji-Haeng Huh"; + }; + jhillyerd = { + email = "james+nixos@hillyerd.com"; + github = "jhillyerd"; + githubId = 2502736; + name = "James Hillyerd"; + }; + jirkamarsik = { + email = "jiri.marsik89@gmail.com"; + github = "jirkamarsik"; + githubId = 184898; + name = "Jirka Marsik"; + }; + jitwit = { + email = "jrn@bluefarm.ca"; + github = "jitwit"; + githubId = 51518420; + name = "jitwit"; + }; + jk = { + email = "hello+nixpkgs@j-k.io"; + github = "06kellyjac"; + githubId = 9866621; + name = "Jack"; + }; + jlesquembre = { + email = "jl@lafuente.me"; + github = "jlesquembre"; + githubId = 1058504; + name = "JosĂ© Luis Lafuente"; + }; + jloyet = { + email = "ml@fatbsd.com"; + github = "fatpat"; + githubId = 822436; + name = "JĂ©rĂŽme Loyet"; + }; + jluttine = { + email = "jaakko.luttinen@iki.fi"; + github = "jluttine"; + githubId = 2195834; + name = "Jaakko Luttinen"; + }; + jm2dev = { + email = "jomarcar@gmail.com"; + github = "jm2dev"; + githubId = 474643; + name = "JosĂ© Miguel MartĂnez Carrasco"; + }; + jmagnusj = { + email = "jmagnusj@gmail.com"; + github = "magnusjonsson"; + githubId = 8900; + name = "Johan Magnus Jonsson"; + }; + jmettes = { + email = "jonathan@jmettes.com"; + github = "jmettes"; + githubId = 587870; + name = "Jonathan Mettes"; + }; + joachifm = { + email = "joachifm@fastmail.fm"; + github = "joachifm"; + githubId = 41977; + name = "Joachim Fasting"; + }; + joamaki = { + email = "joamaki@gmail.com"; + github = "joamaki"; + githubId = 1102396; + name = "Jussi Maki"; + }; + joelburget = { + email = "joelburget@gmail.com"; + github = "joelburget"; + githubId = 310981; + name = "Joel Burget"; + }; + joelmo = { + email = "joel.moberg@gmail.com"; + github = "joelmo"; + githubId = 336631; + name = "Joel Moberg"; + }; + joelteon = { + email = "me@joelt.io"; + name = "Joel Taylor"; + }; + joepie91 = { + email = "admin@cryto.net"; + name = "Sven Slootweg"; + github = "joepie91"; + githubId = 1663259; + }; + joesalisbury = { + email = "salisbury.joseph@gmail.com"; + github = "JosephSalisbury"; + githubId = 297653; + name = "Joe Salisbury"; + }; + johanot = { + email = "write@ownrisk.dk"; + github = "johanot"; + githubId = 998763; + name = "Johan Thomsen"; + }; + johbo = { + email = "johannes@bornhold.name"; + github = "johbo"; + githubId = 117805; + name = "Johannes Bornhold"; + }; + johnazoidberg = { + email = "git@danielschaefer.me"; + github = "johnazoidberg"; + githubId = 5307138; + name = "Daniel SchĂ€fer"; + }; + johnchildren = { + email = "john.a.children@gmail.com"; + github = "johnchildren"; + githubId = 32305209; + name = "John Children"; + }; + johnmh = { + email = "johnmh@openblox.org"; + github = "johnmh"; + githubId = 2576152; + name = "John M. Harris, Jr."; + }; + johnramsden = { + email = "johnramsden@riseup.net"; + github = "johnramsden"; + githubId = 8735102; + name = "John Ramsden"; + }; + jojosch = { + name = "Johannes Schleifenbaum"; + email = "johannes@js-webcoding.de"; + github = "jojosch"; + githubId = 327488; + keys = [{ + longkeyid = "ed25519/059093B1A278BCD0"; + fingerprint = "7249 70E6 A661 D84E 8B47 678A 0590 93B1 A278 BCD0"; + }]; + }; + joko = { + email = "ioannis.koutras@gmail.com"; + github = "jokogr"; + githubId = 1252547; + keys = [{ + # compare with https://keybase.io/joko + longkeyid = "rsa2048/0x85EAE7D9DF56C5CA"; + fingerprint = "B154 A8F9 0610 DB45 0CA8 CF39 85EA E7D9 DF56 C5CA"; + }]; + name = "Ioannis Koutras"; + }; + jonafato = { + email = "jon@jonafato.com"; + github = "jonafato"; + githubId = 392720; + name = "Jon Banafato"; + }; + jonathanmarler = { + email = "johnnymarler@gmail.com"; + github = "marler8997"; + githubId = 304904; + name = "Jonathan Marler"; + }; + jonathanreeve = { + email = "jon.reeve@gmail.com"; + github = "JonathanReeve"; + githubId = 1843676; + name = "Jonathan Reeve"; + }; + joncojonathan = { + email = "joncojonathan@gmail.com"; + github = "joncojonathan"; + githubId = 11414454; + name = "Jonathan Haddock"; + }; + jonringer = { + email = "jonringer117@gmail.com"; + github = "jonringer"; + githubId = 7673602; + name = "Jonathan Ringer"; + }; + jorise = { + email = "info@jorisengbers.nl"; + github = "JorisE"; + githubId = 1767283; + name = "Joris Engbers"; + }; + jorsn = { + name = "Johannes Rosenberger"; + email = "johannes@jorsn.eu"; + github = "jorsn"; + githubId = 4646725; + }; + joshuafern = { + name = "Joshua Fern"; + email = "joshuafern@protonmail.com"; + github = "JoshuaFern"; + githubId = 4300747; + }; + jpas = { + name = "Jarrod Pas"; + email = "jarrod@jarrodpas.com"; + github = "jpas"; + githubId = 5689724; + }; + jpdoyle = { + email = "joethedoyle@gmail.com"; + github = "jpdoyle"; + githubId = 1918771; + name = "Joe Doyle"; + }; + jpierre03 = { + email = "nix@prunetwork.fr"; + github = "jpierre03"; + githubId = 954536; + name = "Jean-Pierre PRUNARET"; + }; + jpotier = { + email = "jpo.contributes.to.nixos@marvid.fr"; + github = "jpotier"; + githubId = 752510; + name = "Martin Potier"; + }; + jqueiroz = { + email = "nixos@johnjq.com"; + github = "jqueiroz"; + githubId = 4968215; + name = "Jonathan Queiroz"; + }; + jraygauthier = { + email = "jraygauthier@gmail.com"; + github = "jraygauthier"; + githubId = 4611077; + name = "Raymond Gauthier"; + }; + jtcoolen = { + email = "jtcoolen@pm.me"; + name = "Julien Coolen"; + github = "jtcoolen"; + githubId = 54635632; + keys = [{ + longkeyid = "rsa4096/0x19642151C218F6F5"; + fingerprint = "4C68 56EE DFDA 20FB 77E8 9169 1964 2151 C218 F6F5"; + }]; + }; + jtobin = { + email = "jared@jtobin.io"; + github = "jtobin"; + githubId = 1414434; + name = "Jared Tobin"; + }; + jtojnar = { + email = "jtojnar@gmail.com"; + github = "jtojnar"; + githubId = 705123; + name = "Jan Tojnar"; + }; + juaningan = { + email = "juaningan@gmail.com"; + github = "juaningan"; + githubId = 810075; + name = "Juan Rodal"; + }; + juliendehos = { + email = "dehos@lisic.univ-littoral.fr"; + github = "juliendehos"; + githubId = 11947756; + name = "Julien Dehos"; + }; + jumper149 = { + email = "felixspringer149@gmail.com"; + github = "jumper149"; + githubId = 39434424; + name = "Felix Springer"; + }; + justinwoo = { + email = "moomoowoo@gmail.com"; + github = "justinwoo"; + githubId = 2396926; + name = "Justin Woo"; + }; + jwiegley = { + email = "johnw@newartisans.com"; + github = "jwiegley"; + githubId = 8460; + name = "John Wiegley"; + }; + jwijenbergh = { + email = "jeroenwijenbergh@protonmail.com"; + github = "jwijenbergh"; + githubId = 46386452; + name = "Jeroen Wijenbergh"; + }; + jwilberding = { + email = "jwilberding@afiniate.com"; + name = "Jordan Wilberding"; + }; + jyp = { + email = "jeanphilippe.bernardy@gmail.com"; + github = "jyp"; + githubId = 27747; + name = "Jean-Philippe Bernardy"; + }; + jzellner = { + email = "jeffz@eml.cc"; + github = "sofuture"; + githubId = 66669; + name = "Jeff Zellner"; + }; + kaction = { + name = "Dmitry Bogatov"; + email = "KAction@disroot.org"; + github = "kaction"; + githubId = 44864956; + keys = [{ + longkeyid = "ed25519/0x749FD4DFA2E94236"; + fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236"; + }]; + }; + kaiha = { + email = "kai.harries@gmail.com"; + github = "kaiha"; + githubId = 6544084; + name = "Kai Harries"; + }; + kalbasit = { + email = "wael.nasreddine@gmail.com"; + github = "kalbasit"; + githubId = 87115; + name = "Wael Nasreddine"; + }; + kamadorueda = { + name = "Kevin Amado"; + email = "kamadorueda@gmail.com"; + github = "kamadorueda"; + githubId = 47480384; + keys = [{ + longkeyid = "rsa4096/0x04D0CEAF916A9A40"; + fingerprint = "2BE3 BAFD 793E A349 ED1F F00F 04D0 CEAF 916A 9A40"; + }]; + }; + kamilchm = { + email = "kamil.chm@gmail.com"; + github = "kamilchm"; + githubId = 1621930; + name = "Kamil Chmielewski"; + }; + kampfschlaefer = { + email = "arnold@arnoldarts.de"; + github = "kampfschlaefer"; + githubId = 3831860; + name = "Arnold Krille"; + }; + karantan = { + name = "Gasper Vozel"; + email = "karantan@gmail.com"; + github = "karantan"; + githubId = 7062631; + }; + karolchmist = { + email = "info+nix@chmist.com"; + name = "karolchmist"; + }; + kayhide = { + email = "kayhide@gmail.com"; + github = "kayhide"; + githubId = 1730718; + name = "Hideaki Kawai"; + }; + kazcw = { + email = "kaz@lambdaverse.org"; + github = "kazcw"; + githubId = 1047859; + name = "Kaz Wesley"; + }; + kcalvinalvin = { + email = "calvin@kcalvinalvin.info"; + github = "kcalvinalvin"; + githubId = 37185887; + name = "Calvin Kim"; + }; + kentjames = { + email = "jameschristopherkent@gmail.com"; + github = "kentjames"; + githubId = 2029444; + name = "James Kent"; + }; + kevincox = { + email = "kevincox@kevincox.ca"; + github = "kevincox"; + githubId = 494012; + name = "Kevin Cox"; + }; + khumba = { + email = "bog@khumba.net"; + github = "khumba"; + githubId = 788813; + name = "Bryan Gardiner"; + }; + KibaFox = { + email = "kiba.fox@foxypossibilities.com"; + github = "KibaFox"; + githubId = 16481032; + name = "Kiba Fox"; + }; + kierdavis = { + email = "kierdavis@gmail.com"; + github = "kierdavis"; + githubId = 845652; + name = "Kier Davis"; + }; + killercup = { + email = "killercup@gmail.com"; + github = "killercup"; + githubId = 20063; + name = "Pascal Hertleif"; + }; + kiloreux = { + email = "kiloreux@gmail.com"; + github = "kiloreux"; + githubId = 6282557; + name = "Kiloreux Emperex"; + }; + kim0 = { + email = "email.ahmedkamal@googlemail.com"; + github = "kim0"; + githubId = 59667; + name = "Ahmed Kamal"; + }; + kimat = { + email = "mail@kimat.org"; + github = "kimat"; + githubId = 3081769; + name = "Kimat Boven"; + }; + kimburgess = { + email = "kim@acaprojects.com"; + github = "kimburgess"; + githubId = 843652; + name = "Kim Burgess"; + }; + kini = { + email = "keshav.kini@gmail.com"; + github = "kini"; + githubId = 691290; + name = "Keshav Kini"; + }; + kirelagin = { + email = "kirelagin@gmail.com"; + github = "kirelagin"; + githubId = 451835; + name = "Kirill Elagin"; + }; + kirikaza = { + email = "k@kirikaza.ru"; + github = "kirikaza"; + githubId = 804677; + name = "Kirill Kazakov"; + }; + kisonecat = { + email = "kisonecat@gmail.com"; + github = "kisonecat"; + githubId = 148352; + name = "Jim Fowler"; + }; + kiwi = { + email = "envy1988@gmail.com"; + github = "Kiwi"; + githubId = 35715; + name = "Robert Djubek"; + keys = [{ + longkeyid = "rsa4096/0x156C88A5B0A04B2A"; + fingerprint = "8992 44FC D291 5CA2 0A97 802C 156C 88A5 B0A0 4B2A"; + }]; + }; + kkallio = { + email = "tierpluspluslists@gmail.com"; + name = "Karn Kallio"; + }; + klntsky = { + email = "klntsky@gmail.com"; + name = "Vladimir Kalnitsky"; + github = "klntsky"; + githubId = 18447310; + }; + kloenk = { + email = "me@kloenk.de"; + name = "Finn Behrens"; + github = "kloenk"; + githubId = 12898828; + keys = [{ + longkeyid = "ed25519/0xB92445CFC9546F9D"; + fingerprint = "6881 5A95 D715 D429 659B 48A4 B924 45CF C954 6F9D"; + }]; + }; + kmcopper = { + email = "kmcopper@danwin1210.me"; + name = "Kyle Copperfield"; + github = "kmcopper"; + githubId = 57132115; + }; + kmeakin = { + email = "karlwfmeakin@gmail.com"; + name = "Karl Meakin"; + github = "Kmeakin"; + githubId = 19665139; + }; + + kmein = { + email = "kieran.meinhardt@gmail.com"; + name = "KierĂĄn Meinhardt"; + github = "kmein"; + githubId = 10352507; + }; + knairda = { + email = "adrian@kummerlaender.eu"; + name = "Adrian Kummerlaender"; + github = "KnairdA"; + githubId = 498373; + }; + knedlsepp = { + email = "josef.kemetmueller@gmail.com"; + github = "knedlsepp"; + githubId = 3287933; + name = "Josef KemetmĂŒller"; + }; + knl = { + email = "nikola@knezevic.co"; + github = "knl"; + githubId = 361496; + name = "Nikola KneĆŸeviÄ"; + }; + kolaente = { + email = "k@knt.li"; + github = "kolaente"; + githubId = 13721712; + name = "Konrad Langenberg"; + }; + kolbycrouch = { + email = "kjc.devel@gmail.com"; + github = "kolbycrouch"; + githubId = 6346418; + name = "Kolby Crouch"; + }; + kolloch = { + email = "info@eigenvalue.net"; + github = "kolloch"; + githubId = 339354; + name = "Peter Kolloch"; + }; + konimex = { + email = "herdiansyah@netc.eu"; + github = "konimex"; + githubId = 15692230; + name = "Muhammad Herdiansyah"; + }; + koral = { + email = "koral@mailoo.org"; + github = "k0ral"; + githubId = 524268; + name = "Koral"; + }; + kovirobi = { + email = "kovirobi@gmail.com"; + github = "kovirobi"; + githubId = 1903418; + name = "Kovacsics Robert"; + }; + kquick = { + email = "quick@sparq.org"; + github = "kquick"; + githubId = 787421; + name = "Kevin Quick"; + }; + kraem = { + email = "me@kraem.xyz"; + github = "kraem"; + githubId = 26622971; + name = "Ronnie Ebrin"; + }; + kragniz = { + email = "louis@kragniz.eu"; + github = "kragniz"; + githubId = 735008; + name = "Louis Taylor"; + }; + krav = { + email = "kristoffer@microdisko.no"; + github = "krav"; + githubId = 4032; + name = "Kristoffer ThĂžmt Ravneberg"; + }; + kroell = { + email = "nixosmainter@makroell.de"; + github = "rokk4"; + githubId = 17659803; + name = "Matthias Axel Kröll"; + }; + kristian-brucaj = { + email = "kbrucaj@gmail.com"; + github = "kristian-brucaj"; + githubId = 8893110; + name = "Kristian Brucaj"; + }; + kristoff3r = { + email = "k.soeholm@gmail.com"; + github = "kristoff3r"; + githubId = 160317; + name = "Kristoffer SĂžholm"; + }; + ktf = { + email = "giulio.eulisse@cern.ch"; + github = "ktf"; + githubId = 10544; + name = "Giuluo Eulisse"; + }; + kthielen = { + email = "kthielen@gmail.com"; + github = "kthielen"; + githubId = 1409287; + name = "Kalani Thielen"; + }; + ktor = { + email = "kruszewsky@gmail.com"; + github = "ktor"; + githubId = 99639; + name = "Pawel Kruszewski"; + }; + ktosiek = { + email = "tomasz.kontusz@gmail.com"; + github = "ktosiek"; + githubId = 278013; + name = "Tomasz Kontusz"; + }; + kuznero = { + email = "roman@kuznero.com"; + github = "kuznero"; + githubId = 449813; + name = "Roman Kuznetsov"; + }; + kwohlfahrt = { + email = "kai.wohlfahrt@gmail.com"; + github = "kwohlfahrt"; + githubId = 2422454; + name = "Kai Wohlfahrt"; + }; + kylesferrazza = { + name = "Kyle Sferrazza"; + email = "kyle.sferrazza@gmail.com"; + + github = "kylesferrazza"; + githubId = 6677292; + + keys = [{ + longkeyid = "rsa4096/81A1540948162372"; + fingerprint = "5A9A 1C9B 2369 8049 3B48 CF5B 81A1 5409 4816 2372"; + }]; + }; + kylewlacy = { + email = "kylelacy+nix@pm.me"; + github = "kylewlacy"; + githubId = 1362179; + name = "Kyle Lacy"; + }; + laikq = { + email = "gwen@quasebarth.de"; + github = "laikq"; + githubId = 55911173; + name = "Gwendolyn Quasebarth"; + }; + lasandell = { + email = "lasandell@gmail.com"; + github = "lasandell"; + githubId = 2034420; + name = "Luke Sandell"; + }; + lambda-11235 = { + email = "taranlynn0@gmail.com"; + github = "lambda-11235"; + githubId = 16354815; + name = "Taran Lynn"; + }; + lassulus = { + email = "lassulus@gmail.com"; + github = "Lassulus"; + githubId = 621759; + name = "Lassulus"; + }; + lattfein = { + email = "lattfein@gmail.com"; + # Their GitHub account was deleted. + # + # See: https://github.com/NixOS/nixpkgs/pull/69007 where this + # was added but is now owned by a ghost. + # + # Possibly the username lattfein (currently github ID 56827487) is + # owned by the same person, but we should confirm before adding + # the GitHub name or ID back. + # github = "lattfein"; + name = "Koki Yasuno"; + }; + layus = { + email = "layus.on@gmail.com"; + github = "layus"; + githubId = 632767; + name = "Guillaume Maudoux"; + }; + lblasc = { + email = "lblasc@znode.net"; + github = "lblasc"; + githubId = 32152; + name = "Luka Blaskovic"; + }; + lbpdt = { + email = "nix@pdtpartners.com"; + github = "lbpdt"; + githubId = 45168934; + name = "Louis Blin"; + }; + ldelelis = { + email = "ldelelis@est.frba.utn.edu.ar"; + github = "ldelelis"; + githubId = 20250323; + name = "Lucio Delelis"; + }; + ldesgoui = { + email = "ldesgoui@gmail.com"; + github = "ldesgoui"; + githubId = 2472678; + name = "Lucas Desgouilles"; + }; + league = { + email = "league@contrapunctus.net"; + github = "league"; + githubId = 50286; + name = "Christopher League"; + }; + leahneukirchen = { + email = "leah@vuxu.org"; + github = "leahneukirchen"; + githubId = 139; + name = "Leah Neukirchen"; + }; + lebastr = { + email = "lebastr@gmail.com"; + github = "lebastr"; + githubId = 887072; + name = "Alexander Lebedev"; + }; + ledif = { + email = "refuse@gmail.com"; + github = "ledif"; + githubId = 307744; + name = "Adam Fidel"; + }; + leemachin = { + email = "me@mrl.ee"; + github = "leemachin"; + githubId = 736291; + name = "Lee Machin"; + }; + leenaars = { + email = "ml.software@leenaa.rs"; + github = "leenaars"; + githubId = 4158274; + name = "Michiel Leenaars"; + }; + lejonet = { + email = "daniel@kuehn.se"; + github = "lejonet"; + githubId = 567634; + name = "Daniel Kuehn"; + }; + leo60228 = { + email = "iakornfeld@gmail.com"; + github = "leo60228"; + githubId = 8355305; + name = "leo60228"; + }; + leonardoce = { + email = "leonardo.cecchi@gmail.com"; + github = "leonardoce"; + githubId = 1572058; + name = "Leonardo Cecchi"; + }; + leshainc = { + email = "leshainc@fomalhaut.me"; + github = "LeshaInc"; + githubId = 42153076; + name = "Alexey Nikashkin"; + }; + lethalman = { + email = "lucabru@src.gnome.org"; + github = "lethalman"; + githubId = 480920; + name = "Luca Bruno"; + }; + lewo = { + email = "lewo@abesis.fr"; + github = "nlewo"; + githubId = 3425311; + name = "Antoine Eiche"; + }; + lexuge = { + name = "Harry Ying"; + email = "lexugeyky@outlook.com"; + github = "LEXUGE"; + githubId = 13804737; + keys = [{ + longkeyid = "rsa4096/0xAE53B4C2E58EDD45"; + fingerprint = "7FE2 113A A08B 695A C8B8 DDE6 AE53 B4C2 E58E DD45"; + }]; + }; + lheckemann = { + email = "git@sphalerite.org"; + github = "lheckemann"; + githubId = 341954; + name = "Linus Heckemann"; + }; + lhvwb = { + email = "nathaniel.baxter@gmail.com"; + github = "nathanielbaxter"; + githubId = 307589; + name = "Nathaniel Baxter"; + }; + liff = { + email = "liff@iki.fi"; + github = "liff"; + githubId = 124475; + name = "Olli Helenius"; + }; + lightbulbjim = { + email = "chris@killred.net"; + github = "lightbulbjim"; + githubId = 4312404; + name = "Chris Rendle-Short"; + }; + lightdiscord = { + email = "root@arnaud.sh"; + github = "lightdiscord"; + githubId = 24509182; + name = "Arnaud Pascal"; + }; + lihop = { + email = "nixos@leroy.geek.nz"; + github = "lihop"; + githubId = 3696783; + name = "Leroy Hopson"; + }; + lilyball = { + email = "lily@sb.org"; + github = "lilyball"; + githubId = 714; + name = "Lily Ballard"; + }; + limeytexan = { + email = "limeytexan@gmail.com"; + github = "limeytexan"; + githubId = 36448130; + name = "Michael Brantley"; + }; + linarcx = { + email = "linarcx@gmail.com"; + github = "linarcx"; + githubId = 10884422; + name = "Kaveh Ahangar"; + }; + linc01n = { + email = "git@lincoln.hk"; + github = "linc01n"; + githubId = 667272; + name = "Lincoln Lee"; + }; + linquize = { + email = "linquize@yahoo.com.hk"; + github = "linquize"; + githubId = 791115; + name = "Linquize"; + }; + linus = { + email = "linusarver@gmail.com"; + github = "listx"; + githubId = 725613; + name = "Linus Arver"; + }; + livnev = { + email = "lev@liv.nev.org.uk"; + github = "livnev"; + githubId = 3964494; + name = "Lev Livnev"; + keys = [{ + longkeyid = "rsa2048/0x68FF81E6A7850F49"; + fingerprint = "74F5 E5CC 19D3 B5CB 608F 6124 68FF 81E6 A785 0F49"; + }]; + }; + lourkeur = { + name = "Louis Bettens"; + email = "louis@bettens.info"; + github = "lourkeur"; + githubId = 15657735; + keys = [{ + longkeyid = "ed25519/0xDFE1D4A017337E2A"; + fingerprint = "5B93 9CFA E8FC 4D8F E07A 3AEA DFE1 D4A0 1733 7E2A"; + }]; + }; + luis = { + email = "luis.nixos@gmail.com"; + github = "Luis-Hebendanz"; + githubId = 22085373; + name = "Luis Hebendanz"; + }; + lionello = { + email = "lio@lunesu.com"; + github = "lionello"; + githubId = 591860; + name = "Lionello Lunesu"; + }; + lluchs = { + email = "lukas.werling@gmail.com"; + github = "lluchs"; + githubId = 516527; + name = "Lukas Werling"; + }; + lnl7 = { + email = "daiderd@gmail.com"; + github = "lnl7"; + githubId = 689294; + name = "Daiderd Jordan"; + }; + lo1tuma = { + email = "schreck.mathias@gmail.com"; + github = "lo1tuma"; + githubId = 169170; + name = "Mathias Schreck"; + }; + loewenheim = { + email = "loewenheim@mailbox.org"; + github = "loewenheim"; + githubId = 7622248; + name = "Sebastian Zivota"; + }; + lopsided98 = { + email = "benwolsieffer@gmail.com"; + github = "lopsided98"; + githubId = 5624721; + name = "Ben Wolsieffer"; + }; + loskutov = { + email = "ignat.loskutov@gmail.com"; + github = "loskutov"; + githubId = 1202012; + name = "Ignat Loskutov"; + }; + lovek323 = { + email = "jason@oconal.id.au"; + github = "lovek323"; + githubId = 265084; + name = "Jason O'Conal"; + }; + lovesegfault = { + email = "meurerbernardo@gmail.com"; + github = "lovesegfault"; + githubId = 7243783; + name = "Bernardo Meurer"; + keys = [ + { + longkeyid = "rsa2048/0xE421C74191EA186C"; + fingerprint = "5894 12CE 19DF 582A E10A 3320 E421 C741 91EA 186C"; + } + { + longkeyid = "rsa2048/0x4A6D87A0E7475769"; + fingerprint = "56A8 E164 E834 290C 4AC0 EE3E 4A6D 87A0 E747 5769"; + } + ]; + }; + lowfatcomputing = { + email = "andreas.wagner@lowfatcomputing.org"; + github = "lowfatcomputing"; + githubId = 10626; + name = "Andreas Wagner"; + }; + lschuermann = { + email = "leon.git@is.currently.online"; + github = "lschuermann"; + githubId = 5341193; + name = "Leon Schuermann"; + }; + lsix = { + email = "lsix@lancelotsix.com"; + github = "lsix"; + githubId = 724339; + name = "Lancelot SIX"; + }; + ltavard = { + email = "laure.tavard@univ-grenoble-alpes.fr"; + github = "ltavard"; + githubId = 8555953; + name = "Laure Tavard"; + }; + luc65r = { + email = "lucas@ransan.tk"; + github = "luc65r"; + githubId = 59375051; + name = "Lucas Ransan"; + }; + lucus16 = { + email = "lars.jellema@gmail.com"; + github = "Lucus16"; + githubId = 2487922; + name = "Lars Jellema"; + }; + ludo = { + email = "ludo@gnu.org"; + github = "civodul"; + githubId = 1168435; + name = "Ludovic CourtĂšs"; + }; + lufia = { + email = "lufia@lufia.org"; + github = "lufia"; + githubId = 1784379; + name = "Kyohei Kadota"; + }; + Luflosi = { + name = "Luflosi"; + email = "luflosi@luflosi.de"; + github = "Luflosi"; + githubId = 15217907; + keys = [{ + longkeyid = "rsa4096/0x6F987CCF224D20B9"; + fingerprint = "66D1 3048 2B5F 2069 81A6 6B83 6F98 7CCF 224D 20B9"; + }]; + }; + luispedro = { + email = "luis@luispedro.org"; + github = "luispedro"; + githubId = 79334; + name = "Luis Pedro Coelho"; + }; + lukeadams = { + email = "luke.adams@belljar.io"; + github = "lukeadams"; + githubId = 3508077; + name = "Luke Adams"; + }; + lukebfox = { + email = "lbentley-fox1@sheffield.ac.uk"; + github = "lukebfox"; + githubId = 34683288; + name = "Luke Bentley-Fox"; + }; + lukego = { + email = "luke@snabb.co"; + github = "lukego"; + githubId = 13791; + name = "Luke Gorrie"; + }; + lumi = { + email = "lumi@pew.im"; + github = "lumi-me-not"; + githubId = 26020062; + name = "lumi"; + }; + luz = { + email = "luz666@daum.net"; + github = "Luz"; + githubId = 208297; + name = "Luz"; + }; + lw = { + email = "lw@fmap.me"; + github = "lolwat97"; + githubId = 2057309; + name = "Sergey Sofeychuk"; + }; + lynty = { + email = "ltdong93+nix@gmail.com"; + github = "lynty"; + githubId = 39707188; + name = "Lynn Dong"; + }; + lyt = { + email = "wheatdoge@gmail.com"; + name = "Tim Liou"; + }; + m1cr0man = { + email = "lucas+nix@m1cr0man.com"; + github = "m1cr0man"; + githubId = 3044438; + name = "Lucas Savva"; + }; + m3tti = { + email = "mathaeus.peter.sander@gmail.com"; + name = "Mathaeus Sander"; + }; + ma27 = { + email = "maximilian@mbosch.me"; + github = "ma27"; + githubId = 6025220; + name = "Maximilian Bosch"; + }; + ma9e = { + email = "sean@lfo.team"; + github = "furrycatherder"; + githubId = 36235154; + name = "Sean Haugh"; + }; + madjar = { + email = "georges.dubus@compiletoi.net"; + github = "madjar"; + githubId = 109141; + name = "Georges Dubus"; + }; + mafo = { + email = "Marc.Fontaine@gmx.de"; + github = "MarcFontaine"; + githubId = 1433367; + name = "Marc Fontaine"; + }; + magenbluten = { + email = "magenbluten@codemonkey.cc"; + github = "magenbluten"; + githubId = 1140462; + name = "magenbluten"; + }; + magnetophon = { + email = "bart@magnetophon.nl"; + github = "magnetophon"; + githubId = 7645711; + name = "Bart Brouns"; + }; + mahe = { + email = "matthias.mh.herrmann@gmail.com"; + github = "2chilled"; + githubId = 1238350; + name = "Matthias Herrmann"; + }; + makefu = { + email = "makefu@syntax-fehler.de"; + github = "makefu"; + githubId = 115218; + name = "Felix Richter"; + }; + malyn = { + email = "malyn@strangeGizmo.com"; + github = "malyn"; + githubId = 346094; + name = "Michael Alyn Miller"; + }; + manveru = { + email = "m.fellinger@gmail.com"; + github = "manveru"; + githubId = 3507; + name = "Michael Fellinger"; + }; + maralorn = { + email = "malte.brandy@maralorn.de"; + github = "maralorn"; + githubId = 1651325; + name = "Malte Brandy"; + }; + marcweber = { + email = "marco-oweber@gmx.de"; + github = "marcweber"; + githubId = 34086; + name = "Marc Weber"; + }; + marcus7070 = { + email = "marcus@geosol.com.au"; + github = "marcus7070"; + githubId = 50230945; + name = "Marcus Boyd"; + }; + marenz = { + email = "marenz@arkom.men"; + github = "marenz2569"; + githubId = 12773269; + name = "Markus Schmidl"; + }; + markus1189 = { + email = "markus1189@gmail.com"; + github = "markus1189"; + githubId = 591567; + name = "Markus Hauck"; + }; + markuskowa = { + email = "markus.kowalewski@gmail.com"; + github = "markuskowa"; + githubId = 26470037; + name = "Markus Kowalewski"; + }; + markWot = { + email = "markus@wotringer.de"; + name = "Markus Wotringer"; + }; + marius851000 = { + email = "mariusdavid@laposte.net"; + name = "Marius David"; + github = "marius851000"; + githubId = 22586596; + }; + marsam = { + email = "marsam@users.noreply.github.com"; + github = "marsam"; + githubId = 65531; + name = "Mario Rodas"; + }; + martijnvermaat = { + email = "martijn@vermaat.name"; + github = "martijnvermaat"; + githubId = 623509; + name = "Martijn Vermaat"; + }; + martingms = { + email = "martin@mg.am"; + github = "martingms"; + githubId = 458783; + name = "Martin GammelsĂŠter"; + }; + marzipankaiser = { + email = "nixos@gaisseml.de"; + github = "marzipankaiser"; + githubId = 2551444; + name = "Marcial GaiĂert"; + keys = [{ + longkeyid = "rsa2048/0xB629036BE399EEE9"; + fingerprint = "B573 5118 0375 A872 FBBF 7770 B629 036B E399 EEE9"; + }]; + }; + matejc = { + email = "cotman.matej@gmail.com"; + github = "matejc"; + githubId = 854770; + name = "Matej Cotman"; + }; + mathnerd314 = { + email = "mathnerd314.gph+hs@gmail.com"; + github = "mathnerd314"; + githubId = 322214; + name = "Mathnerd314"; + }; + matklad = { + email = "aleksey.kladov@gmail.com"; + github = "matklad"; + githubId = 1711539; + name = "matklad"; + }; + matt-snider = { + email = "matt.snider@protonmail.com"; + github = "matt-snider"; + githubId = 11810057; + name = "Matt Snider"; + }; + matthewbauer = { + email = "mjbauer95@gmail.com"; + github = "matthewbauer"; + githubId = 19036; + name = "Matthew Bauer"; + }; + matthiasbeyer = { + email = "mail@beyermatthias.de"; + github = "matthiasbeyer"; + githubId = 427866; + name = "Matthias Beyer"; + }; + matthuszagh = { + email = "huszaghmatt@gmail.com"; + github = "matthuszagh"; + githubId = 7377393; + name = "Matt Huszagh"; + }; + matti-kariluoma = { + email = "matti@kariluo.ma"; + github = "matti-kariluoma"; + githubId = 279868; + name = "Matti Kariluoma"; + }; + maurer = { + email = "matthew.r.maurer+nix@gmail.com"; + github = "maurer"; + githubId = 136037; + name = "Matthew Maurer"; + }; + maxdamantus = { + email = "maxdamantus@gmail.com"; + github = "Maxdamantus"; + githubId = 502805; + name = "Max Zerzouri"; + }; + maxeaubrey = { + email = "maxeaubrey@gmail.com"; + github = "maxeaubrey"; + githubId = 35892750; + name = "Maxine Aubrey"; + }; + mbakke = { + email = "mbakke@fastmail.com"; + github = "mbakke"; + githubId = 1269099; + name = "Marius Bakke"; + }; + mbaillie = { + email = "martin@baillie.email"; + github = "martinbaillie"; + githubId = 613740; + name = "Martin Baillie"; + }; + mbbx6spp = { + email = "me@susanpotter.net"; + github = "mbbx6spp"; + githubId = 564; + name = "Susan Potter"; + }; + mbe = { + email = "brandonedens@gmail.com"; + github = "brandonedens"; + githubId = 396449; + name = "Brandon Edens"; + }; + mbode = { + email = "maxbode@gmail.com"; + github = "mbode"; + githubId = 9051309; + name = "Maximilian Bode"; + }; + mboes = { + email = "mboes@tweag.net"; + github = "mboes"; + githubId = 51356; + name = "Mathieu Boespflug"; + }; + mbrgm = { + email = "marius@yeai.de"; + github = "mbrgm"; + githubId = 2971615; + name = "Marius Bergmann"; + }; + mcmtroffaes = { + email = "matthias.troffaes@gmail.com"; + github = "mcmtroffaes"; + githubId = 158568; + name = "Matthias C. M. Troffaes"; + }; + McSinyx = { + email = "vn.mcsinyx@gmail.com"; + github = "McSinyx"; + githubId = 13689192; + name = "Nguyá»
n Gia Phong"; + }; + mdaiter = { + email = "mdaiter8121@gmail.com"; + github = "mdaiter"; + githubId = 1377571; + name = "Matthew S. Daiter"; + }; + mdevlamynck = { + email = "matthias.devlamynck@mailoo.org"; + github = "mdevlamynck"; + githubId = 4378377; + name = "Matthias Devlamynck"; + }; + mdlayher = { + email = "mdlayher@gmail.com"; + github = "mdlayher"; + githubId = 1926905; + name = "Matt Layher"; + }; + meditans = { + email = "meditans@gmail.com"; + github = "meditans"; + githubId = 4641445; + name = "Carlo Nucera"; + }; + megheaiulian = { + email = "iulian.meghea@gmail.com"; + github = "megheaiulian"; + githubId = 1788114; + name = "Meghea Iulian"; + }; + mehandes = { + email = "niewskici@gmail.com"; + github = "mehandes"; + githubId = 32581276; + name = "Matt Deming"; + }; + meisternu = { + email = "meister@krutt.org"; + github = "meisternu"; + githubId = 8263431; + name = "Matt Miemiec"; + }; + melchips = { + email = "truphemus.francois@gmail.com"; + github = "melchips"; + githubId = 365721; + name = "Francois Truphemus"; + }; + melsigl = { + email = "melanie.bianca.sigl@gmail.com"; + github = "melsigl"; + githubId = 15093162; + name = "Melanie B. Sigl"; + }; + melkor333 = { + email = "samuel@ton-kunst.ch"; + github = "melkor333"; + githubId = 6412377; + name = "Samuel Ruprecht"; + }; + metabar = { + email = "softs@metabarcoding.org"; + name = "Celine Mercier"; + }; + metadark = { + email = "kira.bruneau@gmail.com"; + name = "Kira Bruneau"; + github = "metadark"; + githubId = 382041; + }; + mfossen = { + email = "msfossen@gmail.com"; + github = "mfossen"; + githubId = 3300322; + name = "Mitchell Fossen"; + }; + mgdelacroix = { + email = "mgdelacroix@gmail.com"; + github = "mgdelacroix"; + githubId = 223323; + name = "Miguel de la Cruz"; + }; + mgregoire = { + email = "gregoire@martinache.net"; + github = "M-Gregoire"; + githubId = 9469313; + name = "Gregoire Martinache"; + }; + mgttlinger = { + email = "megoettlinger@gmail.com"; + github = "mgttlinger"; + githubId = 5120487; + name = "Merlin Göttlinger"; + }; + mguentner = { + email = "code@klandest.in"; + github = "mguentner"; + githubId = 668926; + name = "Maximilian GĂŒntner"; + }; + mhaselsteiner = { + email = "magdalena.haselsteiner@gmx.at"; + github = "mhaselsteiner"; + githubId = 20536514; + name = "Magdalena Haselsteiner"; + }; + mic92 = { + email = "joerg@thalheim.io"; + github = "mic92"; + githubId = 96200; + name = "Jörg Thalheim"; + keys = [{ + # compare with https://keybase.io/Mic92 + longkeyid = "rsa4096/0x003F2096411B5F92"; + fingerprint = "3DEE 1C55 6E1C 3DC5 54F5 875A 003F 2096 411B 5F92"; + }]; + }; + michaelpj = { + email = "michaelpj@gmail.com"; + github = "michaelpj"; + githubId = 1699466; + name = "Michael Peyton Jones"; + }; + michalrus = { + email = "m@michalrus.com"; + github = "michalrus"; + githubId = 4366292; + name = "Michal Rus"; + }; + michelk = { + email = "michel@kuhlmanns.info"; + github = "michelk"; + githubId = 1404919; + name = "Michel Kuhlmann"; + }; + michojel = { + email = "mic.liamg@gmail.com"; + github = "michojel"; + githubId = 21156022; + name = "Michal MinĂĄĆ"; + }; + mickours = { + email = "mickours@gmail.com<"; + github = "mickours"; + githubId = 837312; + name = "Michael Mercier"; + }; + midchildan = { + email = "midchildan+nix@gmail.com"; + github = "midchildan"; + githubId = 7343721; + name = "midchildan"; + }; + mikefaille = { + email = "michael@faille.io"; + github = "mikefaille"; + githubId = 978196; + name = "MichaĂ«l Faille"; + }; + mikoim = { + email = "ek@esh.ink"; + github = "mikoim"; + githubId = 3958340; + name = "Eshin Kunishima"; + }; + mikesperber = { + email = "sperber@deinprogramm.de"; + github = "mikesperber"; + githubId = 1387206; + name = "Mike Sperber"; + }; + mildlyincompetent = { + email = "nix@kch.dev"; + github = "mildlyincompetent"; + githubId = 19479662; + name = "Kajetan Champlewski"; + }; + millerjason = { + email = "mailings-github@millerjason.com"; + github = "millerjason"; + githubId = 7610974; + name = "Jason Miller"; + }; + miltador = { + email = "miltador@yandex.ua"; + name = "Vasiliy Solovey"; + }; + mimame = { + email = "miguel.madrid.mencia@gmail.com"; + github = "mimame"; + githubId = 3269878; + name = "Miguel Madrid MencĂa"; + }; + mindavi = { + email = "rol3517@gmail.com"; + github = "Mindavi"; + githubId = 9799623; + name = "Rick van Schijndel"; + }; + minijackson = { + email = "minijackson@riseup.net"; + github = "minijackson"; + githubId = 1200507; + name = "RĂ©mi Nicole"; + keys = [{ + longkeyid = "rsa2048/0xFEA888C9F5D64F62"; + fingerprint = "3196 83D3 9A1B 4DE1 3DC2 51FD FEA8 88C9 F5D6 4F62"; + }]; + }; + mirdhyn = { + email = "mirdhyn@gmail.com"; + github = "mirdhyn"; + githubId = 149558; + name = "Merlin Gaillard"; + }; + mirrexagon = { + email = "mirrexagon@mirrexagon.com"; + github = "mirrexagon"; + githubId = 1776903; + name = "Andrew Abbott"; + }; + mjanczyk = { + email = "m@dragonvr.pl"; + github = "mjanczyk"; + githubId = 1001112; + name = "Marcin Janczyk"; + }; + mjp = { + email = "mike@mythik.co.uk"; + github = "MikePlayle"; + githubId = 16974598; + name = "Mike Playle"; + }; + mkaito = { + email = "chris@mkaito.net"; + github = "mkaito"; + githubId = 20434; + name = "Christian Höppner"; + }; + mkazulak = { + email = "kazulakm@gmail.com"; + github = "mulderr"; + githubId = 5698461; + name = "Maciej Kazulak"; + }; + mkf = { + email = "m@mikf.pl"; + github = "mkf"; + githubId = 7753506; + name = "MichaĆ Krzysztof Feiler"; + keys = [{ + longkeyid = "rsa4096/0xE35C2D7C2C6AC724"; + fingerprint = "1E36 9940 CC7E 01C4 CFE8 F20A E35C 2D7C 2C6A C724"; + }]; + }; + mkg = { + email = "mkg@vt.edu"; + github = "mkgvt"; + githubId = 22477669; + name = "Mark K Gardner"; + }; + mkg20001 = { + email = "mkg20001+nix@gmail.com"; + github = "mkg20001"; + githubId = 7735145; + name = "Maciej KrĂŒger"; + keys = [{ + longkeyid = "rsa4096/0x0D948CE19CF49C5F"; + fingerprint = "E90C BA34 55B3 6236 740C 038F 0D94 8CE1 9CF4 9C5F"; + }]; + }; + mlieberman85 = { + email = "mlieberman85@gmail.com"; + github = "mlieberman85"; + githubId = 622577; + name = "Michael Lieberman"; + }; + mmahut = { + email = "marek.mahut@gmail.com"; + github = "mmahut"; + githubId = 104795; + name = "Marek Mahut"; + }; + mmai = { + email = "henri.bourcereau@gmail.com"; + github = "mmai"; + githubId = 117842; + name = "Henri Bourcereau"; + }; + mmilata = { + email = "martin@martinmilata.cz"; + github = "mmilata"; + githubId = 85857; + name = "Martin Milata"; + }; + mmlb = { + email = "manny@peekaboo.mmlb.icu"; + github = "mmlb"; + githubId = 708570; + name = "Manuel Mendez"; + }; + mnacamura = { + email = "m.nacamura@gmail.com"; + github = "mnacamura"; + githubId = 45770; + name = "Mitsuhiro Nakamura"; + }; + moaxcp = { + email = "moaxcp@gmail.com"; + github = "moaxcp"; + githubId = 7831184; + name = "John Mercier"; + }; + modulistic = { + email = "modulistic@gmail.com"; + github = "modulistic"; + githubId = 1902456; + name = "Pablo Costa"; + }; + mog = { + email = "mog-lists@rldn.net"; + github = "mogorman"; + githubId = 64710; + name = "Matthew O'Gorman"; + }; + Mogria = { + email = "m0gr14@gmail.com"; + github = "mogria"; + githubId = 754512; + name = "Mogria"; + }; + monsieurp = { + email = "monsieurp@gentoo.org"; + github = "monsieurp"; + githubId = 350116; + name = "Patrice Clement"; + }; + montag451 = { + email = "montag451@laposte.net"; + github = "montag451"; + githubId = 249317; + name = "montag451"; + }; + moosingin3space = { + email = "moosingin3space@gmail.com"; + github = "moosingin3space"; + githubId = 830082; + name = "Nathan Moos"; + }; + moredread = { + email = "code@apb.name"; + github = "moredread"; + githubId = 100848; + name = "AndrĂ©-Patrick Bubel"; + keys = [{ + longkeyid = "rsa8192/0x118CE7C424B45728"; + fingerprint = "4412 38AD CAD3 228D 876C 5455 118C E7C4 24B4 5728"; + }]; + }; + moretea = { + email = "maarten@moretea.nl"; + github = "moretea"; + githubId = 99988; + name = "Maarten Hoogendoorn"; + }; + MostAwesomeDude = { + email = "cds@corbinsimpson.com"; + github = "MostAwesomeDude"; + githubId = 118035; + name = "Corbin Simpson"; + }; + mothsart = { + email = "jerem.ferry@gmail.com"; + github = "mothsart"; + githubId = 10601196; + name = "JĂ©rĂ©mie Ferry"; + }; + mounium = { + email = "muoniurn@gmail.com"; + github = "mounium"; + githubId = 20026143; + name = "Katona LĂĄszlĂł"; + }; + MP2E = { + email = "MP2E@archlinux.us"; + github = "MP2E"; + githubId = 167708; + name = "Cray Elliott"; + }; + mpcsh = { + email = "m@mpc.sh"; + github = "mpcsh"; + githubId = 2894019; + name = "Mark Cohen"; + }; + mpickering = { + email = "matthewtpickering@gmail.com"; + github = "mpickering"; + githubId = 1216657; + name = "Matthew Pickering"; + }; + mpoquet = { + email = "millian.poquet@gmail.com"; + github = "mpoquet"; + githubId = 3502831; + name = "Millian Poquet"; + }; + mpscholten = { + email = "marc@mpscholten.de"; + github = "mpscholten"; + githubId = 2072185; + name = "Marc Scholten"; + }; + mpsyco = { + email = "fr.st-amour@gmail.com"; + github = "fstamour"; + githubId = 2881922; + name = "Francis St-Amour"; + }; + mtrsk = { + email = "marcos.schonfinkel@protonmail.com"; + github = "mtrsk"; + githubId = 16356569; + name = "Marcos Benevides"; + }; + mredaelli = { + email = "massimo@typish.io"; + github = "mredaelli"; + githubId = 3073833; + name = "Massimo Redaelli"; + }; + mrkkrp = { + email = "markkarpov92@gmail.com"; + github = "mrkkrp"; + githubId = 8165792; + name = "Mark Karpov"; + }; + mrmebelman = { + email = "burzakovskij@protonmail.com"; + github = "MrMebelMan"; + githubId = 15896005; + name = "Vladyslav Burzakovskyy"; + }; + mrVanDalo = { + email = "contact@ingolf-wagner.de"; + github = "mrVanDalo"; + githubId = 839693; + name = "Ingolf Wanger"; + }; + msackman = { + email = "matthew@wellquite.org"; + name = "Matthew Sackman"; + }; + mschneider = { + email = "markus.schneider.sic+nix@gmail.com"; + name = "Markus Schneider"; + }; + mschristiansen = { + email = "mikkel@rheosystems.com"; + github = "mschristiansen"; + githubId = 437005; + name = "Mikkel Christiansen"; + }; + mschuwalow = { + github = "mschuwalow"; + githubId = 16665913; + name = "Maxim Schuwalow"; + email = "maxim.schuwalow@gmail.com"; + }; + msiedlarek = { + email = "mikolaj@siedlarek.pl"; + github = "msiedlarek"; + githubId = 133448; + name = "MikoĆaj Siedlarek"; + }; + msm = { + email = "msm@tailcall.net"; + github = "msm-code"; + githubId = 7026881; + name = "JarosĆaw Jedynak"; + }; + mstarzyk = { + email = "mstarzyk@gmail.com"; + github = "mstarzyk"; + githubId = 111304; + name = "Maciek Starzyk"; + }; + msteen = { + email = "emailmatthijs@gmail.com"; + github = "msteen"; + githubId = 788953; + name = "Matthijs Steen"; + }; + mt-caret = { + email = "mtakeda.enigsol@gmail.com"; + github = "mt-caret"; + githubId = 4996739; + name = "Masayuki Takeda"; + }; + MtP = { + email = "marko.nixos@poikonen.de"; + github = "MtP76"; + githubId = 2176611; + name = "Marko Poikonen"; + }; + mtreskin = { + email = "zerthurd@gmail.com"; + github = "Zert"; + githubId = 39034; + name = "Max Treskin"; + }; + mudri = { + email = "lamudri@gmail.com"; + github = "laMudri"; + githubId = 5139265; + name = "James Wood"; + }; + muflax = { + email = "mail@muflax.com"; + github = "muflax"; + githubId = 69918; + name = "Stefan Dorn"; + }; + multun = { + email = "victor.collod@epita.fr"; + github = "multun"; + githubId = 5047140; + name = "Victor Collod"; + }; + mvnetbiz = { + email = "mvnetbiz@gmail.com"; + github = "mvnetbiz"; + githubId = 6455574; + name = "Matt Votava"; + }; + mwilsoninsight = { + email = "max.wilson@insight.com"; + github = "mwilsoninsight"; + githubId = 47782621; + name = "Max Wilson"; + }; + myrl = { + email = "myrl.0xf@gmail.com"; + github = "myrl"; + githubId = 9636071; + name = "Myrl Hex"; + }; + nadrieril = { + email = "nadrieril@gmail.com"; + github = "nadrieril"; + githubId = 6783654; + name = "Nadrieril Feneanar"; + }; + nalbyuites = { + email = "ashijit007@gmail.com"; + github = "nalbyuites"; + githubId = 1009523; + name = "Ashijit Pramanik"; + }; + namore = { + email = "namor@hemio.de"; + github = "namore"; + githubId = 1222539; + name = "Roman Naumann"; + }; + nand0p = { + email = "nando@hex7.com"; + github = "nand0p"; + githubId = 1916245; + name = "Fernando Jose Pando"; + }; + Nate-Devv = { + email = "natedevv@gmail.com"; + name = "Nathan Moore"; + }; + nathan-gs = { + email = "nathan@nathan.gs"; + github = "nathan-gs"; + githubId = 330943; + name = "Nathan Bijnens"; + }; + nathyong = { + email = "nathyong@noreply.github.com"; + github = "nathyong"; + githubId = 818502; + name = "Nathan Yong"; + }; + nckx = { + email = "github@tobias.gr"; + github = "nckx"; + githubId = 364510; + name = "Tobias Geerinckx-Rice"; + }; + neeasade = { + email = "nathanisom27@gmail.com"; + github = "neeasade"; + githubId = 3747396; + name = "Nathan Isom"; + }; + neonfuz = { + email = "neonfuz@gmail.com"; + github = "neonfuz"; + githubId = 2590830; + name = "Sage Raflik"; + }; + nequissimus = { + email = "tim@nequissimus.com"; + github = "nequissimus"; + githubId = 628342; + name = "Tim Steinbach"; + }; + netixx = { + email = "dev.espinetfrancois@gmail.com"; + github = "netixx"; + githubId = 1488603; + name = "François Espinet"; + }; + nikitavoloboev = { + email = "nikita.voloboev@gmail.com"; + github = "nikitavoloboev"; + githubId = 6391776; + name = "Nikita Voloboev"; + }; + nfjinjing = { + email = "nfjinjing@gmail.com"; + name = "Jinjing Wang"; + }; + nh2 = { + email = "mail@nh2.me"; + github = "nh2"; + githubId = 399535; + name = "Niklas HambĂŒchen"; + }; + nhooyr = { + email = "anmol@aubble.com"; + github = "nhooyr"; + githubId = 10180857; + name = "Anmol Sethi"; + }; + nickhu = { + email = "me@nickhu.co.uk"; + github = "nickhu"; + githubId = 450276; + name = "Nick Hu"; + }; + nicknovitski = { + email = "nixpkgs@nicknovitski.com"; + github = "nicknovitski"; + githubId = 151337; + name = "Nick Novitski"; + }; + nico202 = { + email = "anothersms@gmail.com"; + github = "nico202"; + githubId = 8214542; + name = "NicolĂČ Balzarotti"; + }; + NikolaMandic = { + email = "nikola@mandic.email"; + github = "NikolaMandic"; + githubId = 4368690; + name = "Ratko Mladic"; + }; + nilp0inter = { + email = "robertomartinezp@gmail.com"; + github = "nilp0inter"; + githubId = 1224006; + name = "Roberto Abdelkader MartĂnez PĂ©rez"; + }; + ninjatrappeur = { + email = "felix@alternativebit.fr"; + github = "ninjatrappeur"; + githubId = 1219785; + name = "FĂ©lix Baylac-JacquĂ©"; + }; + nioncode = { + email = "nioncode+github@gmail.com"; + github = "nioncode"; + githubId = 3159451; + name = "Nicolas Schneider"; + }; + nipav = { + email = "niko.pavlinek@gmail.com"; + github = "nipav"; + githubId = 16385648; + name = "Niko Pavlinek"; + }; + nixy = { + email = "nixy@nixy.moe"; + github = "nixy"; + githubId = 7588406; + name = "Andrew R. M."; + }; + nloomans = { + email = "noah@nixos.noahloomans.com"; + github = "nloomans"; + githubId = 7829481; + name = "Noah Loomans"; + }; + nmattia = { + email = "nicolas@nmattia.com"; + github = "nmattia"; + githubId = 6930756; + name = "Nicolas Mattia"; + }; + nocent = { + email = "nocent@protonmail.ch"; + github = "nocent"; + githubId = 25505957; + name = "nocent"; + }; + nocoolnametom = { + email = "nocoolnametom@gmail.com"; + github = "nocoolnametom"; + githubId = 810877; + name = "Tom Doggett"; + }; + nomeata = { + email = "mail@joachim-breitner.de"; + github = "nomeata"; + githubId = 148037; + name = "Joachim Breitner"; + }; + noneucat = { + email = "andy@lolc.at"; + github = "noneucat"; + githubId = 40049608; + name = "Andy Chun"; + }; + notthemessiah = { + email = "brian.cohen.88@gmail.com"; + github = "notthemessiah"; + githubId = 2946283; + name = "Brian Cohen"; + }; + novoxudonoser = { + email = "radnovox@gmail.com"; + github = "novoxudonoser"; + githubId = 6052922; + name = "Kirill Struokov"; + }; + np = { + email = "np.nix@nicolaspouillard.fr"; + github = "np"; + githubId = 5548; + name = "Nicolas Pouillard"; + }; + nphilou = { + email = "nphilou@gmail.com"; + github = "nphilou"; + githubId = 9939720; + name = "Philippe Nguyen"; + }; + nrdxp = { + email = "tim.deh@pm.me"; + github = "nrdxp"; + githubId = 34083928; + name = "Tim DeHerrera"; + }; + nshalman = { + email = "nahamu@gmail.com"; + github = "nshalman"; + githubId = 20391; + name = "Nahum Shalman"; + }; + nslqqq = { + email = "nslqqq@gmail.com"; + name = "Nikita Mikhailov"; + }; + nthorne = { + email = "notrupertthorne@gmail.com"; + github = "nthorne"; + githubId = 1839979; + name = "Niklas Thörne"; + }; + numinit = { + email = "me@numin.it"; + github = "numinit"; + githubId = 369111; + name = "Morgan Jones"; + }; + numkem = { + name = "Sebastien Bariteau"; + email = "numkem@numkem.org"; + github = "numkem"; + githubId = 332423; + }; + nyanloutre = { + email = "paul@nyanlout.re"; + github = "nyanloutre"; + githubId = 7677321; + name = "Paul Trehiou"; + }; + nyarly = { + email = "nyarly@gmail.com"; + github = "nyarly"; + githubId = 127548; + name = "Judson Lester"; + }; + nzhang-zh = { + email = "n.zhang.hp.au@gmail.com"; + github = "nzhang-zh"; + githubId = 30825096; + name = "Ning Zhang"; + }; + obadz = { + email = "obadz-nixos@obadz.com"; + github = "obadz"; + githubId = 3359345; + name = "obadz"; + }; + ocharles = { + email = "ollie@ocharles.org.uk"; + github = "ocharles"; + githubId = 20878; + name = "Oliver Charles"; + }; + odi = { + email = "oliver.dunkl@gmail.com"; + github = "odi"; + githubId = 158758; + name = "Oliver Dunkl"; + }; + offline = { + email = "jaka@x-truder.net"; + github = "offlinehacker"; + githubId = 585547; + name = "Jaka Hudoklin"; + }; + oida = { + email = "oida@posteo.de"; + github = "oida"; + githubId = 7249506; + name = "oida"; + }; + okasu = { + email = "oka.sux@gmail.com"; + name = "Okasu"; + }; + olcai = { + email = "dev@timan.info"; + github = "olcai"; + githubId = 20923; + name = "Erik Timan"; + }; + olejorgenb = { + email = "olejorgenb@yahoo.no"; + github = "olejorgenb"; + githubId = 72201; + name = "Ole JĂžrgen BrĂžnner"; + }; + olynch = { + email = "owen@olynch.me"; + github = "olynch"; + githubId = 4728903; + name = "Owen Lynch"; + }; + omnipotententity = { + email = "omnipotententity@gmail.com"; + github = "omnipotententity"; + githubId = 1538622; + name = "Michael Reilly"; + }; + OPNA2608 = { + email = "christoph.neidahl@gmail.com"; + github = "OPNA2608"; + githubId = 23431373; + name = "Christoph Neidahl"; + }; + orbekk = { + email = "kjetil.orbekk@gmail.com"; + github = "orbekk"; + githubId = 19862; + name = "KJ Ărbekk"; + }; + orbitz = { + email = "mmatalka@gmail.com"; + github = "orbitz"; + githubId = 75299; + name = "Malcolm Matalka"; + }; + orivej = { + email = "orivej@gmx.fr"; + github = "orivej"; + githubId = 101514; + name = "Orivej Desh"; + }; + oro = { + email = "marco@orovecchia.at"; + github = "oro"; + githubId = 357005; + name = "Marco Orovecchia"; + }; + osener = { + email = "ozan@ozansener.com"; + github = "osener"; + githubId = 111265; + name = "Ozan Sener"; + }; + otwieracz = { + email = "slawek@otwiera.cz"; + github = "otwieracz"; + githubId = 108072; + name = "Slawomir Gonet"; + }; + oxalica = { + email = "oxalicc@pm.me"; + github = "oxalica"; + githubId = 14816024; + name = "oxalica"; + keys = [{ + longkeyid = "rsa4096/0xCED392DE0C483D00"; + fingerprint = "5CB0 E9E5 D5D5 71F5 7F54 0FEA CED3 92DE 0C48 3D00"; + }]; + }; + oxij = { + email = "oxij@oxij.org"; + github = "oxij"; + githubId = 391919; + name = "Jan Malakhovski"; + keys = [{ + longkeyid = "rsa2048/0x0E6CA66E5C557AA8"; + fingerprint = "514B B966 B46E 3565 0508 86E8 0E6C A66E 5C55 7AA8"; + }]; + }; + oyren = { + email = "m.scheuren@oyra.eu"; + github = "oyren"; + githubId = 15930073; + name = "Moritz Scheuren"; + }; + pablovsky = { + email = "dealberapablo07@gmail.com"; + github = "pablo1107"; + githubId = 17091659; + name = "Pablo Andres Dealbera"; + }; + pacien = { + email = "b4gx3q.nixpkgs@pacien.net"; + github = "pacien"; + githubId = 1449319; + name = "Pacien Tran-Girard"; + }; + paddygord = { + email = "pgpatrickgordon@gmail.com"; + github = "paddygord"; + githubId = 10776658; + name = "Patrick Gordon"; + }; + paholg = { + email = "paho@paholg.com"; + github = "paholg"; + githubId = 4908217; + name = "Paho Lurie-Gregg"; + }; + pakhfn = { + email = "pakhfn@gmail.com"; + github = "pakhfn"; + githubId = 11016164; + name = "Fedor Pakhomov"; + }; + paluh = { + email = "paluho@gmail.com"; + github = "paluh"; + githubId = 190249; + name = "Tomasz Rybarczyk"; + }; + pamplemousse = { + email = "xav.maso@gmail.com"; + github = "Pamplemousse"; + githubId = 2647236; + name = "Xavier Maso"; + }; + panaeon = { + email = "vitalii.voloshyn@gmail.com"; + github = "panaeon"; + githubId = 686076; + name = "Vitalii Voloshyn"; + }; + pandaman = { + email = "kointosudesuyo@infoseek.jp"; + github = "pandaman64"; + githubId = 1788628; + name = "pandaman"; + }; + paperdigits = { + email = "mica@silentumbrella.com"; + github = "paperdigits"; + githubId = 71795; + name = "Mica Semrick"; + }; + paraseba = { + email = "paraseba@gmail.com"; + github = "paraseba"; + githubId = 20792; + name = "Sebastian Galkin"; + }; + pashashocky = { + email = "pashashocky@gmail.com"; + github = "pashashocky"; + githubId = 673857; + name = "Pash Shocky"; + }; + pashev = { + email = "pashev.igor@gmail.com"; + github = "ip1981"; + githubId = 131844; + name = "Igor Pashev"; + }; + patryk27 = { + email = "wychowaniec.patryk@gmail.com"; + github = "Patryk27"; + githubId = 3395477; + name = "Patryk Wychowaniec"; + keys = [{ + longkeyid = "rsa4096/0xF62547D075E09767"; + fingerprint = "196A BFEC 6A1D D1EC 7594 F8D1 F625 47D0 75E0 9767"; + }]; + }; + patternspandemic = { + email = "patternspandemic@live.com"; + github = "patternspandemic"; + githubId = 15645854; + name = "Brad Christensen"; + }; + pawelpacana = { + email = "pawel.pacana@gmail.com"; + github = "pawelpacana"; + githubId = 116740; + name = "PaweĆ Pacana"; + }; + pbogdan = { + email = "ppbogdan@gmail.com"; + github = "pbogdan"; + githubId = 157610; + name = "Piotr Bogdan"; + }; + pcarrier = { + email = "pc@rrier.ca"; + github = "pcarrier"; + githubId = 8641; + name = "Pierre Carrier"; + }; + periklis = { + email = "theopompos@gmail.com"; + github = "periklis"; + githubId = 152312; + name = "Periklis Tsirakidis"; + }; + pesterhazy = { + email = "pesterhazy@gmail.com"; + github = "pesterhazy"; + githubId = 106328; + name = "Paulus Esterhazy"; + }; + petabyteboy = { + email = "me@pbb.lc"; + github = "petabyteboy"; + githubId = 3250809; + name = "Milan PĂ€ssler"; + }; + petercommand = { + email = "petercommand@gmail.com"; + github = "petercommand"; + githubId = 1260660; + name = "petercommand"; + }; + peterhoeg = { + email = "peter@hoeg.com"; + github = "peterhoeg"; + githubId = 722550; + name = "Peter Hoeg"; + }; + peterromfeldhk = { + email = "peter.romfeld.hk@gmail.com"; + github = "peterromfeldhk"; + githubId = 5515707; + name = "Peter Romfeld"; + }; + petersjt014 = { + email = "petersjt014@gmail.com"; + github = "petersjt014"; + githubId = 29493551; + name = "Josh Peters"; + }; + peti = { + email = "simons@cryp.to"; + github = "peti"; + githubId = 28323; + name = "Peter Simons"; + }; + philandstuff = { + email = "philip.g.potter@gmail.com"; + github = "philandstuff"; + githubId = 581269; + name = "Philip Potter"; + }; + phile314 = { + email = "nix@314.ch"; + github = "phile314"; + githubId = 1640697; + name = "Philipp Hausmann"; + }; + Phlogistique = { + email = "noe.rubinstein@gmail.com"; + github = "Phlogistique"; + githubId = 421510; + name = "NoĂ© Rubinstein"; + }; + phreedom = { + email = "phreedom@yandex.ru"; + github = "phreedom"; + githubId = 62577; + name = "Evgeny Egorochkin"; + }; + phryneas = { + email = "mail@lenzw.de"; + github = "phryneas"; + githubId = 4282439; + name = "Lenz Weber"; + }; + phunehehe = { + email = "phunehehe@gmail.com"; + github = "phunehehe"; + githubId = 627831; + name = "Hoang Xuan Phu"; + }; + pierrechevalier83 = { + email = "pierrechevalier83@gmail.com"; + github = "pierrechevalier83"; + githubId = 5790907; + name = "Pierre Chevalier"; + }; + pierreis = { + email = "pierre@pierre.is"; + github = "pierreis"; + githubId = 203973; + name = "Pierre Matri"; + }; + pierrer = { + email = "pierrer@pi3r.be"; + github = "pierrer"; + githubId = 93115; + name = "Pierre Radermecker"; + }; + pierron = { + email = "nixos@nbp.name"; + github = "nbp"; + githubId = 1179566; + name = "Nicolas B. Pierron"; + }; + pingiun = { + email = "nixos@pingiun.com"; + github = "pingiun"; + githubId = 1576660; + name = "Jelle Besseling"; + keys = [{ + longkeyid = "rsa4096/0x9712452E8BE3372E"; + fingerprint = "A3A3 65AE 16ED A7A0 C29C 88F1 9712 452E 8BE3 372E"; + }]; + }; + piotr = { + email = "ppietrasa@gmail.com"; + name = "Piotr Pietraszkiewicz"; + }; + pjbarnoy = { + email = "pjbarnoy@gmail.com"; + github = "pjbarnoy"; + githubId = 119460; + name = "Perry Barnoy"; + }; + pjones = { + email = "pjones@devalot.com"; + github = "pjones"; + githubId = 3737; + name = "Peter Jones"; + }; + pkmx = { + email = "pkmx.tw@gmail.com"; + github = "pkmx"; + githubId = 610615; + name = "Chih-Mao Chen"; + }; + plchldr = { + email = "mail@oddco.de"; + github = "plchldr"; + githubId = 11639001; + name = "Jonas Beyer"; + }; + plcplc = { + email = "plcplc@gmail.com"; + github = "plcplc"; + githubId = 358550; + name = "Philip Lykke Carlsen"; + }; + plumps = { + email = "maks.bronsky@web.de"; + github = "plumps"; + githubId = 13000278; + name = "Maksim Bronsky"; + }; + pmahoney = { + email = "pat@polycrystal.org"; + github = "pmahoney"; + githubId = 103822; + name = "Patrick Mahoney"; + }; + pmeunier = { + email = "pierre-etienne.meunier@inria.fr"; + github = "P-E-Meunier"; + githubId = 17021304; + name = "Pierre-Ătienne Meunier"; + }; + pmiddend = { + email = "pmidden@secure.mailbox.org"; + github = "pmiddend"; + githubId = 178496; + name = "Philipp Middendorf"; + }; + pmyjavec = { + email = "pauly@myjavec.com"; + github = "pmyjavec"; + githubId = 315096; + name = "Pauly Myjavec"; + }; + pnelson = { + email = "me@pnelson.ca"; + github = "pnelson"; + githubId = 579773; + name = "Philip Nelson"; + }; + pneumaticat = { + email = "kevin@potatofrom.space"; + github = "pneumaticat"; + githubId = 11365056; + name = "Kevin Liu"; + }; + polyrod = { + email = "dc1mdp@gmail.com"; + github = "polyrod"; + githubId = 24878306; + name = "Maurizio Di Pietro"; + }; + pombeirp = { + email = "nix@endgr.33mail.com"; + github = "PombeirP"; + githubId = 138074; + name = "Pedro Pombeiro"; + }; + pradeepchhetri = { + email = "pradeep.chhetri89@gmail.com"; + github = "pradeepchhetri"; + githubId = 2232667; + name = "Pradeep Chhetri"; + }; + pradyuman = { + email = "me@pradyuman.co"; + github = "pradyuman"; + githubId = 9904569; + name = "Pradyuman Vig"; + keys = [{ + longkeyid = "rsa4096/4F74D5361C4CA31E"; + fingerprint = "240B 57DE 4271 2480 7CE3 EAC8 4F74 D536 1C4C A31E"; + }]; + }; + prikhi = { + email = "pavan.rikhi@gmail.com"; + github = "prikhi"; + githubId = 1304102; + name = "Pavan Rikhi"; + }; + primeos = { + email = "dev.primeos@gmail.com"; + github = "primeos"; + githubId = 7537109; + name = "Michael Weiss"; + keys = [ + { + longkeyid = "ed25519/0x130826A6C2A389FD"; # Git only + fingerprint = "86A7 4A55 07D0 58D1 322E 37FD 1308 26A6 C2A3 89FD"; + } + { + longkeyid = "rsa3072/0xBCA9943DD1DF4C04"; # Email, etc. + fingerprint = "AF85 991C C950 49A2 4205 1933 BCA9 943D D1DF 4C04"; + } + ]; + }; + Profpatsch = { + email = "mail@profpatsch.de"; + github = "Profpatsch"; + githubId = 3153638; + name = "Profpatsch"; + }; + proglodyte = { + email = "proglodyte23@gmail.com"; + github = "proglodyte"; + githubId = 18549627; + name = "Proglodyte"; + }; + protoben = { + email = "protob3n@gmail.com"; + github = "protoben"; + githubId = 4633847; + name = "Ben Hamlin"; + }; + prusnak = { + email = "pavol@rusnak.io"; + github = "prusnak"; + githubId = 42201; + name = "Pavol Rusnak"; + keys = [{ + longkeyid = "rsa4096/0x91F3B339B9A02A3D"; + fingerprint = "86E6 792F C27B FD47 8860 C110 91F3 B339 B9A0 2A3D"; + }]; + }; + pshendry = { + email = "paul@pshendry.com"; + github = "pshendry"; + githubId = 1829032; + name = "Paul Hendry"; + }; + psibi = { + email = "sibi@psibi.in"; + github = "psibi"; + githubId = 737477; + name = "Sibi"; + }; + pstn = { + email = "philipp@xndr.de"; + name = "Philipp SteinpaĂ"; + }; + pSub = { + email = "mail@pascal-wittmann.de"; + github = "pSub"; + githubId = 83842; + name = "Pascal Wittmann"; + }; + psyanticy = { + email = "iuns@outlook.fr"; + github = "PsyanticY"; + githubId = 20524473; + name = "Psyanticy"; + }; + ptival = { + email = "valentin.robert.42@gmail.com"; + github = "Ptival"; + githubId = 478606; + name = "Valentin Robert"; + }; + ptrhlm = { + email = "ptrhlm0@gmail.com"; + github = "ptrhlm"; + githubId = 9568176; + name = "Piotr Halama"; + }; + puckipedia = { + email = "puck@puckipedia.com"; + github = "puckipedia"; + githubId = 488734; + name = "Puck Meerburg"; + }; + puffnfresh = { + email = "brian@brianmckenna.org"; + github = "puffnfresh"; + githubId = 37715; + name = "Brian McKenna"; + }; + puzzlewolf = { + email = "nixos@nora.pink"; + github = "puzzlewolf"; + githubId = 23097564; + name = "Nora Widdecke"; + }; + pxc = { + email = "patrick.callahan@latitudeengineering.com"; + name = "Patrick Callahan"; + }; + pyrolagus = { + email = "pyrolagus@gmail.com"; + github = "PyroLagus"; + githubId = 4579165; + name = "Danny Bautista"; + }; + peelz = { + email = "peelz.dev+nixpkgs@gmail.com"; + github = "louistakepillz"; + githubId = 920910; + name = "peelz"; + }; + q3k = { + email = "q3k@q3k.org"; + github = "q3k"; + githubId = 315234; + name = "Serge Bazanski"; + }; + qknight = { + email = "js@lastlog.de"; + github = "qknight"; + githubId = 137406; + name = "Joachim Schiele"; + }; + qoelet = { + email = "kenny@machinesung.com"; + github = "qoelet"; + githubId = 115877; + name = "Kenny Shen"; + }; + qyliss = { + email = "hi@alyssa.is"; + github = "alyssais"; + githubId = 2768870; + name = "Alyssa Ross"; + keys = [{ + longkeyid = "rsa4096/736CCDF9EF51BD97"; + fingerprint = "7573 56D7 79BB B888 773E 415E 736C CDF9 EF51 BD97"; + }]; + }; + raboof = { + email = "arnout@bzzt.net"; + github = "raboof"; + githubId = 131856; + name = "Arnout Engelen"; + }; + rafaelgg = { + email = "rafael.garcia.gallego@gmail.com"; + github = "rafaelgg"; + githubId = 1016742; + name = "Rafael GarcĂa"; + }; + raquelgb = { + email = "raquel.garcia.bautista@gmail.com"; + github = "raquelgb"; + githubId = 1246959; + name = "Raquel GarcĂa"; + }; + ragge = { + email = "r.dahlen@gmail.com"; + github = "ragnard"; + githubId = 882; + name = "Ragnar Dahlen"; + }; + ralith = { + email = "ben.e.saunders@gmail.com"; + github = "ralith"; + githubId = 104558; + name = "Benjamin Saunders"; + }; + ramkromberg = { + email = "ramkromberg@mail.com"; + github = "ramkromberg"; + githubId = 14829269; + name = "Ram Kromberg"; + }; + rardiol = { + email = "ricardo.ardissone@gmail.com"; + github = "rardiol"; + githubId = 11351304; + name = "Ricardo Ardissone"; + }; + rasendubi = { + email = "rasen.dubi@gmail.com"; + github = "rasendubi"; + githubId = 1366419; + name = "Alexey Shmalko"; + }; + raskin = { + email = "7c6f434c@mail.ru"; + github = "7c6f434c"; + githubId = 1891350; + name = "Michael Raskin"; + }; + ravloony = { + email = "ravloony@gmail.com"; + name = "Tom Macdonald"; + }; + rawkode = { + email = "david.andrew.mckay@gmail.com"; + github = "rawkode"; + githubId = 145816; + name = "David McKay"; + }; + razvan = { + email = "razvan.panda@gmail.com"; + github = "razvan-panda"; + githubId = 1758708; + name = "RÄzvan Flavius Panda"; + }; + rbasso = { + email = "rbasso@sharpgeeks.net"; + github = "rbasso"; + githubId = 16487165; + name = "Rafael Basso"; + }; + rbrewer = { + email = "rwb123@gmail.com"; + github = "rbrewer123"; + githubId = 743058; + name = "Rob Brewer"; + }; + rdnetto = { + email = "rdnetto@gmail.com"; + github = "rdnetto"; + githubId = 1973389; + name = "Reuben D'Netto"; + }; + redbaron = { + email = "ivanov.maxim@gmail.com"; + github = "redbaron"; + githubId = 16624; + name = "Maxim Ivanov"; + }; + redfish64 = { + email = "engler@gmail.com"; + github = "redfish64"; + githubId = 1922770; + name = "Tim Engler"; + }; + redvers = { + email = "red@infect.me"; + github = "redvers"; + githubId = 816465; + name = "Redvers Davies"; + }; + refnil = { + email = "broemartino@gmail.com"; + github = "refnil"; + githubId = 1142322; + name = "Martin Lavoie"; + }; + regnat = { + email = "regnat@regnat.ovh"; + github = "regnat"; + githubId = 7226587; + name = "ThĂ©ophane Hufschmitt"; + }; + relrod = { + email = "ricky@elrod.me"; + github = "relrod"; + githubId = 43930; + name = "Ricky Elrod"; + }; + rembo10 = { + email = "rembo10@users.noreply.github.com"; + github = "rembo10"; + githubId = 801525; + name = "rembo10"; + }; + renatoGarcia = { + email = "fgarcia.renato@gmail.com"; + github = "renatoGarcia"; + githubId = 220211; + name = "Renato Garcia"; + }; + rencire = { + email = "546296+rencire@users.noreply.github.com"; + github = "rencire"; + githubId = 546296; + name = "Eric Ren"; + }; + renzo = { + email = "renzocarbonara@gmail.com"; + github = "k0001"; + githubId = 3302; + name = "Renzo Carbonara"; + }; + retrry = { + email = "retrry@gmail.com"; + github = "retrry"; + githubId = 500703; + name = "Tadas BarzdĆŸius"; + }; + rexim = { + email = "reximkut@gmail.com"; + github = "rexim"; + githubId = 165283; + name = "Alexey Kutepov"; + }; + rht = { + email = "rhtbot@protonmail.com"; + github = "rht"; + githubId = 395821; + name = "rht"; + }; + richardipsum = { + email = "richardipsum@fastmail.co.uk"; + github = "richardipsum"; + githubId = 10631029; + name = "Richard Ipsum"; + }; + rick68 = { + email = "rick68@gmail.com"; + github = "rick68"; + githubId = 42619; + name = "Wei-Ming Yang"; + }; + rickynils = { + email = "rickynils@gmail.com"; + github = "rickynils"; + githubId = 16779; + name = "Rickard Nilsson"; + }; + rika = { + email = "rika@paymentswit.ch"; + github = "NekomimiScience"; + githubId = 1810487; + name = "Rika"; + }; + rileyinman = { + email = "rileyminman@gmail.com"; + github = "rileyinman"; + githubId = 37246692; + name = "Riley Inman"; + }; + ris = { + email = "code@humanleg.org.uk"; + github = "risicle"; + githubId = 807447; + name = "Robert Scott"; + }; + risson = { + name = "Marc Schmitt"; + email = "marc.schmitt@risson.space"; + github = "rissson"; + githubId = 18313093; + keys = [ + { longkeyid = "rsa4096/0xF6FD87B15C263EC9"; + fingerprint = "8A0E 6A7C 08AB B9DE 67DE 2A13 F6FD 87B1 5C26 3EC9"; + } + { longkeyid = "ed25519/0xBBB7A6801DF1E03F"; + fingerprint = "C0A7 A9BB 115B C857 4D75 EA99 BBB7 A680 1DF1 E03F"; + } + ]; + }; + rittelle = { + email = "rittelle@posteo.de"; + github = "rittelle"; + githubId = 33598633; + name = "Lennart Rittel"; + }; + rixed = { + email = "rixed-github@happyleptic.org"; + github = "rixed"; + githubId = 449990; + name = "Cedric Cellier"; + }; + rkoe = { + email = "rk@simple-is-better.org"; + github = "rkoe"; + githubId = 2507744; + name = "Roland Koebler"; + }; + rkrzr = { + email = "ops+nixpkgs@channable.com"; + github = "rkrzr"; + githubId = 82817; + name = "Robert Kreuzer"; + }; + rlupton20 = { + email = "richard.lupton@gmail.com"; + github = "rlupton20"; + githubId = 13752145; + name = "Richard Lupton"; + }; + rnhmjoj = { + email = "rnhmjoj@inventati.org"; + github = "rnhmjoj"; + githubId = 2817565; + name = "Michele Guerini Rocco"; + keys = [{ + longkeyid = "ed25519/0xBFBAF4C975F76450"; + fingerprint = "92B2 904F D293 C94D C4C9 3E6B BFBA F4C9 75F7 6450"; + }]; + }; + roastiek = { + email = "r.dee.b.b@gmail.com"; + github = "roastiek"; + githubId = 422802; + name = "Rostislav BeneĆĄ"; + }; + rob = { + email = "rob.vermaas@gmail.com"; + github = "rbvermaa"; + githubId = 353885; + name = "Rob Vermaas"; + }; + robaca = { + email = "carsten@r0hrbach.de"; + github = "robaca"; + githubId = 580474; + name = "Carsten Rohrbach"; + }; + robberer = { + email = "robberer@freakmail.de"; + github = "robberer"; + githubId = 6204883; + name = "Longrin Wischnewski"; + }; + robbinch = { + email = "robbinch33@gmail.com"; + github = "robbinch"; + githubId = 12312980; + name = "Robbin C."; + }; + roberth = { + email = "nixpkgs@roberthensing.nl"; + github = "roberth"; + githubId = 496447; + name = "Robert Hensing"; + }; + robertodr = { + email = "roberto.diremigio@gmail.com"; + github = "robertodr"; + githubId = 3708689; + name = "Roberto Di Remigio"; + }; + robgssp = { + email = "robgssp@gmail.com"; + github = "robgssp"; + githubId = 521306; + name = "Rob Glossop"; + }; + roblabla = { + email = "robinlambertz+dev@gmail.com"; + github = "roblabla"; + githubId = 1069318; + name = "Robin Lambertz"; + }; + roconnor = { + email = "roconnor@theorem.ca"; + github = "roconnor"; + githubId = 852967; + name = "Russell O'Connor"; + }; + roelvandijk = { + email = "roel@lambdacube.nl"; + github = "roelvandijk"; + githubId = 710906; + name = "Roel van Dijk"; + }; + romildo = { + email = "malaquias@gmail.com"; + github = "romildo"; + githubId = 1217934; + name = "JosĂ© Romildo Malaquias"; + }; + rongcuid = { + email = "rongcuid@outlook.com"; + github = "rongcuid"; + githubId = 1312525; + name = "Rongcui Dong"; + }; + roosemberth = { + email = "roosembert.palacios+nixpkgs@gmail.com"; + github = "roosemberth"; + githubId = 3621083; + name = "Roosembert (Roosemberth) Palacios"; + }; + royneary = { + email = "christian@ulrich.earth"; + github = "royneary"; + githubId = 1942810; + name = "Christian Ulrich"; + }; + rpearce = { + email = "me@robertwpearce.com"; + github = "rpearce"; + githubId = 592876; + name = "Robert W. Pearce"; + }; + rprospero = { + email = "rprospero+nix@gmail.com"; + github = "rprospero"; + githubId = 1728853; + name = "Adam Washington"; + }; + rps = { + email = "robbpseaton@gmail.com"; + github = "robertseaton"; + githubId = 221121; + name = "Robert P. Seaton"; + }; + rszibele = { + email = "richard@szibele.com"; + github = "rszibele"; + githubId = 1387224; + name = "Richard Szibele"; + }; + rtreffer = { + email = "treffer+nixos@measite.de"; + github = "rtreffer"; + githubId = 61306; + name = "Rene Treffer"; + }; + rushmorem = { + email = "rushmore@webenchanter.com"; + github = "rushmorem"; + githubId = 4958190; + name = "Rushmore Mushambi"; + }; + ruuda = { + email = "dev+nix@veniogames.com"; + github = "ruuda"; + githubId = 506953; + name = "Ruud van Asseldonk"; + }; + rvl = { + email = "dev+nix@rodney.id.au"; + github = "rvl"; + githubId = 1019641; + name = "Rodney Lorrimar"; + }; + rvlander = { + email = "rvlander@gaetanandre.eu"; + github = "rvlander"; + githubId = 5236428; + name = "GaĂ«tan AndrĂ©"; + }; + rvolosatovs = { + email = "rvolosatovs@riseup.net"; + github = "rvolosatovs"; + githubId = 12877905; + name = "Roman Volosatovs"; + }; + ryanartecona = { + email = "ryanartecona@gmail.com"; + github = "ryanartecona"; + githubId = 889991; + name = "Ryan Artecona"; + }; + ryanorendorff = { + email = "12442942+ryanorendorff@users.noreply.github.com"; + github = "ryanorendorff"; + githubId = 12442942; + name = "Ryan Orendorff"; + }; + ryansydnor = { + email = "ryan.t.sydnor@gmail.com"; + github = "ryansydnor"; + githubId = 1832096; + name = "Ryan Sydnor"; + }; + ryantm = { + email = "ryan@ryantm.com"; + github = "ryantm"; + githubId = 4804; + name = "Ryan Mulligan"; + }; + ryantrinkle = { + email = "ryan.trinkle@gmail.com"; + github = "ryantrinkle"; + githubId = 1156448; + name = "Ryan Trinkle"; + }; + rybern = { + email = "ryan.bernstein@columbia.edu"; + github = "rybern"; + githubId = 4982341; + name = "Ryan Bernstein"; + }; + rycee = { + email = "robert@rycee.net"; + github = "rycee"; + githubId = 798147; + name = "Robert Helgesson"; + keys = [{ + longkeyid = "rsa4096/0x3573356C25C424D4"; + fingerprint = "36CA CF52 D098 CC0E 78FB 0CB1 3573 356C 25C4 24D4"; + }]; + }; + ryneeverett = { + email = "ryneeverett@gmail.com"; + github = "ryneeverett"; + githubId = 3280280; + name = "Ryne Everett"; + }; + rzetterberg = { + email = "richard.zetterberg@gmail.com"; + github = "rzetterberg"; + githubId = 766350; + name = "Richard Zetterberg"; + }; + s1341 = { + email = "s1341@shmarya.net"; + name = "Shmarya Rubenstein"; + github = "s1341"; + githubId = 5682183; + }; + samdoshi = { + email = "sam@metal-fish.co.uk"; + github = "samdoshi"; + githubId = 112490; + name = "Sam Doshi"; + }; + samdroid-apps = { + email = "sam@sam.today"; + github = "samdroid-apps"; + githubId = 6022042; + name = "Sam Parkinson"; + }; + samlich = { + email = "nixos@samli.ch"; + github = "samlich"; + githubId = 1349989; + name = "samlich"; + keys = [{ + longkeyid = "rsa4096/B1568953B1939F1C"; + fingerprint = "AE8C 0836 FDF6 3FFC 9580 C588 B156 8953 B193 9F1C"; + }]; + }; + samrose = { + email = "samuel.rose@gmail.com"; + github = "samrose"; + githubId = 115821; + name = "Sam Rose"; + }; + samueldr = { + email = "samuel@dionne-riel.com"; + github = "samueldr"; + githubId = 132835; + name = "Samuel Dionne-Riel"; + }; + samuelrivas = { + email = "samuelrivas@gmail.com"; + github = "samuelrivas"; + githubId = 107703; + name = "Samuel Rivas"; + }; + sander = { + email = "s.vanderburg@tudelft.nl"; + github = "svanderburg"; + githubId = 1153271; + name = "Sander van der Burg"; + }; + sargon = { + email = "danielehlers@mindeye.net"; + github = "sargon"; + githubId = 178904; + name = "Daniel Ehlers"; + }; + saschagrunert = { + email = "mail@saschagrunert.de"; + github = "saschagrunert"; + githubId = 695473; + name = "Sascha Grunert"; + }; + sauyon = { + email = "s@uyon.co"; + github = "sauyon"; + githubId = 2347889; + name = "Sauyon Lee"; + }; + savannidgerinel = { + email = "savanni@luminescent-dreams.com"; + github = "savannidgerinel"; + githubId = 8534888; + name = "Savanni D'Gerinel"; + }; + sb0 = { + email = "sb@m-labs.hk"; + github = "sbourdeauducq"; + githubId = 720864; + name = "SĂ©bastien Bourdeauducq"; + }; + sboosali = { + email = "SamBoosalis@gmail.com"; + github = "sboosali"; + githubId = 2320433; + name = "Sam Boosalis"; + }; + scalavision = { + email = "scalavision@gmail.com"; + github = "scalavision"; + githubId = 3958212; + name = "Tom Sorlie"; + }; + schmitthenner = { + email = "development@schmitthenner.eu"; + github = "fkz"; + githubId = 354463; + name = "Fabian Schmitthenner"; + }; + schmittlauch = { + name = "Trolli Schmittlauch"; + email = "t.schmittlauch+nixos@orlives.de"; + github = "schmittlauch"; + githubId = 1479555; + }; + schneefux = { + email = "schneefux+nixos_pkg@schneefux.xyz"; + github = "schneefux"; + githubId = 15379000; + name = "schneefux"; + }; + schristo = { + email = "schristopher@konputa.com"; + name = "Scott Christopher"; + }; + scode = { + email = "peter.schuller@infidyne.com"; + github = "scode"; + githubId = 59476; + name = "Peter Schuller"; + }; + scolobb = { + email = "sivanov@colimite.fr"; + github = "scolobb"; + githubId = 11320; + name = "Sergiu Ivanov"; + }; + screendriver = { + email = "nix@echooff.de"; + github = "screendriver"; + githubId = 149248; + name = "Christian Rackerseder"; + }; + Scriptkiddi = { + email = "nixos@scriptkiddi.de"; + github = "scriptkiddi"; + githubId = 3598650; + name = "Fritz Otlinghaus"; + }; + scubed2 = { + email = "scubed2@gmail.com"; + github = "scubed2"; + githubId = 7401858; + name = "Sterling Stein"; + }; + sdier = { + email = "scott@dier.name"; + github = "sdier"; + githubId = 11613056; + name = "Scott Dier"; + }; + sdll = { + email = "sasha.delly@gmail.com"; + github = "sdll"; + githubId = 17913919; + name = "Sasha Illarionov"; + }; + SeanZicari = { + email = "sean.zicari@gmail.com"; + github = "SeanZicari"; + githubId = 2343853; + name = "Sean Zicari"; + }; + sellout = { + email = "greg@technomadic.org"; + github = "sellout"; + githubId = 33031; + name = "Greg Pfeil"; + }; + sengaya = { + email = "tlo@sengaya.de"; + github = "sengaya"; + githubId = 1286668; + name = "Thilo Uttendorfer"; + }; + sephalon = { + email = "me@sephalon.net"; + github = "sephalon"; + githubId = 893474; + name = "Stefan Wiehler"; + }; + sepi = { + email = "raffael@mancini.lu"; + github = "sepi"; + githubId = 529649; + name = "Raffael Mancini"; + }; + seppeljordan = { + email = "sebastian.jordan.mail@googlemail.com"; + github = "seppeljordan"; + githubId = 4805746; + name = "Sebastian Jordan"; + }; + seqizz = { + email = "seqizz@gmail.com"; + github = "seqizz"; + githubId = 307899; + name = "Gurkan Gur"; + }; + servalcatty = { + email = "servalcat@pm.me"; + github = "servalcatty"; + githubId = 51969817; + name = "Serval"; + keys = [{ + longkeyid = "rsa4096/0x4A2AAAA382F8294C"; + fingerprint = "A317 37B3 693C 921B 480C C629 4A2A AAA3 82F8 294C"; + }]; + }; + sfrijters = { + email = "sfrijters@gmail.com"; + github = "sfrijters"; + githubId = 918365; + name = "Stefan Frijters"; + }; + sgo = { + email = "stig@stig.io"; + github = "stigtsp"; + githubId = 75371; + name = "Stig Palmquist"; + }; + sgraf = { + email = "sgraf1337@gmail.com"; + github = "sgraf812"; + githubId = 1151264; + name = "Sebastian Graf"; + }; + shahrukh330 = { + email = "shahrukh330@gmail.com"; + github = "shahrukh330"; + githubId = 1588288; + name = "Shahrukh Khan"; + }; + shanemikel = { + email = "shanepearlman@pm.me"; + github = "shanemikel"; + githubId = 6720672; + name = "Shane Pearlman"; + }; + shawndellysse = { + email = "sdellysse@gmail.com"; + github = "shawndellysse"; + githubId = 293035; + name = "Shawn Dellysse"; + }; + shazow = { + email = "andrey.petrov@shazow.net"; + github = "shazow"; + githubId = 6292; + name = "Andrey Petrov"; + }; + sheenobu = { + email = "sheena.artrip@gmail.com"; + github = "sheenobu"; + githubId = 1443459; + name = "Sheena Artrip"; + }; + sheganinans = { + email = "sheganinans@gmail.com"; + github = "sheganinans"; + githubId = 2146203; + name = "Aistis Raulinaitis"; + }; + shell = { + email = "cam.turn@gmail.com"; + github = "VShell"; + githubId = 251028; + name = "Shell Turner"; + }; + shlevy = { + email = "shea@shealevy.com"; + github = "shlevy"; + githubId = 487050; + name = "Shea Levy"; + }; + shmish111 = { + email = "shmish111@gmail.com"; + github = "shmish111"; + githubId = 934267; + name = "David Smith"; + }; + shnarazk = { + email = "shujinarazaki@protonmail.com"; + github = "shnarazk"; + githubId = 997855; + name = "Narazaki Shuji"; + }; + shou = { + email = "x+g@shou.io"; + github = "Shou"; + githubId = 819413; + name = "Benedict Aas"; + }; + shyim = { + email = "s.sayakci@gmail.com"; + github = "shyim"; + githubId = 6224096; + name = "Soner Sayakci"; + }; + siddharthist = { + email = "langston.barrett@gmail.com"; + github = "langston-barrett"; + githubId = 4294323; + name = "Langston Barrett"; + }; + siers = { + email = "veinbahs+nixpkgs@gmail.com"; + github = "siers"; + githubId = 235147; + name = "Raitis Veinbahs"; + }; + sifmelcara = { + email = "ming@culpring.com"; + github = "sifmelcara"; + githubId = 10496191; + name = "Ming Chuan"; + }; + sigma = { + email = "yann.hodique@gmail.com"; + github = "sigma"; + githubId = 16090; + name = "Yann Hodique"; + }; + sikmir = { + email = "sikmir@gmail.com"; + github = "sikmir"; + githubId = 688044; + name = "Nikolay Korotkiy"; + keys = [{ + longkeyid = "rsa2048/0xD1DE6D7F693663A5"; + fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5"; + }]; + }; + simonchatts = { + email = "code@chatts.net"; + github = "simonchatts"; + githubId = 11135311; + name = "Simon Chatterjee"; + }; + simonvandel = { + email = "simon.vandel@gmail.com"; + github = "simonvandel"; + githubId = 2770647; + name = "Simon Vandel Sillesen"; + }; + sivteck = { + email = "sivaram1992@gmail.com"; + github = "sivteck"; + githubId = 8017899; + name = "Sivaram Balakrishnan"; + }; + sjagoe = { + email = "simon@simonjagoe.com"; + github = "sjagoe"; + githubId = 80012; + name = "Simon Jagoe"; + }; + sjau = { + email = "nixos@sjau.ch"; + github = "sjau"; + githubId = 848812; + name = "Stephan Jau"; + }; + sjfloat = { + email = "steve+nixpkgs@jonescape.com"; + github = "sjfloat"; + githubId = 216167; + name = "Steve Jones"; + }; + sjmackenzie = { + email = "setori88@gmail.com"; + github = "sjmackenzie"; + githubId = 158321; + name = "Stewart Mackenzie"; + }; + sjourdois = { + email = "sjourdois@gmail.com"; + name = "StĂ©phane âkwisatzâ Jourdois"; + }; + skeidel = { + email = "svenkeidel@gmail.com"; + github = "svenkeidel"; + githubId = 266500; + name = "Sven Keidel"; + }; + skrzyp = { + email = "jot.skrzyp@gmail.com"; + name = "Jakub Skrzypnik"; + }; + skykanin = { + email = "skykanin@users.noreply.github.com"; + github = "skykanin"; + githubId = 3789764; + name = "skykanin"; + }; + sleexyz = { + email = "freshdried@gmail.com"; + github = "sleexyz"; + githubId = 1505617; + name = "Sean Lee"; + }; + SlothOfAnarchy = { + email = "slothofanarchy1@gmail.com"; + github = "SlothOfAnarchy"; + githubId = 12828415; + name = "Michel Weitbrecht"; + }; + smakarov = { + email = "setser200018@gmail.com"; + github = "setser"; + githubId = 12733495; + name = "Sergey Makarov"; + keys = [{ + longkeyid = "rsa2048/6AA23A1193B7064B"; + fingerprint = "6F8A 18AE 4101 103F 3C54 24B9 6AA2 3A11 93B7 064B"; + }]; + }; + smaret = { + email = "sebastien.maret@icloud.com"; + github = "smaret"; + githubId = 95471; + name = "SĂ©bastien Maret"; + keys = [{ + longkeyid = "rsa4096/0x86E30E5A0F5FC59C"; + fingerprint = "4242 834C D401 86EF 8281 4093 86E3 0E5A 0F5F C59C"; + }]; + }; + smironov = { + email = "grrwlf@gmail.com"; + github = "grwlf"; + githubId = 4477729; + name = "Sergey Mironov"; + }; + sna = { + email = "abouzahra.9@wright.edu"; + github = "s-na"; + githubId = 20214715; + name = "S. Nordin Abouzahra"; + }; + snaar = { + email = "snaar@snaar.net"; + github = "snaar"; + githubId = 602439; + name = "Serguei Narojnyi"; + }; + snicket2100 = { + email = "57048005+snicket2100@users.noreply.github.com"; + github = "snicket2100"; + githubId = 57048005; + name = "snicket2100"; + }; + snyh = { + email = "snyh@snyh.org"; + github = "snyh"; + githubId = 1437166; + name = "Xia Bin"; + }; + softinio = { + email = "code@softinio.com"; + github = "softinio"; + githubId = 3371635; + name = "Salar Rahmanian"; + }; + solson = { + email = "scott@solson.me"; + github = "solson"; + githubId = 26806; + name = "Scott Olson"; + }; + sondr3 = { + email = "nilsen.sondre@gmail.com"; + github = "sondr3"; + githubId = 2280539; + name = "Sondre Nilsen"; + keys = [{ + longkeyid = "ed25519/0x25676BCBFFAD76B1"; + fingerprint = "0EC3 FA89 EFBA B421 F82E 40B0 2567 6BCB FFAD 76B1"; + }]; + }; + sorki = { + email = "srk@48.io"; + github = "sorki"; + githubId = 115308; + name = "Richard Marko"; + }; + sorpaas = { + email = "hi@that.world"; + github = "sorpaas"; + githubId = 6277322; + name = "Wei Tang"; + }; + spacefrogg = { + email = "spacefrogg-nixos@meterriblecrew.net"; + github = "spacefrogg"; + githubId = 167881; + name = "Michael Raitza"; + }; + spacekookie = { + email = "kookie@spacekookie.de"; + github = "spacekookie"; + githubId = 7669898; + name = "Katharina Fey"; + }; + spencerjanssen = { + email = "spencerjanssen@gmail.com"; + github = "spencerjanssen"; + githubId = 2600039; + name = "Spencer Janssen"; + }; + spinus = { + email = "tomasz.czyz@gmail.com"; + github = "spinus"; + githubId = 950799; + name = "Tomasz CzyĆŒ"; + }; + sprock = { + email = "rmason@mun.ca"; + github = "sprock"; + githubId = 6391601; + name = "Roger Mason"; + }; + spwhitt = { + email = "sw@swhitt.me"; + github = "spwhitt"; + githubId = 1414088; + name = "Spencer Whitt"; + }; + squalus = { + email = "squalus@tuta.io"; + github = "squalus"; + githubId = 36899624; + name = "squalus"; + }; + srghma = { + email = "srghma@gmail.com"; + github = "srghma"; + githubId = 7573215; + name = "Sergei Khoma"; + }; + srgom = { + email = "srgom@users.noreply.github.com"; + github = "srgom"; + githubId = 8103619; + name = "SRGOM"; + }; + srhb = { + email = "sbrofeldt@gmail.com"; + github = "srhb"; + githubId = 219362; + name = "Sarah Brofeldt"; + }; + SShrike = { + email = "severen@shrike.me"; + github = "severen"; + githubId = 4061736; + name = "Severen Redwood"; + }; + sstef = { + email = "stephane@nix.frozenid.net"; + github = "fkstef"; + githubId = 8668915; + name = "Stephane Schitter"; + }; + steell = { + email = "steve@steellworks.com"; + github = "Steell"; + githubId = 1699155; + name = "Steve Elliott"; + }; + stephenmw = { + email = "stephen@q5comm.com"; + github = "stephenmw"; + githubId = 231788; + name = "Stephen Weinberg"; + }; + sterfield = { + email = "sterfield@gmail.com"; + github = "sterfield"; + githubId = 5747061; + name = "Guillaume Loetscher"; + }; + sternenseemann = { + email = "post@lukasepple.de"; + github = "sternenseemann"; + githubId = 3154475; + name = "Lukas Epple"; + }; + steshaw = { + name = "Steven Shaw"; + email = "steven@steshaw.org"; + github = "steshaw"; + githubId = 45735; + keys = [{ + longkeyid = "rsa4096/0x1D9A17DFD23DCB91"; + fingerprint = "0AFE 77F7 474D 1596 EE55 7A29 1D9A 17DF D23D CB91"; + }]; + }; + stesie = { + email = "stesie@brokenpipe.de"; + github = "stesie"; + githubId = 113068; + name = "Stefan Siegl"; + }; + steve-chavez = { + email = "stevechavezast@gmail.com"; + github = "steve-chavez"; + githubId = 1829294; + name = "Steve ChĂĄvez"; + }; + steveej = { + email = "mail@stefanjunker.de"; + github = "steveej"; + githubId = 1181362; + name = "Stefan Junker"; + }; + stianlagstad = { + email = "stianlagstad@gmail.com"; + github = "stianlagstad"; + githubId = 4340859; + name = "Stian LĂ„gstad"; + }; + StijnDW = { + email = "stekke@airmail.cc"; + github = "StijnDW"; + githubId = 1751956; + name = "Stijn DW"; + }; + StillerHarpo = { + email = "florianengel39@gmail.com"; + github = "StillerHarpo"; + githubId = 25526706; + name = "Florian Engel"; + }; + stites = { + email = "sam@stites.io"; + github = "stites"; + githubId = 1694705; + name = "Sam Stites"; + }; + stumoss = { + email = "samoss@gmail.com"; + github = "stumoss"; + githubId = 638763; + name = "Stuart Moss"; + }; + suhr = { + email = "suhr@i2pmail.org"; + github = "suhr"; + githubId = 65870; + name = "ĐĄŃŃ
Đ°ŃĐžĐș"; + }; + SuprDewd = { + email = "suprdewd@gmail.com"; + github = "SuprDewd"; + githubId = 187109; + name = "Bjarki ĂgĂșst GuĂ°mundsson"; + }; + suvash = { + email = "suvash+nixpkgs@gmail.com"; + github = "suvash"; + githubId = 144952; + name = "Suvash Thapaliya"; + }; + sveitser = { + email = "sveitser@gmail.com"; + github = "sveitser"; + githubId = 1040871; + name = "Mathis Antony"; + }; + svsdep = { + email = "svsdep@gmail.com"; + github = "svsdep"; + githubId = 36695359; + name = "Vasyl Solovei"; + }; + swarren83 = { + email = "shawn.w.warren@gmail.com"; + github = "swarren83"; + githubId = 4572854; + name = "Shawn Warren"; + }; + swdunlop = { + email = "swdunlop@gmail.com"; + github = "swdunlop"; + githubId = 120188; + name = "Scott W. Dunlop"; + }; + sweber = { + email = "sweber2342+nixpkgs@gmail.com"; + github = "sweber83"; + githubId = 19905904; + name = "Simon Weber"; + }; + swflint = { + email = "swflint@flintfam.org"; + github = "swflint"; + githubId = 1771109; + name = "Samuel W. Flint"; + }; + swistak35 = { + email = "me@swistak35.com"; + github = "swistak35"; + githubId = 332289; + name = "RafaĆ Ćasocha"; + }; + symphorien = { + email = "symphorien_nixpkgs@xlumurb.eu"; + github = "symphorien"; + githubId = 12595971; + name = "Guillaume Girol"; + }; + synthetica = { + email = "nix@hilhorst.be"; + github = "Synthetica9"; + githubId = 7075751; + name = "Patrick Hilhorst"; + }; + szczyp = { + email = "qb@szczyp.com"; + github = "szczyp"; + githubId = 203195; + name = "Szczyp"; + }; + sztupi = { + email = "attila.sztupak@gmail.com"; + github = "sztupi"; + githubId = 143103; + name = "Attila Sztupak"; + }; + t184256 = { + email = "monk@unboiled.info"; + github = "t184256"; + githubId = 5991987; + name = "Alexander Sosedkin"; + }; + tadeokondrak = { + email = "me@tadeo.ca"; + github = "tadeokondrak"; + githubId = 4098453; + name = "Tadeo Kondrak"; + keys = [{ + longkeyid = "ed25519/0xFBE607FCC49516D3"; + fingerprint = "0F2B C0C7 E77C 5B42 AC5B 4C18 FBE6 07FC C495 16D3"; + }]; + }; + tadfisher = { + email = "tadfisher@gmail.com"; + github = "tadfisher"; + githubId = 129148; + name = "Tad Fisher"; + }; + taeer = { + email = "taeer@necsi.edu"; + github = "Radvendii"; + githubId = 1239929; + name = "Taeer Bar-Yam"; + }; + taha = { + email = "xrcrod@gmail.com"; + github = "tgharib"; + githubId = 6457015; + name = "Taha Gharib"; + }; + tailhook = { + email = "paul@colomiets.name"; + github = "tailhook"; + githubId = 321799; + name = "Paul Colomiets"; + }; + taketwo = { + email = "alexandrov88@gmail.com"; + github = "taketwo"; + githubId = 1241736; + name = "Sergey Alexandrov"; + }; + takikawa = { + email = "asumu@igalia.com"; + github = "takikawa"; + githubId = 64192; + name = "Asumu Takikawa"; + }; + taktoa = { + email = "taktoa@gmail.com"; + github = "taktoa"; + githubId = 553443; + name = "Remy Goldschmidt"; + }; + taku0 = { + email = "mxxouy6x3m_github@tatapa.org"; + github = "taku0"; + githubId = 870673; + name = "Takuo Yonezawa"; + }; + talkara = { + email = "taito.horiuchi@relexsolutions.com"; + github = "talkara"; + githubId = 51232929; + name = "Taito Horiuchi"; + }; + talyz = { + email = "kim.lindberger@gmail.com"; + github = "talyz"; + githubId = 63433; + name = "Kim Lindberger"; + }; + taneb = { + email = "nvd1234@gmail.com"; + github = "Taneb"; + githubId = 1901799; + name = "Nathan van Doorn"; + }; + tari = { + email = "peter@taricorp.net"; + github = "tari"; + githubId = 506181; + name = "Peter Marheine"; + }; + tasmo = { + email = "tasmo@tasmo.de"; + github = "tasmo"; + githubId = 102685; + name = "Thomas Friese"; + }; + tavyc = { + email = "octavian.cerna@gmail.com"; + github = "tavyc"; + githubId = 3650609; + name = "Octavian Cerna"; + }; + tazjin = { + email = "mail@tazj.in"; + github = "tazjin"; + githubId = 1552853; + name = "Vincent Ambo"; + }; + tbenst = { + email = "nix@tylerbenster.com"; + github = "tbenst"; + githubId = 863327; + name = "Tyler Benster"; + }; + tckmn = { + email = "andy@tck.mn"; + github = "tckmn"; + githubId = 2389333; + name = "Andy Tockman"; + }; + teh = { + email = "tehunger@gmail.com"; + github = "teh"; + githubId = 139251; + name = "Tom Hunger"; + }; + telotortium = { + email = "rirelan@gmail.com"; + github = "telotortium"; + githubId = 1755789; + name = "Robert Irelan"; + }; + teozkr = { + email = "teo@nullable.se"; + github = "teozkr"; + githubId = 649832; + name = "Teo Klestrup Röijezon"; + }; + terlar = { + email = "terlar@gmail.com"; + github = "terlar"; + githubId = 280235; + name = "Terje Larsen"; + }; + tesq0 = { + email = "mikolaj.galkowski@gmail.com"; + github = "tesq0"; + githubId = 26417242; + name = "Mikolaj Galkowski"; + }; + teto = { + email = "mcoudron@hotmail.com"; + github = "teto"; + githubId = 886074; + name = "Matthieu Coudron"; + }; + tex = { + email = "milan.svoboda@centrum.cz"; + github = "tex"; + githubId = 27386; + name = "Milan Svoboda"; + }; + tg-x = { + email = "*@tg-x.net"; + github = "tg-x"; + githubId = 378734; + name = "TG â Î"; + }; + th0rgal = { + email = "thomas.marchand@tuta.io"; + github = "Th0rgal"; + githubId = 41830259; + name = "Thomas Marchand"; + }; + thall = { + email = "niclas.thall@gmail.com"; + github = "thall"; + githubId = 102452; + name = "Niclas Thall"; + }; + thammers = { + email = "jawr@gmx.de"; + github = "tobias-hammerschmidt"; + githubId = 2543259; + name = "Tobias Hammerschmidt"; + }; + thanegill = { + email = "me@thanegill.com"; + github = "thanegill"; + githubId = 1141680; + name = "Thane Gill"; + }; + thedavidmeister = { + email = "thedavidmeister@gmail.com"; + github = "thedavidmeister"; + githubId = 629710; + name = "David Meister"; + }; + thefloweringash = { + email = "lorne@cons.org.nz"; + github = "thefloweringash"; + githubId = 42933; + name = "Andrew Childs"; + }; + thefenriswolf = { + email = "stefan.rohrbacher97@gmail.com"; + github = "thefenriswolf"; + githubId = 8547242; + name = "Stefan Rohrbacher"; + }; + "thelegy" = { + email = "mail+nixos@0jb.de"; + github = "thelegy"; + githubId = 3105057; + name = "Jan Beinke"; + }; + thesola10 = { + email = "thesola10@bobile.fr"; + github = "thesola10"; + githubId = 7287268; + keys = [{ + longkeyid = "rsa4096/0x89245619BEBB95BA"; + fingerprint = "1D05 13A6 1AC4 0D8D C6D6 5F2C 8924 5619 BEBB 95BA"; + }]; + name = "Karim Vergnes"; + }; + theuni = { + email = "ct@flyingcircus.io"; + github = "ctheune"; + githubId = 1220572; + name = "Christian Theune"; + }; + thiagokokada = { + email = "thiagokokada@gmail.com"; + github = "thiagokokada"; + githubId = 844343; + name = "Thiago K. Okada"; + }; + thmzlt = { + email = "git@thomazleite.com"; + github = "thmzlt"; + githubId = 7709; + name = "Thomaz Leite"; + }; + thomasdesr = { + email = "git@hive.pw"; + github = "thomasdesr"; + githubId = 681004; + name = "Thomas Desrosiers"; + }; + ThomasMader = { + email = "thomas.mader@gmail.com"; + github = "ThomasMader"; + githubId = 678511; + name = "Thomas Mader"; + }; + thomasjm = { + email = "tom@codedown.io"; + github = "thomasjm"; + githubId = 1634990; + name = "Tom McLaughlin"; + }; + thoughtpolice = { + email = "aseipp@pobox.com"; + github = "thoughtpolice"; + githubId = 3416; + name = "Austin Seipp"; + }; + thpham = { + email = "thomas.pham@ithings.ch"; + github = "thpham"; + githubId = 224674; + name = "Thomas Pham"; + }; + Thra11 = { + email = "tahall256@protonmail.ch"; + github = "Thra11"; + githubId = 1391883; + name = "Tom Hall"; + }; + tilpner = { + email = "till@hoeppner.ws"; + github = "tilpner"; + githubId = 4322055; + name = "Till Höppner"; + }; + timbertson = { + email = "tim@gfxmonk.net"; + github = "timbertson"; + githubId = 14172; + name = "Tim Cuthbertson"; + }; + timma = { + email = "kunduru.it.iitb@gmail.com"; + github = "ktrsoft"; + githubId = 12712927; + name = "Timma"; + }; + timokau = { + email = "timokau@zoho.com"; + github = "timokau"; + githubId = 3799330; + name = "Timo Kaufmann"; + }; + timor = { + email = "timor.dd@googlemail.com"; + github = "timor"; + githubId = 174156; + name = "timor"; + }; + timput = { + email = "tim@timput.com"; + github = "TimPut"; + githubId = 2845239; + name = "Tim Put"; + }; + timstott = { + email = "stott.timothy@gmail.com"; + github = "timstott"; + githubId = 1334474; + name = "Timothy Stott"; + }; + tiramiseb = { + email = "sebastien@maccagnoni.eu"; + github = "tiramiseb"; + githubId = 1292007; + name = "SĂ©bastien Maccagnoni"; + }; + titanous = { + email = "jonathan@titanous.com"; + github = "titanous"; + githubId = 13026; + name = "Jonathan Rudenberg"; + }; + tkerber = { + email = "tk@drwx.org"; + github = "tkerber"; + githubId = 5722198; + name = "Thomas Kerber"; + keys = [{ + longkeyid = "rsa4096/0x8489B911F9ED617B"; + fingerprint = "556A 403F B0A2 D423 F656 3424 8489 B911 F9ED 617B"; + }]; + }; + tmplt = { + email = "tmplt@dragons.rocks"; + github = "tmplt"; + githubId = 6118602; + name = "Viktor"; + }; + tnias = { + email = "phil@grmr.de"; + github = "tnias"; + githubId = 9853194; + name = "Philipp Bartsch"; + }; + tobim = { + email = "nix@tobim.fastmail.fm"; + github = "tobim"; + githubId = 858790; + name = "Tobias Mayer"; + }; + tobiasBora = { + email = "tobias.bora.list@gmail.com"; + github = "tobiasBora"; + githubId = 2164118; + name = "Tobias Bora"; + }; + tohl = { + email = "tom@logand.com"; + github = "tohl"; + githubId = 12159013; + name = "Tomas Hlavaty"; + }; + tokudan = { + email = "git@danielfrank.net"; + github = "tokudan"; + githubId = 692610; + name = "Daniel Frank"; + }; + tomahna = { + email = "kevin.rauscher@tomahna.fr"; + github = "Tomahna"; + githubId = 8577941; + name = "Kevin Rauscher"; + }; + tomberek = { + email = "tomberek@gmail.com"; + github = "tomberek"; + githubId = 178444; + name = "Thomas Bereknyei"; + }; + tomfitzhenry = { + email = "tom@tom-fitzhenry.me.uk"; + github = "tomfitzhenry"; + githubId = 61303; + name = "Tom Fitzhenry"; + }; + tomsmeets = { + email = "tom.tsmeets@gmail.com"; + github = "tomsmeets"; + githubId = 6740669; + name = "Tom Smeets"; + }; + toonn = { + email = "nnoot@toonn.io"; + github = "toonn"; + githubId = 1486805; + name = "Toon Nolten"; + }; + travisbhartwell = { + email = "nafai@travishartwell.net"; + github = "travisbhartwell"; + githubId = 10110; + name = "Travis B. Hartwell"; + }; + treemo = { + email = "matthieu.chevrier@treemo.fr"; + github = "treemo"; + githubId = 207457; + name = "Matthieu Chevrier"; + }; + trevorj = { + email = "nix@trevor.joynson.io"; + github = "akatrevorjay"; + githubId = 1312290; + name = "Trevor Joynson"; + }; + tricktron = { + email = "tgagnaux@gmail.com"; + github = "tricktron"; + githubId = 16036882; + name = "Thibault Gagnaux"; + }; + trino = { + email = "muehlhans.hubert@ekodia.de"; + github = "hmuehlhans"; + githubId = 9870613; + name = "Hubert MĂŒhlhans"; + }; + troydm = { + email = "d.geurkov@gmail.com"; + github = "troydm"; + githubId = 483735; + name = "Dmitry Geurkov"; + }; + tscholak = { + email = "torsten.scholak@googlemail.com"; + github = "tscholak"; + githubId = 1568873; + name = "Torsten Scholak"; + }; + tstrobel = { + email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains"; + name = "Thomas Strobel"; + }; + ttuegel = { + email = "ttuegel@mailbox.org"; + github = "ttuegel"; + githubId = 563054; + name = "Thomas Tuegel"; + }; + turion = { + email = "programming@manuelbaerenz.de"; + github = "turion"; + githubId = 303489; + name = "Manuel BĂ€renz"; + }; + tv = { + email = "tv@krebsco.de"; + github = "4z3"; + githubId = 427872; + name = "Tomislav ViljetiÄ"; + }; + tvestelind = { + email = "tomas.vestelind@fripost.org"; + github = "tvestelind"; + githubId = 699403; + name = "Tomas Vestelind"; + }; + tvorog = { + email = "marszaripov@gmail.com"; + github = "tvorog"; + githubId = 1325161; + name = "Marsel Zaripov"; + }; + tweber = { + email = "tw+nixpkgs@360vier.de"; + github = "thorstenweber83"; + githubId = 9413924; + name = "Thorsten Weber"; + }; + twey = { + email = "twey@twey.co.uk"; + github = "Twey"; + githubId = 101639; + name = "James âTweyâ Kay"; + }; + twhitehead = { + name = "Tyson Whitehead"; + email = "twhitehead@gmail.com"; + github = "twhitehead"; + githubId = 787843; + keys = [{ + longkeyid = "rsa2048/0x594258F0389D2802"; + fingerprint = "E631 8869 586F 99B4 F6E6 D785 5942 58F0 389D 2802"; + }]; + }; + typetetris = { + email = "ericwolf42@mail.com"; + github = "typetetris"; + githubId = 1983821; + name = "Eric Wolf"; + }; + udono = { + email = "udono@virtual-things.biz"; + github = "udono"; + githubId = 347983; + name = "Udo Spallek"; + }; + unode = { + email = "alves.rjc@gmail.com"; + github = "unode"; + githubId = 122319; + name = "Renato Alves"; + }; + uralbash = { + email = "root@uralbash.ru"; + github = "uralbash"; + githubId = 619015; + name = "Svintsov Dmitry"; + }; + uri-canva = { + email = "uri@canva.com"; + github = "uri-canva"; + githubId = 33242106; + name = "Uri Baghin"; + }; + uskudnik = { + email = "urban.skudnik@gmail.com"; + github = "uskudnik"; + githubId = 120451; + name = "Urban Skudnik"; + }; + utdemir = { + email = "me@utdemir.com"; + github = "utdemir"; + githubId = 928084; + name = "Utku Demir"; + }; + uvnikita = { + email = "uv.nikita@gmail.com"; + github = "uvNikita"; + githubId = 1084748; + name = "Nikita Uvarov"; + }; + uwap = { + email = "me@uwap.name"; + github = "uwap"; + githubId = 2212422; + name = "uwap"; + }; + va1entin = { + email = "github@valentinsblog.com"; + github = "va1entin"; + githubId = 31535155; + name = "Valentin Heidelberger"; + }; + vaibhavsagar = { + email = "vaibhavsagar@gmail.com"; + github = "vaibhavsagar"; + githubId = 1525767; + name = "Vaibhav Sagar"; + }; + valebes = { + email = "valebes@gmail.com"; + github = "valebes"; + githubId = 10956211; + name = "Valerio Besozzi"; + }; + valeriangalliat = { + email = "val@codejam.info"; + github = "valeriangalliat"; + githubId = 3929133; + name = "ValĂ©rian Galliat"; + }; + valodim = { + email = "look@my.amazin.horse"; + github = "valodim"; + githubId = 27813; + name = "Vincent Breitmoser"; + }; + vandenoever = { + email = "jos@vandenoever.info"; + github = "vandenoever"; + githubId = 608417; + name = "Jos van den Oever"; + }; + vanschelven = { + email = "klaas@vanschelven.com"; + github = "vanschelven"; + githubId = 223833; + name = "Klaas van Schelven"; + }; + vanzef = { + email = "vanzef@gmail.com"; + github = "vanzef"; + githubId = 12428837; + name = "Ivan Solyankin"; + }; + varunpatro = { + email = "varun.kumar.patro@gmail.com"; + github = "varunpatro"; + githubId = 6943308; + name = "Varun Patro"; + }; + vbgl = { + email = "Vincent.Laporte@gmail.com"; + github = "vbgl"; + githubId = 2612464; + name = "Vincent Laporte"; + }; + vbmithr = { + email = "vb@luminar.eu.org"; + github = "vbmithr"; + githubId = 797581; + name = "Vincent Bernardoff"; + }; + vcanadi = { + email = "vito.canadi@gmail.com"; + github = "vcanadi"; + githubId = 8889722; + name = "Vitomir Äanadi"; + }; + vcunat = { + name = "VladimĂr ÄunĂĄt"; + # vcunat@gmail.com predominated in commits before 2019/03 + email = "v@cunat.cz"; + github = "vcunat"; + githubId = 1785925; + keys = [{ + longkeyid = "rsa4096/0xE747DF1F9575A3AA"; + fingerprint = "B600 6460 B60A 80E7 8206 2449 E747 DF1F 9575 A3AA"; + }]; + }; + vdemeester = { + email = "vincent@sbr.pm"; + github = "vdemeester"; + githubId = 6508; + name = "Vincent Demeester"; + }; + veehaitch = { + name = "Vincent Haupert"; + email = "mail@vincent-haupert.de"; + github = "veehaitch"; + githubId = 15069839; + keys = [{ + longkeyid = "rsa4096/0x874BD6F916FAA742"; + fingerprint = "4D23 ECDF 880D CADF 5ECA 4458 874B D6F9 16FA A742"; + }]; + }; + velovix = { + email = "xaviosx@gmail.com"; + github = "velovix"; + githubId = 2856634; + name = "Tyler Compton"; + }; + veprbl = { + email = "veprbl@gmail.com"; + github = "veprbl"; + githubId = 245573; + name = "Dmitry Kalinkin"; + }; + vidbina = { + email = "vid@bina.me"; + github = "vidbina"; + githubId = 335406; + name = "David Asabina"; + }; + vifino = { + email = "vifino@tty.sh"; + github = "vifino"; + githubId = 5837359; + name = "Adrian Pistol"; + }; + vika_nezrimaya = { + email = "vika@fireburn.ru"; + github = "kisik21"; + githubId = 7953163; + name = "Vika Shleina"; + keys = [{ + longkeyid = "rsa2048/0x4F62CD07CE64796A"; + fingerprint = "B3C0 DA1A C18B 82E8 CA8B B1D1 4F62 CD07 CE64 796A"; + }]; + }; + vinymeuh = { + email = "vinymeuh@gmail.com"; + github = "vinymeuh"; + githubId = 118959; + name = "VinyMeuh"; + }; + viric = { + email = "viric@viric.name"; + github = "viric"; + githubId = 66664; + name = "LluĂs Batlle i Rossell"; + }; + virusdave = { + email = "dave.nicponski@gmail.com"; + github = "virusdave"; + githubId = 6148271; + name = "Dave Nicponski"; + }; + vizanto = { + email = "danny@prime.vc"; + github = "vizanto"; + githubId = 326263; + name = "Danny Wilson"; + }; + vklquevs = { + email = "vklquevs@gmail.com"; + github = "vklquevs"; + githubId = 1771234; + name = "vklquevs"; + }; + vlaci = { + email = "laszlo.vasko@outlook.com"; + github = "vlaci"; + githubId = 1771332; + name = "LĂĄszlĂł VaskĂł"; + }; + vlstill = { + email = "xstill@fi.muni.cz"; + github = "vlstill"; + githubId = 4070422; + name = "VladimĂr Ć till"; + }; + vmandela = { + email = "venkat.mandela@gmail.com"; + github = "vmandela"; + githubId = 849772; + name = "Venkateswara Rao Mandela"; + }; + vmchale = { + email = "tmchale@wisc.edu"; + github = "vmchale"; + githubId = 13259982; + name = "Vanessa McHale"; + }; + volhovm = { + email = "volhovm.cs@gmail.com"; + github = "volhovm"; + githubId = 5604643; + name = "Mikhail Volkhov"; + }; + volth = { + email = "jaroslavas@volth.com"; + github = "volth"; + githubId = 508305; + name = "Jaroslavas Pocepko"; + }; + vozz = { + email = "oliver.huntuk@gmail.com"; + name = "Oliver Hunt"; + }; + vrthra = { + email = "rahul@gopinath.org"; + github = "vrthra"; + githubId = 70410; + name = "Rahul Gopinath"; + }; + vskilet = { + email = "victor@sene.ovh"; + github = "vskilet"; + githubId = 7677567; + name = "Victor SENE"; + }; + vyorkin = { + email = "vasiliy.yorkin@gmail.com"; + github = "vyorkin"; + githubId = 988849; + name = "Vasiliy Yorkin"; + }; + vyp = { + email = "elisp.vim@gmail.com"; + github = "vyp"; + githubId = 3889405; + name = "vyp"; + }; + wamserma = { + name = "Markus S. Wamser"; + email = "github-dev@mail2013.wamser.eu"; + github = "wamserma"; + githubId = 60148; + }; + waynr = { + name = "Wayne Warren"; + email = "wayne.warren.s@gmail.com"; + github = "waynr"; + githubId = 1441126; + }; + wchresta = { + email = "wchresta.nix@chrummibei.ch"; + github = "wchresta"; + githubId = 34962284; + name = "wchresta"; + }; + wedens = { + email = "kirill.wedens@gmail.com"; + name = "wedens"; + }; + WhittlesJr = { + email = "alex.joseph.whitt@gmail.com"; + github = "WhittlesJr"; + githubId = 19174984; + name = "Alex Whitt"; + }; + willibutz = { + email = "willibutz@posteo.de"; + github = "willibutz"; + githubId = 20464732; + name = "Willi Butz"; + }; + willtim = { + email = "tim.williams.public@gmail.com"; + name = "Tim Philip Williams"; + }; + winden = { + email = "windenntw@gmail.com"; + name = "Antonio Vargas Gonzalez"; + }; + winpat = { + email = "patrickwinter@posteo.ch"; + github = "winpat"; + githubId = 6016963; + name = "Patrick Winter"; + }; + wishfort36 = { + email = "42300264+wishfort36@users.noreply.github.com"; + github = "wishfort36"; + githubId = 42300264; + name = "wishfort36"; + }; + wizeman = { + email = "rcorreia@wizy.org"; + github = "wizeman"; + githubId = 168610; + name = "Ricardo M. Correia"; + }; + wjlroe = { + email = "willroe@gmail.com"; + github = "wjlroe"; + githubId = 43315; + name = "William Roe"; + }; + wmertens = { + email = "Wout.Mertens@gmail.com"; + github = "wmertens"; + githubId = 54934; + name = "Wout Mertens"; + }; + wnklmnn = { + email = "pascal@wnklmnn.de"; + github = "wnklmnn"; + githubId = 9423014; + name = "Pascal Winkelmann"; + }; + woffs = { + email = "github@woffs.de"; + github = "woffs"; + githubId = 895853; + name = "Frank Doepper"; + }; + wohanley = { + email = "me@wohanley.com"; + github = "wohanley"; + githubId = 1322287; + name = "William O'Hanley"; + }; + womfoo = { + email = "kranium@gikos.net"; + github = "womfoo"; + githubId = 1595132; + name = "Kranium Gikos Mendoza"; + }; + worldofpeace = { + email = "worldofpeace@protonmail.ch"; + github = "worldofpeace"; + githubId = 28888242; + name = "worldofpeace"; + }; + wscott = { + email = "wsc9tt@gmail.com"; + github = "wscott"; + githubId = 31487; + name = "Wayne Scott"; + }; + wucke13 = { + email = "info@wucke13.de"; + github = "wucke13"; + githubId = 20400405; + name = "Wucke"; + }; + wykurz = { + email = "wykurz@gmail.com"; + github = "wykurz"; + githubId = 483465; + name = "Mateusz Wykurz"; + }; + wulfsta = { + email = "wulfstawulfsta@gmail.com"; + github = "Wulfsta"; + githubId = 13378502; + name = "Wulfsta"; + }; + wyvie = { + email = "elijahrum@gmail.com"; + github = "wyvie"; + githubId = 3992240; + name = "Elijah Rum"; + }; + xaverdh = { + email = "hoe.dom@gmx.de"; + github = "xaverdh"; + githubId = 11050617; + name = "Dominik Xaver Hörl"; + }; + xbreak = { + email = "xbreak@alphaware.se"; + github = "xbreak"; + githubId = 13489144; + name = "Calle Rosenquist"; + }; + xe = { + email = "me@christine.website"; + github = "Xe"; + githubId = 529003; + name = "Christine Dodrill"; + }; + xeji = { + email = "xeji@cat3.de"; + github = "xeji"; + githubId = 36407913; + name = "Uli Baum"; + }; + xfix = { + email = "konrad@borowski.pw"; + github = "xfix"; + githubId = 1297598; + name = "Konrad Borowski"; + }; + xiorcale = { + email = "quentin.vaucher@pm.me"; + github = "xiorcale"; + githubId = 17534323; + name = "Quentin Vaucher"; + }; + xnaveira = { + email = "xnaveira@gmail.com"; + github = "xnaveira"; + githubId = 2534411; + name = "Xavier Naveira"; + }; + xnwdd = { + email = "nwdd+nixos@no.team"; + github = "xnwdd"; + githubId = 3028542; + name = "Guillermo NWDD"; + }; + xrelkd = { + email = "46590321+xrelkd@users.noreply.github.com"; + github = "xrelkd"; + githubId = 46590321; + name = "xrelkd"; + }; + xurei = { + email = "olivier.bourdoux@gmail.com"; + github = "xurei"; + githubId = 621695; + name = "Olivier Bourdoux"; + }; + xvapx = { + email = "marti.serra.coscollano@gmail.com"; + github = "xvapx"; + githubId = 11824817; + name = "Marti Serra"; + }; + xwvvvvwx = { + email = "davidterry@posteo.de"; + github = "xwvvvvwx"; + githubId = 6689924; + name = "David Terry"; + }; + xzfc = { + email = "xzfcpw@gmail.com"; + github = "xzfc"; + githubId = 5121426; + name = "Albert Safin"; + }; + y0no = { + email = "y0no@y0no.fr"; + github = "y0no"; + githubId = 2242427; + name = "Yoann Ono"; + }; + yarny = { + email = "41838844+Yarny0@users.noreply.github.com"; + github = "Yarny0"; + githubId = 41838844; + name = "Yarny"; + }; + yarr = { + email = "savraz@gmail.com"; + github = "Eternity-Yarr"; + githubId = 3705333; + name = "Dmitry V."; + }; + yegortimoshenko = { + email = "yegortimoshenko@riseup.net"; + github = "yegortimoshenko"; + githubId = 1643293; + name = "Yegor Timoshenko"; + }; + yesbox = { + email = "jesper.geertsen.jonsson@gmail.com"; + github = "yesbox"; + githubId = 4113027; + name = "Jesper Geertsen Jonsson"; + }; + ylwghst = { + email = "ylwghst@onionmail.info"; + github = "ylwghst"; + githubId = 26011724; + name = "Burim Augustin Berisa"; + }; + yochai = { + email = "yochai@titat.info"; + github = "yochai"; + githubId = 1322201; + name = "Yochai"; + }; + yorickvp = { + email = "yorickvanpelt@gmail.com"; + github = "yorickvp"; + githubId = 647076; + name = "Yorick van Pelt"; + }; + yrashk = { + email = "yrashk@gmail.com"; + github = "yrashk"; + githubId = 452; + name = "Yurii Rashkovskii"; + }; + ysndr = { + email = "me@ysndr.de"; + github = "ysndr"; + githubId = 7040031; + name = "Yannik Sander"; + }; + yuriaisaka = { + email = "yuri.aisaka+nix@gmail.com"; + github = "yuriaisaka"; + githubId = 687198; + name = "Yuri Aisaka"; + }; + yurrriq = { + email = "eric@ericb.me"; + github = "yurrriq"; + githubId = 1866448; + name = "Eric Bailey"; + }; + Yumasi = { + email = "gpagnoux@gmail.com"; + github = "Yumasi"; + githubId = 24368641; + name = "Guillaume Pagnoux"; + keys = [{ + longkeyid = "rsa4096/0xEC5065899AEAAF4C"; + fingerprint = "85F8 E850 F8F2 F823 F934 535B EC50 6589 9AEA AF4C"; + }]; + }; + yvesf = { + email = "yvesf+nix@xapek.org"; + github = "yvesf"; + githubId = 179548; + name = "Yves Fischer"; + }; + yvt = { + email = "i@yvt.jp"; + github = "yvt"; + githubId = 5253988; + name = "yvt"; + }; + maggesi = { + email = "marco.maggesi@gmail.com"; + github = "maggesi"; + githubId = 1809783; + name = "Marco Maggesi"; + }; + zachcoyle = { + email = "zach.coyle@gmail.com"; + github = "zachcoyle"; + githubId = 908716; + name = "Zach Coyle"; + }; + zagy = { + email = "cz@flyingcircus.io"; + github = "zagy"; + githubId = 568532; + name = "Christian Zagrodnick"; + }; + zalakain = { + email = "ping@umazalakain.info"; + github = "umazalakain"; + githubId = 1319905; + name = "Uma Zalakain"; + }; + zaninime = { + email = "francesco@zanini.me"; + github = "zaninime"; + githubId = 450885; + name = "Francesco Zanini"; + }; + zarelit = { + email = "david@zarel.net"; + github = "zarelit"; + githubId = 3449926; + name = "David Costa"; + }; + zauberpony = { + email = "elmar@athmer.org"; + github = "zauberpony"; + githubId = 250877; + name = "Elmar Athmer"; + }; + zakkor = { + email = "edward.dalbon@gmail.com"; + github = "zakkor"; + githubId = 6191421; + name = "Edward d'Albon"; + }; + zef = { + email = "zef@zef.me"; + name = "Zef Hemel"; + }; + zfnmxt = { + name = "zfnmxt"; + email = "zfnmxt@zfnmxt.com"; + github = "zfnmxt"; + githubId = 37446532; + }; + zgrannan = { + email = "zgrannan@gmail.com"; + github = "zgrannan"; + githubId = 1141948; + name = "Zack Grannan"; + }; + zimbatm = { + email = "zimbatm@zimbatm.com"; + github = "zimbatm"; + githubId = 3248; + name = "zimbatm"; + }; + Zimmi48 = { + email = "theo.zimmermann@univ-paris-diderot.fr"; + github = "Zimmi48"; + githubId = 1108325; + name = "ThĂ©o Zimmermann"; + }; + zohl = { + email = "zohl@fmap.me"; + github = "zohl"; + githubId = 6067895; + name = "Al Zohali"; + }; + zookatron = { + email = "tim@zookatron.com"; + github = "zookatron"; + githubId = 1772064; + name = "Tim Zook"; + }; + zoomulator = { + email = "zoomulator@gmail.com"; + github = "zoomulator"; + githubId = 1069303; + name = "Kim Simmons"; + }; + zowoq = { + email = "59103226+zowoq@users.noreply.github.com"; + github = "zowoq"; + githubId = 59103226; + name = "zowoq"; + }; + zraexy = { + email = "zraexy@gmail.com"; + github = "zraexy"; + githubId = 8100652; + name = "David Mell"; + }; + zx2c4 = { + email = "Jason@zx2c4.com"; + github = "zx2c4"; + githubId = 10643; + name = "Jason A. Donenfeld"; + }; + zzamboni = { + email = "diego@zzamboni.org"; + github = "zzamboni"; + githubId = 32876; + name = "Diego Zamboni"; + }; + turbomack = { + email = "marek.faj@gmail.com"; + github = "turboMaCk"; + githubId = 2130305; + name = "Marek Fajkus"; + }; + melling = { + email = "mattmelling@fastmail.com"; + github = "mattmelling"; + githubId = 1215331; + name = "Matt Melling"; + }; + wd15 = { + email = "daniel.wheeler2@gmail.com"; + github = "wd15"; + githubId = 1986844; + name = "Daniel Wheeler"; + }; + misuzu = { + email = "bakalolka@gmail.com"; + github = "misuzu"; + githubId = 248143; + name = "misuzu"; + }; + zokrezyl = { + email = "zokrezyl@gmail.com"; + github = "zokrezyl"; + githubId = 51886259; + name = "Zokre Zyl"; + }; + rakesh4g = { + email = "rakeshgupta4u@gmail.com"; + github = "rakesh4g"; + githubId = 50867187; + name = "Rakesh Gupta"; + }; + mlatus = { + email = "wqseleven@gmail.com"; + github = "Ninlives"; + githubId = 17873203; + name = "mlatus"; + }; + waiting-for-dev = { + email = "marc@lamarciana.com"; + github = "waiting-for-dev"; + githubId = 52650; + name = "Marc BusquĂ©"; + }; + snglth = { + email = "illia@ishestakov.com"; + github = "snglth"; + githubId = 8686360; + name = "Illia Shestakov"; + }; + foxit64 = { + email = "o4nsxy05@gmail.com"; + github = "foxit64"; + githubId = 56247270; + name = "Foxit"; + }; + masaeedu = { + email = "masaeedu@gmail.com"; + github = "masaeedu"; + githubId = 3674056; + name = "Asad Saeeduddin"; + }; + ngerstle = { + name = "Nicholas Gerstle"; + email = "ngerstle@gmail.com"; + github = "ngerstle"; + githubId = 1023752; + }; + shardy = { + email = "shardul@baral.ca"; + github = "shardulbee"; + githubId = 16765155; + name = "Shardul Baral"; + }; + xavierzwirtz = { + email = "me@xavierzwirtz.com"; + github = "xavierzwirtz"; + githubId = 474343; + name = "Xavier Zwirtz"; + }; + ymeister = { + name = "Yuri Meister"; + email = "47071325+ymeister@users.noreply.github.com"; + github = "ymeister"; + githubId = 47071325; + }; + cpcloud = { + name = "Phillip Cloud"; + email = "417981+cpcloud@users.noreply.github.com"; + github = "cpcloud"; + githubId = 417981; + }; +} diff --git a/nixpkgs/maintainers/scripts/all-tarballs.nix b/nixpkgs/maintainers/scripts/all-tarballs.nix new file mode 100644 index 00000000000..6a4de8a4b95 --- /dev/null +++ b/nixpkgs/maintainers/scripts/all-tarballs.nix @@ -0,0 +1,16 @@ +/* Helper expression for copy-tarballs. This returns (nearly) all + tarballs used the free packages in Nixpkgs. + + Typical usage: + + $ copy-tarballs.pl --expr 'import <nixpkgs/maintainers/scripts/all-tarballs.nix>' +*/ + +import ../../pkgs/top-level/release.nix + { # Don't apply âhydraJobâ to jobs, because then we can't get to the + # dependency graph. + scrubJobs = false; + # No need to evaluate on i686. + supportedSystems = [ "x86_64-linux" ]; + limitedSupportedSystems = []; + } diff --git a/nixpkgs/maintainers/scripts/build.nix b/nixpkgs/maintainers/scripts/build.nix new file mode 100644 index 00000000000..c70993cf138 --- /dev/null +++ b/nixpkgs/maintainers/scripts/build.nix @@ -0,0 +1,43 @@ +{ maintainer }: + +# based on update.nix +# nix-build build.nix --argstr maintainer <yourname> + +let + pkgs = import ./../../default.nix {}; + maintainer_ = pkgs.lib.maintainers.${maintainer}; + packagesWith = cond: return: set: + (pkgs.lib.flatten + (pkgs.lib.mapAttrsToList + (name: pkg: + let + result = builtins.tryEval + ( + if pkgs.lib.isDerivation pkg && cond name pkg + then [ (return name pkg) ] + else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false + then packagesWith cond return pkg + else [ ] + ); + in + if result.success then result.value + else [ ] + ) + set + ) + ); +in +packagesWith + (name: pkg: + ( + if builtins.hasAttr "maintainers" pkg.meta + then ( + if builtins.isList pkg.meta.maintainers + then builtins.elem maintainer_ pkg.meta.maintainers + else maintainer_ == pkg.meta.maintainers + ) + else false + ) + ) + (name: pkg: pkg) + pkgs diff --git a/nixpkgs/maintainers/scripts/check-maintainer-github-handles.sh b/nixpkgs/maintainers/scripts/check-maintainer-github-handles.sh new file mode 100755 index 00000000000..879a2e452cb --- /dev/null +++ b/nixpkgs/maintainers/scripts/check-maintainer-github-handles.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p jq parallel + +# Example how to work with the `lib.maintainers` attrset. +# Can be used to check whether all user handles are still valid. + +set -e + +# nixpkgs='<nixpkgs>' +# if [ -n "$1" ]; then + +function checkCommits { + local user="$1" + local tmp=$(mktemp) + curl --silent -w "%{http_code}" \ + "https://github.com/NixOS/nixpkgs/commits?author=$user" \ + > "$tmp" + # the last line of tmp contains the http status + local status=$(tail -n1 "$tmp") + local ret= + case $status in + 200) if <"$tmp" grep -i "no commits found" > /dev/null; then + ret=1 + else + ret=0 + fi + ;; + # because of githubâs hard request limits, this can take some time + 429) sleep 2 + printf "." + checkCommits "$user" + ret=$? + ;; + *) printf "BAD STATUS: $(tail -n1 $tmp) for %s\n" "$user"; ret=1 + ret=1 + ;; + esac + rm "$tmp" + return $ret +} +export -f checkCommits + +function checkUser { + local user="$1" + local status= + status="$(curl --silent --head "https://github.com/${user}" | grep Status)" + # checks whether a user handle can be found on github + if [[ "$status" =~ 404 ]]; then + printf "%s\t\t\t\t%s\n" "$status" "$user" + # checks whether the user handle has any nixpkgs commits + elif checkCommits "$user"; then + printf "OK!\t\t\t\t%s\n" "$user" + else + printf "No Commits!\t\t\t%s\n" "$user" + fi +} +export -f checkUser + +# output the maintainers set as json +# and filter out the github username of each maintainer (if it exists) +# then check some at the same time +nix-instantiate -A lib.maintainers --eval --strict --json \ + | jq -r '.[]|.github|select(.)' \ + | parallel -j5 checkUser + +# parallel -j100 checkUser ::: "eelco" "profpatsch" "Profpatsch" "a" diff --git a/nixpkgs/maintainers/scripts/copy-tarballs.pl b/nixpkgs/maintainers/scripts/copy-tarballs.pl new file mode 100755 index 00000000000..59696a4432d --- /dev/null +++ b/nixpkgs/maintainers/scripts/copy-tarballs.pl @@ -0,0 +1,226 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i perl -p perl perlPackages.NetAmazonS3 perlPackages.FileSlurp perlPackages.JSON perlPackages.LWPProtocolHttps nixUnstable nixUnstable.perl-bindings + +# This command uploads tarballs to tarballs.nixos.org, the +# content-addressed cache used by fetchurl as a fallback for when +# upstream tarballs disappear or change. Usage: +# +# 1) To upload one or more files: +# +# $ copy-tarballs.pl --file /path/to/tarball.tar.gz +# +# 2) To upload all files obtained via calls to fetchurl in a Nix derivation: +# +# $ copy-tarballs.pl --expr '(import <nixpkgs> {}).hello' + +use strict; +use warnings; +use File::Basename; +use File::Path; +use File::Slurp; +use JSON; +use Net::Amazon::S3; +use Nix::Store; + +isValidPath("/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-foo"); # FIXME: forces Nix::Store initialisation + +sub usage { + die "Syntax: $0 [--dry-run] [--exclude REGEXP] [--expr EXPR | --file FILES...]\n"; +} + +my $dryRun = 0; +my $expr; +my @fileNames; +my $exclude; + +while (@ARGV) { + my $flag = shift @ARGV; + + if ($flag eq "--expr") { + $expr = shift @ARGV or die "--expr requires an argument"; + } elsif ($flag eq "--file") { + @fileNames = @ARGV; + last; + } elsif ($flag eq "--dry-run") { + $dryRun = 1; + } elsif ($flag eq "--exclude") { + $exclude = shift @ARGV or die "--exclude requires an argument"; + } else { + usage(); + } +} + + +# S3 setup. +my $aws_access_key_id = $ENV{'AWS_ACCESS_KEY_ID'} or die "AWS_ACCESS_KEY_ID not set\n"; +my $aws_secret_access_key = $ENV{'AWS_SECRET_ACCESS_KEY'} or die "AWS_SECRET_ACCESS_KEY not set\n"; + +my $s3 = Net::Amazon::S3->new( + { aws_access_key_id => $aws_access_key_id, + aws_secret_access_key => $aws_secret_access_key, + retry => 1, + host => "s3-eu-west-1.amazonaws.com", + }); + +my $bucket = $s3->bucket("nixpkgs-tarballs") or die; + +my $doWrite = 0; +my $cacheFile = ($ENV{"HOME"} or die "\$HOME is not set") . "/.cache/nix/copy-tarballs"; +my %cache; +$cache{$_} = 1 foreach read_file($cacheFile, err_mode => 'quiet', chomp => 1); +$doWrite = 1; + +END() { + File::Path::mkpath(dirname($cacheFile), 0, 0755); + write_file($cacheFile, map { "$_\n" } keys %cache) if $doWrite; +} + +sub alreadyMirrored { + my ($algo, $hash) = @_; + my $key = "$algo/$hash"; + return 1 if defined $cache{$key}; + my $res = defined $bucket->get_key($key); + $cache{$key} = 1 if $res; + return $res; +} + +sub uploadFile { + my ($fn, $name) = @_; + + my $md5_16 = hashFile("md5", 0, $fn) or die; + my $sha1_16 = hashFile("sha1", 0, $fn) or die; + my $sha256_32 = hashFile("sha256", 1, $fn) or die; + my $sha256_16 = hashFile("sha256", 0, $fn) or die; + my $sha512_32 = hashFile("sha512", 1, $fn) or die; + my $sha512_16 = hashFile("sha512", 0, $fn) or die; + + my $mainKey = "sha512/$sha512_16"; + + # Create redirects from the other hash types. + sub redirect { + my ($name, $dest) = @_; + #print STDERR "linking $name to $dest...\n"; + $bucket->add_key($name, "", { + 'x-amz-website-redirect-location' => "/" . $dest, + 'x-amz-acl' => "public-read" + }) + or die "failed to create redirect from $name to $dest\n"; + $cache{$name} = 1; + } + redirect "md5/$md5_16", $mainKey; + redirect "sha1/$sha1_16", $mainKey; + redirect "sha256/$sha256_32", $mainKey; + redirect "sha256/$sha256_16", $mainKey; + redirect "sha512/$sha512_32", $mainKey; + + # Upload the file as sha512/<hash-in-base-16>. + print STDERR "uploading $fn to $mainKey...\n"; + $bucket->add_key_filename($mainKey, $fn, { + 'x-amz-meta-original-name' => $name, + 'x-amz-acl' => "public-read" + }) + or die "failed to upload $fn to $mainKey\n"; + $cache{$mainKey} = 1; +} + +if (scalar @fileNames) { + my $res = 0; + foreach my $fn (@fileNames) { + eval { + if (alreadyMirrored("sha512", hashFile("sha512", 0, $fn))) { + print STDERR "$fn is already mirrored\n"; + } else { + uploadFile($fn, basename $fn); + } + }; + if ($@) { + warn "$@"; + $res = 1; + } + } + exit $res; +} + +elsif (defined $expr) { + + # Evaluate find-tarballs.nix. + my $pid = open(JSON, "-|", "nix-instantiate", "--eval", "--json", "--strict", + "<nixpkgs/maintainers/scripts/find-tarballs.nix>", + "--arg", "expr", $expr); + my $stdout = <JSON>; + waitpid($pid, 0); + die "$0: evaluation failed\n" if $?; + close JSON; + + my $fetches = decode_json($stdout); + + print STDERR "evaluation returned ", scalar(@{$fetches}), " tarballs\n"; + + # Check every fetchurl call discovered by find-tarballs.nix. + my $mirrored = 0; + my $have = 0; + foreach my $fetch (sort { $a->{url} cmp $b->{url} } @{$fetches}) { + my $url = $fetch->{url}; + my $algo = $fetch->{type}; + my $hash = $fetch->{hash}; + my $name = $fetch->{name}; + + if (defined $ENV{DEBUG}) { + print "$url $algo $hash\n"; + next; + } + + if ($url !~ /^http:/ && $url !~ /^https:/ && $url !~ /^ftp:/ && $url !~ /^mirror:/) { + print STDERR "skipping $url (unsupported scheme)\n"; + next; + } + + next if defined $exclude && $url =~ /$exclude/; + + if (alreadyMirrored($algo, $hash)) { + $have++; + next; + } + + my $storePath = makeFixedOutputPath(0, $algo, $hash, $name); + + print STDERR "mirroring $url ($storePath)...\n"; + + if ($dryRun) { + $mirrored++; + next; + } + + # Substitute the output. + if (!isValidPath($storePath)) { + system("nix-store", "-r", $storePath); + } + + # Otherwise download the file using nix-prefetch-url. + if (!isValidPath($storePath)) { + $ENV{QUIET} = 1; + $ENV{PRINT_PATH} = 1; + my $fh; + my $pid = open($fh, "-|", "nix-prefetch-url", "--type", $algo, $url, $hash) or die; + waitpid($pid, 0) or die; + if ($? != 0) { + print STDERR "failed to fetch $url: $?\n"; + next; + } + <$fh>; my $storePath2 = <$fh>; chomp $storePath2; + if ($storePath ne $storePath2) { + warn "strange: $storePath != $storePath2\n"; + next; + } + } + + uploadFile($storePath, $url); + $mirrored++; + } + + print STDERR "mirrored $mirrored files, already have $have files\n"; +} + +else { + usage(); +} diff --git a/nixpkgs/maintainers/scripts/debian-patches.sh b/nixpkgs/maintainers/scripts/debian-patches.sh new file mode 100755 index 00000000000..b4923fb537e --- /dev/null +++ b/nixpkgs/maintainers/scripts/debian-patches.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +# Download patches from debian project +# Usage $0 debian-patches.txt debian-patches.nix +# An example input and output files can be found in applications/graphics/xara/ + +DEB_URL=https://sources.debian.org/data/main +declare -a deb_patches +mapfile -t deb_patches < $1 + +# First letter +deb_prefix="${deb_patches[0]:0:1}" +prefix="${DEB_URL}/${deb_prefix}/${deb_patches[0]}/debian/patches" + +if [[ -n "$2" ]]; then + exec 1> $2 +fi + +cat <<EOF +# Generated by $(basename $0) from $(basename $1) +let + prefix = "${prefix}"; +in +[ +EOF +for ((i=1;i < ${#deb_patches[@]}; ++i)); do + url="${prefix}/${deb_patches[$i]}" + sha256=$(nix-prefetch-url $url) + echo " {" + echo " url = \"\${prefix}/${deb_patches[$i]}\";" + echo " sha256 = \"$sha256\";" + echo " }" +done +echo "]" diff --git a/nixpkgs/maintainers/scripts/dep-licenses.sh b/nixpkgs/maintainers/scripts/dep-licenses.sh new file mode 100755 index 00000000000..28ad22c334f --- /dev/null +++ b/nixpkgs/maintainers/scripts/dep-licenses.sh @@ -0,0 +1,57 @@ +#!/bin/sh + +attr=$1 + +: ${NIXPKGS=/etc/nixos/nixpkgs} + +tmp=$(mktemp --tmpdir -d nixpkgs-dep-license.XXXXXX) + +exitHandler() { + exitCode=$? + rm -rf "$tmp" + exit $exitCode +} + +trap "exitHandler" EXIT + +# fetch the trace and the drvPath of the attribute. +nix-instantiate $NIXPKGS -A $attr --show-trace > "$tmp/drvPath" 2> "$tmp/trace" || { + cat 1>&2 - "$tmp/trace" <<EOF +An error occurred while evaluating $attr. +EOF + exit 1 +} + +# generate a sed script based on the trace output. +sed ' + \,@:.*:@, { + # \1 *.drv file + # \2 License terms + s,.*@:drv:\(.*\):\(.*\):@.*,s!\1!\1: \2!; t;, + s!Str(\\\"\([^,]*\)\\\",\[\])!\1!g + b + } + d +' "$tmp/trace" > "$tmp/filter.sed" + +if test $(wc -l "$tmp/filter.sed" | sed 's/ .*//') == 0; then + echo 1>&2 " +No derivation mentionned in the stack trace. Either your derivation does +not use stdenv.mkDerivation or you forgot to use the stdenv adapter named +traceDrvLicenses. + +- defaultStdenv = allStdenvs.stdenv; ++ defaultStdenv = traceDrvLicenses allStdenvs.stdenv; +" + exit 1 +fi + + +# remove all dependencies which are using stdenv.mkDerivation +echo ' +d +' >> "$tmp/filter.sed" + +nix-store -q --tree $(cat "$tmp/drvPath") | sed -f "$tmp/filter.sed" + +exit 0; diff --git a/nixpkgs/maintainers/scripts/eval-release.nix b/nixpkgs/maintainers/scripts/eval-release.nix new file mode 100644 index 00000000000..bb9572cbc79 --- /dev/null +++ b/nixpkgs/maintainers/scripts/eval-release.nix @@ -0,0 +1,24 @@ +# Evaluate `release.nix' like Hydra would. Too bad nix-instantiate +# can't to do this. + +with import ../../lib; + +let + trace = if builtins.getEnv "VERBOSE" == "1" then builtins.trace else (x: y: y); + + rel = removeAttrs (import ../../pkgs/top-level/release.nix { }) [ "tarball" "unstable" "xbursttools" ]; + + # Add the ârecurseForDerivationsâ attribute to ensure that + # nix-instantiate recurses into nested attribute sets. + recurse = path: attrs: + if (builtins.tryEval attrs).success then + if isDerivation attrs + then + if (builtins.tryEval attrs.drvPath).success + then { inherit (attrs) name drvPath; } + else { failed = true; } + else { recurseForDerivations = true; } // + mapAttrs (n: v: let path' = path ++ [n]; in trace path' (recurse path' v)) attrs + else { }; + +in recurse [] rel diff --git a/nixpkgs/maintainers/scripts/eval-release.sh b/nixpkgs/maintainers/scripts/eval-release.sh new file mode 100755 index 00000000000..e0dfaf1de74 --- /dev/null +++ b/nixpkgs/maintainers/scripts/eval-release.sh @@ -0,0 +1,11 @@ +#! /bin/sh + +if [[ -z "$VERBOSE" ]]; then + echo "You may set VERBOSE=1 to see debug output or to any other non-empty string to make this script completely silent" +fi +unset HOME NIXPKGS_CONFIG # Force empty config + +# With the default heap size (380MB), nix-instantiate fails: +# Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS +export GC_INITIAL_HEAP_SIZE=${GC_INITIAL_HEAP_SIZE:-2000000000} # 2GB +nix-instantiate --strict --eval-only --xml --show-trace "$(dirname "$0")"/eval-release.nix 2>&1 > /dev/null diff --git a/nixpkgs/maintainers/scripts/fetch-kde-qt.sh b/nixpkgs/maintainers/scripts/fetch-kde-qt.sh new file mode 100755 index 00000000000..c6c980dd0cb --- /dev/null +++ b/nixpkgs/maintainers/scripts/fetch-kde-qt.sh @@ -0,0 +1,62 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i bash -p coreutils findutils gnused nix wget + +set -efuo pipefail + +SRCS= +if [ -d "$1" ]; then + SRCS="$(pwd)/$1/srcs.nix" + . "$1/fetch.sh" +else + SRCS="$(pwd)/$(dirname $1)/srcs.nix" + . "$1" +fi + +tmp=$(mktemp -d) +pushd $tmp >/dev/null +wget -nH -r -c --no-parent "${WGET_ARGS[@]}" -A '*.tar.xz.sha256' -A '*.mirrorlist' >/dev/null +find -type f -name '*.mirrorlist' -delete + +csv=$(mktemp) +find . -type f | while read src; do + # Sanitize file name + filename=$(gawk '{ print $2 }' "$src" | tr '@' '_') + nameVersion="${filename%.tar.*}" + name=$(echo "$nameVersion" | sed -e 's,-[[:digit:]].*,,' | sed -e 's,-opensource-src$,,' | sed -e 's,-everywhere-src$,,') + version=$(echo "$nameVersion" | sed -e 's,^\([[:alpha:]][[:alnum:]]*-\)\+,,') + echo "$name,$version,$src,$filename" >>$csv +done + +cat >"$SRCS" <<EOF +# DO NOT EDIT! This file is generated automatically. +# Command: $0 $@ +{ fetchurl, mirror }: + +{ +EOF + +gawk -F , "{ print \$1 }" $csv | sort | uniq | while read name; do + versions=$(gawk -F , "/^$name,/ { print \$2 }" $csv) + latestVersion=$(echo "$versions" | sort -rV | head -n 1) + src=$(gawk -F , "/^$name,$latestVersion,/ { print \$3 }" $csv) + filename=$(gawk -F , "/^$name,$latestVersion,/ { print \$4 }" $csv) + url="$(dirname "${src:2}")/$filename" + sha256=$(gawk '{ print $1 }' "$src") + cat >>"$SRCS" <<EOF + $name = { + version = "$latestVersion"; + src = fetchurl { + url = "\${mirror}/$url"; + sha256 = "$sha256"; + name = "$filename"; + }; + }; +EOF +done + +echo "}" >>"$SRCS" + +popd >/dev/null +rm -fr $tmp >/dev/null + +rm -f $csv >/dev/null diff --git a/nixpkgs/maintainers/scripts/find-tarballs.nix b/nixpkgs/maintainers/scripts/find-tarballs.nix new file mode 100644 index 00000000000..52cce909918 --- /dev/null +++ b/nixpkgs/maintainers/scripts/find-tarballs.nix @@ -0,0 +1,50 @@ +# This expression returns a list of all fetchurl calls used by âexprâ. + +with import ../.. { }; +with lib; + +{ expr }: + +let + + root = expr; + + uniqueUrls = map (x: x.file) (genericClosure { + startSet = map (file: { key = file.url; inherit file; }) urls; + operator = const [ ]; + }); + + urls = map (drv: { url = head (drv.urls or [ drv.url ]); hash = drv.outputHash; type = drv.outputHashAlgo; name = drv.name; }) fetchurlDependencies; + + fetchurlDependencies = + filter + (drv: drv.outputHash or "" != "" && drv.outputHashMode or "flat" == "flat" + && drv.postFetch or "" == "" && (drv ? url || drv ? urls)) + dependencies; + + dependencies = map (x: x.value) (genericClosure { + startSet = map keyDrv (derivationsIn' root); + operator = { key, value }: map keyDrv (immediateDependenciesOf value); + }); + + derivationsIn' = x: + if !canEval x then [] + else if isDerivation x then optional (canEval x.drvPath) x + else if isList x then concatLists (map derivationsIn' x) + else if isAttrs x then concatLists (mapAttrsToList (n: v: addErrorContext "while finding tarballs in '${n}':" (derivationsIn' v)) x) + else [ ]; + + keyDrv = drv: if canEval drv.drvPath then { key = drv.drvPath; value = drv; } else { }; + + immediateDependenciesOf = drv: + concatLists (mapAttrsToList (n: v: derivationsIn v) (removeAttrs drv ["meta" "passthru"])); + + derivationsIn = x: + if !canEval x then [] + else if isDerivation x then optional (canEval x.drvPath) x + else if isList x then concatLists (map derivationsIn x) + else [ ]; + + canEval = val: (builtins.tryEval val).success; + +in uniqueUrls diff --git a/nixpkgs/maintainers/scripts/hydra-eval-failures.py b/nixpkgs/maintainers/scripts/hydra-eval-failures.py new file mode 100755 index 00000000000..0f738c5427b --- /dev/null +++ b/nixpkgs/maintainers/scripts/hydra-eval-failures.py @@ -0,0 +1,112 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p 'python3.withPackages(ps: with ps; [ requests pyquery click ])' + +# To use, just execute this script with --help to display help. + +import subprocess +import json +import sys + +import click +import requests +from pyquery import PyQuery as pq + +def map_dict (f, d): + for k,v in d.items(): + d[k] = f(v) + +maintainers_json = subprocess.check_output([ + 'nix-instantiate', '-A', 'lib.maintainers', '--eval', '--strict', '--json' +]) +maintainers = json.loads(maintainers_json) +MAINTAINERS = map_dict(lambda v: v.get('github', None), maintainers) + +def get_response_text(url): + return pq(requests.get(url).text) # IO + +EVAL_FILE = { + 'nixos': 'nixos/release.nix', + 'nixpkgs': 'pkgs/top-level/release.nix', +} + + +def get_maintainers(attr_name): + try: + nixname = attr_name.split('.') + meta_json = subprocess.check_output([ + 'nix-instantiate', + '--eval', + '--strict', + '-A', + '.'.join(nixname[1:]) + '.meta', + EVAL_FILE[nixname[0]], + '--arg', + 'nixpkgs', + './.', + '--json']) + meta = json.loads(meta_json) + return meta.get('maintainers', []) + except: + return [] + +def filter_github_users(maintainers): + github_only = [] + for i in maintainers: + if i.get('github'): + github_only.append(i) + return github_only + +def print_build(table_row): + a = pq(table_row)('a')[1] + print("- [ ] [{}]({})".format(a.text, a.get('href')), flush=True) + + job_maintainers = filter_github_users(get_maintainers(a.text)) + if job_maintainers: + print(" - maintainers: {}".format(" ".join(map(lambda u: '@' + u.get('github'), job_maintainers)))) + # TODO: print last three persons that touched this file + # TODO: pinpoint the diff that broke this build, or maybe it's transient or maybe it never worked? + + sys.stdout.flush() + +@click.command() +@click.option( + '--jobset', + default="nixos/release-19.09", + help='Hydra project like nixos/release-19.09') +def cli(jobset): + """ + Given a Hydra project, inspect latest evaluation + and print a summary of failed builds + """ + + url = "https://hydra.nixos.org/jobset/{}".format(jobset) + + # get the last evaluation + click.echo(click.style( + 'Getting latest evaluation for {}'.format(url), fg='green')) + d = get_response_text(url) + evaluations = d('#tabs-evaluations').find('a[class="row-link"]') + latest_eval_url = evaluations[0].get('href') + + # parse last evaluation page + click.echo(click.style( + 'Parsing evaluation {}'.format(latest_eval_url), fg='green')) + d = get_response_text(latest_eval_url + '?full=1') + + # TODO: aborted evaluations + # TODO: dependency failed without propagated builds + print('\nFailures:') + for tr in d('img[alt="Failed"]').parents('tr'): + print_build(tr) + + print('\nDependency failures:') + for tr in d('img[alt="Dependency failed"]').parents('tr'): + print_build(tr) + + + +if __name__ == "__main__": + try: + cli() + except Exception as e: + import pdb;pdb.post_mortem() diff --git a/nixpkgs/maintainers/scripts/hydra_eval_check b/nixpkgs/maintainers/scripts/hydra_eval_check new file mode 100755 index 00000000000..c8e03424f32 --- /dev/null +++ b/nixpkgs/maintainers/scripts/hydra_eval_check @@ -0,0 +1,13 @@ +#! /bin/sh + +# give absolute path of release.nix as argument +hydra_eval_jobs \ + --argstr system x86_64-linux \ + --argstr system i686-linux \ + --argstr system x86_64-darwin \ + --argstr system i686-cygwin \ + --argstr system x86_64-cygwin \ + --argstr system i686-freebsd \ + --arg officialRelease false \ + --arg nixpkgs "{ outPath = builtins.storePath ./. ; rev = 1234; }" \ + $@ diff --git a/nixpkgs/maintainers/scripts/luarocks-config.lua b/nixpkgs/maintainers/scripts/luarocks-config.lua new file mode 100644 index 00000000000..89e74c00ea8 --- /dev/null +++ b/nixpkgs/maintainers/scripts/luarocks-config.lua @@ -0,0 +1,4 @@ +rocks_servers = { + "https://luarocks.org" +} +version_check_on_fail = false diff --git a/nixpkgs/maintainers/scripts/luarocks-packages.csv b/nixpkgs/maintainers/scripts/luarocks-packages.csv new file mode 100644 index 00000000000..cb934ae3752 --- /dev/null +++ b/nixpkgs/maintainers/scripts/luarocks-packages.csv @@ -0,0 +1,80 @@ +# nix name, luarocks name, server, version,luaversion,maintainers +alt-getopt,,,,,arobyn +ansicolors,,,,, +argparse,,,,, +basexx,,,,, +binaryheap,,,,,vcunat +bit32,,,,lua5_1,lblasc +busted,,,,, +cassowary,,,,,marsam +cjson,lua-cjson,,,, +compat53,,,,,vcunat +cosmo,,,,,marsam +coxpcall,,,1.17.0-1,, +cqueues,,,,,vcunat +cyrussasl,,,,,vcunat +digestif,,,,lua5_3, +dkjson,,,,, +fifo,,,,, +http,,,,,vcunat +inspect,,,,, +ldoc,,,,, +lgi,,,,, +linenoise,,,,, +ljsyscall,,,,lua5_1,lblasc +lpeg,,,,,vyp +lpeg_patterns,,,,, +lpeglabel,,,,, +lpty,,,,, +lrexlib-gnu,,,,, +lrexlib-pcre,,,,,vyp +lrexlib-posix,,,,, +ltermbox,,,,, +lua-cmsgpack,,,,, +lua-iconv,,,,, +lua-lsp,,http://luarocks.org/dev,,, +lua-messagepack,,,,, +lua-term,,,,, +lua-toml,,,,, +lua-zlib,,,,,koral +lua_cliargs,,,,, +luabitop,,,,, +luacheck,,,,, +luacov,,,,, +luadbi,,,,, +luadbi-mysql,,,,, +luadbi-postgresql,,,,, +luadbi-sqlite3,,,,, +luadoc,,,,, +luaepnf,,,,, +luaevent,,,,, +luaexpat,,,1.3.0-1,,arobyn flosse +luaffi,,http://luarocks.org/dev,,, +luafilesystem,,,1.7.0-2,,flosse vcunat +lualogging,,,,, +luaossl,,,,lua5_1,vcunat +luaposix,,,,,vyp lblasc +luarepl,,,,, +luasec,,,,,flosse +luasocket,,,,, +luasql-sqlite3,,,,,vyp +luassert,,,,, +luasystem,,,,, +luautf8,,,,,pstn +luazip,,,,, +lua-yajl,,,,,pstn +luuid,,,,, +luv,,,,, +markdown,,,,, +mediator_lua,,,,, +mpack,,,,, +moonscript,,,,,arobyn +nvim-client,,,,, +penlight,,,,, +rapidjson,,,,, +say,,,,, +std__debug,std._debug,,,, +std_normalize,std.normalize,,,, +stdlib,,,,,vyp +pulseaudio,,,,,doronbehar +vstruct,,,,, diff --git a/nixpkgs/maintainers/scripts/nix-call-package b/nixpkgs/maintainers/scripts/nix-call-package new file mode 100755 index 00000000000..be478fca2b7 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nix-call-package @@ -0,0 +1,5 @@ +#! /bin/sh + +echo "let pkgs = import <nixpkgs$2> {}; x = pkgs.callPackage $1 { $3 }; in ${4:-x}" | +nix-instantiate --show-trace - | +xargs nix-store -r -K diff --git a/nixpkgs/maintainers/scripts/nix-diff.sh b/nixpkgs/maintainers/scripts/nix-diff.sh new file mode 100755 index 00000000000..0c65e29cf43 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nix-diff.sh @@ -0,0 +1,277 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p coreutils gnugrep gnused + +################################################################################ +# nix-diff.sh # +################################################################################ +# This script "diffs" Nix profile generations. # +# # +# Example: # +################################################################################ +# > nix-diff.sh 90 92 # +# + gnumake-4.2.1 # +# + gnumake-4.2.1-doc # +# - htmldoc-1.8.29 # +################################################################################ +# The example shows that as of generation 92 and since generation 90, # +# gnumake-4.2.1 and gnumake-4.2.1-doc have been installed, while # +# htmldoc-1.8.29 has been removed. # +# # +# The example above shows the default, minimal output mode of this script. # +# For more features, run `nix-diff.sh -h` for usage instructions. # +################################################################################ + +usage() { + cat <<EOF +usage: nix-diff.sh [-h | [-p profile | -s] [-q] [-l] [range]] +-h: print this message before exiting +-q: list the derivations installed in the parent generation +-l: diff every available intermediate generation between parent and + child +-p profile: specify the Nix profile to use + * defaults to ~/.nix-profile +-s: use the system profile + * equivalent to: -p /nix/var/nix/profiles/system +profile: * should be something like /nix/var/nix/profiles/default, not a + generation link like /nix/var/nix/profiles/default-2-link +range: the range of generations to diff + * the following patterns are allowed, where A, B, and N are positive + integers, and G is the currently active generation: + A..B => diffs from generation A to generation B + ~N => diffs from the Nth newest generation (older than G) to G + A => diffs from generation A to G + * defaults to ~1 +EOF +} + +usage_tip() { + echo 'run `nix-diff.sh -h` for usage instructions' >&2 + exit 1 +} + +while getopts :hqlp:s opt; do + case $opt in + h) + usage + exit + ;; + q) + opt_query=1 + ;; + l) + opt_log=1 + ;; + p) + opt_profile=$OPTARG + ;; + s) + opt_profile=/nix/var/nix/profiles/system + ;; + \?) + echo "error: invalid option -$OPTARG" >&2 + usage_tip + ;; + esac +done +shift $((OPTIND-1)) + +if [ -n "$opt_profile" ]; then + if ! [ -L "$opt_profile" ]; then + echo "error: expecting \`$opt_profile\` to be a symbolic link" >&2 + usage_tip + fi +else + opt_profile=$(readlink ~/.nix-profile) + if (( $? != 0 )); then + echo 'error: unable to dereference `~/.nix-profile`' >&2 + echo 'specify the profile manually with the `-p` flag' >&2 + usage_tip + fi +fi + +list_gens() { + nix-env -p "$opt_profile" --list-generations \ + | sed -r 's:^\s*::' \ + | cut -d' ' -f1 +} + +current_gen() { + nix-env -p "$opt_profile" --list-generations \ + | grep -E '\(current\)\s*$' \ + | sed -r 's:^\s*::' \ + | cut -d' ' -f1 +} + +neg_gen() { + local i=0 from=$1 n=$2 tmp + for gen in $(list_gens | sort -rn); do + if ((gen < from)); then + tmp=$gen + ((i++)) + ((i == n)) && break + fi + done + if ((i < n)); then + echo -n "error: there aren't $n generation(s) older than" >&2 + echo " generation $from" >&2 + return 1 + fi + echo $tmp +} + +match() { + argv=("$@") + for i in $(seq $(($#-1))); do + if grep -E "^${argv[$i]}\$" <(echo "$1") >/dev/null; then + echo $i + return + fi + done + echo 0 +} + +case $(match "$1" '' '[0-9]+' '[0-9]+\.\.[0-9]+' '~[0-9]+') in + 1) + diffTo=$(current_gen) + diffFrom=$(neg_gen $diffTo 1) + (($? == 1)) && usage_tip + ;; + 2) + diffFrom=$1 + diffTo=$(current_gen) + ;; + 3) + diffFrom=${1%%.*} + diffTo=${1##*.} + ;; + 4) + diffTo=$(current_gen) + diffFrom=$(neg_gen $diffTo ${1#*~}) + (($? == 1)) && usage_tip + ;; + 0) + echo 'error: invalid invocation' >&2 + usage_tip + ;; +esac + +dirA="${opt_profile}-${diffFrom}-link" +dirB="${opt_profile}-${diffTo}-link" + +declare -a temp_files +temp_length() { + echo -n ${#temp_files[@]} +} +temp_make() { + temp_files[$(temp_length)]=$(mktemp) +} +temp_clean() { + rm -f ${temp_files[@]} +} +temp_name() { + echo -n "${temp_files[$(($(temp_length)-1))]}" +} +trap 'temp_clean' EXIT + +temp_make +versA=$(temp_name) +refs=$(nix-store -q --references "$dirA") +(( $? != 0 )) && exit 1 +echo "$refs" \ + | grep -v env-manifest.nix \ + | sort \ + > "$versA" + +print_tag() { + local gen=$1 + nix-env -p "$opt_profile" --list-generations \ + | grep -E "^\s*${gen}" \ + | sed -r 's:^\s*::' \ + | sed -r 's:\s*$::' +} + +if [ -n "$opt_query" ]; then + print_tag $diffFrom + cat "$versA" \ + | sed -r 's:^[^-]+-(.*)$: \1:' + + print_line=1 +fi + +if [ -n "$opt_log" ]; then + gens=$(for gen in $(list_gens); do + ((diffFrom < gen && gen < diffTo)) && echo $gen + done) + # Force the $diffTo generation to be included in this list, instead of using + # `gen <= diffTo` in the preceding loop, so we encounter an error upon the + # event of its nonexistence. + gens=$(echo "$gens" + echo $diffTo) +else + gens=$diffTo +fi + +temp_make +add=$(temp_name) +temp_make +rem=$(temp_name) +temp_make +out=$(temp_name) + +for gen in $gens; do + + [ -n "$print_line" ] && echo + + temp_make + versB=$(temp_name) + + dirB="${opt_profile}-${gen}-link" + refs=$(nix-store -q --references "$dirB") + (( $? != 0 )) && exit 1 + echo "$refs" \ + | grep -v env-manifest.nix \ + | sort \ + > "$versB" + + in=$(comm -3 -1 "$versA" "$versB") + sed -r 's:^[^-]*-(.*)$:\1+:' <(echo "$in") \ + | sort -f \ + > "$add" + + un=$(comm -3 -2 "$versA" "$versB") + sed -r 's:^[^-]*-(.*)$:\1-:' <(echo "$un") \ + | sort -f \ + > "$rem" + + cat "$rem" "$add" \ + | sort -f \ + | sed -r 's:(.*)-$:- \1:' \ + | sed -r 's:(.*)\+$:\+ \1:' \ + | grep -v '^$' \ + > "$out" + + if [ -n "$opt_query" -o -n "$opt_log" ]; then + + lines=$(wc -l "$out" | cut -d' ' -f1) + tag=$(print_tag "$gen") + (( $? != 0 )) && exit 1 + if [ $lines -eq 0 ]; then + echo "$tag (no change)" + else + echo "$tag" + fi + cat "$out" \ + | sed 's:^: :' + + print_line=1 + + else + echo "diffing from generation $diffFrom to $diffTo" + cat "$out" + fi + + versA=$versB + +done + +exit 0 diff --git a/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix new file mode 100644 index 00000000000..5c4cf0f6c55 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.nix @@ -0,0 +1,25 @@ +{ stdenv, makeWrapper, perl, perlPackages }: + +stdenv.mkDerivation { + name = "nix-generate-from-cpan-3"; + + buildInputs = with perlPackages; [ + makeWrapper perl GetoptLongDescriptive CPANPLUS Readonly LogLog4perl + ]; + + phases = [ "installPhase" ]; + + installPhase = + '' + mkdir -p $out/bin + cp ${./nix-generate-from-cpan.pl} $out/bin/nix-generate-from-cpan + patchShebangs $out/bin/nix-generate-from-cpan + wrapProgram $out/bin/nix-generate-from-cpan --set PERL5LIB $PERL5LIB + ''; + + meta = { + maintainers = with stdenv.lib.maintainers; [ eelco rycee ]; + description = "Utility to generate a Nix expression for a Perl package from CPAN"; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/maintainers/scripts/nix-generate-from-cpan.pl b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.pl new file mode 100755 index 00000000000..f02af4ea669 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nix-generate-from-cpan.pl @@ -0,0 +1,466 @@ +#!/usr/bin/env perl + +use utf8; +use strict; +use warnings; + +use CPAN::Meta(); +use CPANPLUS::Backend(); +use Module::CoreList; +use Getopt::Long::Descriptive qw( describe_options ); +use JSON::PP qw( encode_json ); +use Log::Log4perl qw(:easy); +use Readonly(); + +# Readonly hash that maps CPAN style license strings to information +# necessary to generate a Nixpkgs style license attribute. +Readonly::Hash my %LICENSE_MAP => ( + + # The Perl 5 License (Artistic 1 & GPL 1 or later). + perl_5 => { + licenses => [qw( artistic1 gpl1Plus )] + }, + + # GNU Affero General Public License, Version 3. + agpl_3 => { + licenses => [qw( agpl3Plus )], + amb => 1 + }, + + # Apache Software License, Version 1.1. + apache_1_1 => { + licenses => ["Apache License 1.1"], + in_set => 0 + }, + + # Apache License, Version 2.0. + apache_2_0 => { + licenses => [qw( asl20 )] + }, + + # Artistic License, (Version 1). + artistic_1 => { + licenses => [qw( artistic1 )] + }, + + # Artistic License, Version 2.0. + artistic_2 => { + licenses => [qw( artistic2 )] + }, + + # BSD License (three-clause). + bsd => { + licenses => [qw( bsd3 )], + amb => 1 + }, + + # FreeBSD License (two-clause). + freebsd => { + licenses => [qw( bsd2 )] + }, + + # GNU Free Documentation License, Version 1.2. + gfdl_1_2 => { + licenses => [qw( fdl12 )] + }, + + # GNU Free Documentation License, Version 1.3. + gfdl_1_3 => { + licenses => [qw( fdl13 )] + }, + + # GNU General Public License, Version 1. + gpl_1 => { + licenses => [qw( gpl1Plus )], + amb => 1 + }, + + # GNU General Public License, Version 2. Note, we will interpret + # "gpl" alone as GPL v2+. + gpl_2 => { + licenses => [qw( gpl2Plus )], + amb => 1 + }, + + # GNU General Public License, Version 3. + gpl_3 => { + licenses => [qw( gpl3Plus )], + amb => 1 + }, + + # GNU Lesser General Public License, Version 2.1. Note, we will + # interpret "gpl" alone as LGPL v2.1+. + lgpl_2_1 => { + licenses => [qw( lgpl21Plus )], + amb => 1 + }, + + # GNU Lesser General Public License, Version 3.0. + lgpl_3_0 => { + licenses => [qw( lgpl3Plus )], + amb => 1 + }, + + # MIT (aka X11) License. + mit => { + licenses => [qw( mit )] + }, + + # Mozilla Public License, Version 1.0. + mozilla_1_0 => { + licenses => [qw( mpl10 )] + }, + + # Mozilla Public License, Version 1.1. + mozilla_1_1 => { + licenses => [qw( mpl11 )] + }, + + # OpenSSL License. + openssl => { + licenses => [qw( openssl )] + }, + + # Q Public License, Version 1.0. + qpl_1_0 => { + licenses => [qw( qpl )] + }, + + # Original SSLeay License. + ssleay => { + licenses => ["Original SSLeay License"], + in_set => 0 + }, + + # Sun Internet Standards Source License (SISSL). + sun => { + licenses => ["Sun Industry Standards Source License v1.1"], + in_set => 0 + }, + + # zlib License. + zlib => { + licenses => [qw( zlib )] + }, + + # Other Open Source Initiative (OSI) approved license. + open_source => { + licenses => [qw( free )], + amb => 1 + }, + + # Requires special permission from copyright holder. + restricted => { + licenses => [qw( unfree )], + amb => 1 + }, + + # Not an OSI approved license, but not restricted. Note, we + # currently map this to unfreeRedistributable, which is a + # conservative choice. + unrestricted => { + licenses => [qw( unfreeRedistributable )], + amb => 1 + }, + + # License not provided in metadata. + unknown => { + licenses => [], + amb => 1 + } +); + +sub handle_opts { + my ( $opt, $usage ) = describe_options( + 'usage: $0 %o MODULE', + [ 'maintainer|m=s', 'the package maintainer' ], + [ 'debug|d', 'enable debug output' ], + [ 'help', 'print usage message and exit' ] + ); + + if ( $opt->help ) { + print $usage->text; + exit; + } + + my $module_name = $ARGV[0]; + + if ( !defined $module_name ) { + print STDERR "Missing module name\n"; + print STDERR $usage->text; + exit 1; + } + + return ( $opt, $module_name ); +} + +# Takes a Perl package attribute name and returns 1 if the name cannot +# be referred to as a bareword. This typically happens if the package +# name is a reserved Nix keyword. +sub is_reserved { + my ($pkg) = @_; + + return $pkg =~ /^(?: assert | + else | + if | + import | + in | + inherit | + let | + rec | + then | + while | + with )$/x; +} + +sub pkg_to_attr { + my ($module) = @_; + my $attr_name = $module->package_name; + if ( $attr_name eq "libwww-perl" ) { + return "LWP"; + } + else { + $attr_name =~ s/-//g; + return $attr_name; + } +} + +sub get_pkg_name { + my ($module) = @_; + return ( $module->package_name, $module->package_version =~ s/^v(\d)/$1/r ); +} + +sub read_meta { + my ($pkg_path) = @_; + + my $yaml_path = "$pkg_path/META.yml"; + my $json_path = "$pkg_path/META.json"; + my $meta; + + if ( -r $json_path ) { + $meta = CPAN::Meta->load_file($json_path); + } + elsif ( -r $yaml_path ) { + $meta = CPAN::Meta->load_file($yaml_path); + } + else { + WARN("package has no META.yml or META.json"); + } + + return $meta; +} + +# Map a module to the attribute corresponding to its package +# (e.g. HTML::HeadParser will be mapped to HTMLParser, because that +# module is in the HTML-Parser package). +sub module_to_pkg { + my ( $cb, $module_name ) = @_; + my @modules = $cb->search( type => "name", allow => [$module_name] ); + if ( scalar @modules == 0 ) { + + # Fallback. + $module_name =~ s/:://g; + return $module_name; + } + my $module = $modules[0]; + my $attr_name = pkg_to_attr($module); + DEBUG("mapped dep $module_name to $attr_name"); + return $attr_name; +} + +sub get_deps { + my ( $cb, $meta, $type ) = @_; + + return if !defined $meta; + + my $prereqs = $meta->effective_prereqs; + my $deps = $prereqs->requirements_for( $type, "requires" ); + my @res; + foreach my $n ( $deps->required_modules ) { + next if $n eq "perl"; + + my @core = Module::CoreList->find_modules(qr/^$n$/); + next if (@core); + + my $pkg = module_to_pkg( $cb, $n ); + + # If the package name is reserved then we need to refer to it + # through the "self" variable. + $pkg = "self.\"$pkg\"" if is_reserved($pkg); + + push @res, $pkg; + } + return @res; +} + +sub uniq { + return keys %{ { map { $_ => 1 } @_ } }; +} + +sub render_license { + my ($cpan_license) = @_; + + return if !defined $cpan_license; + + my $licenses; + + # If the license is ambiguous then we'll print an extra warning. + # For example, "gpl_2" is ambiguous since it may refer to exactly + # "GPL v2" or to "GPL v2 or later". + my $amb = 0; + + # Whether the license is available inside `stdenv.lib.licenses`. + my $in_set = 1; + + my $nix_license = $LICENSE_MAP{$cpan_license}; + if ( !$nix_license ) { + WARN("Unknown license: $cpan_license"); + $licenses = [$cpan_license]; + $in_set = 0; + } + else { + $licenses = $nix_license->{licenses}; + $amb = $nix_license->{amb}; + $in_set = !$nix_license->{in_set}; + } + + my $license_line; + + if ( @$licenses == 0 ) { + + # Avoid defining the license line. + } + elsif ($in_set) { + my $lic = 'stdenv.lib.licenses'; + if ( @$licenses == 1 ) { + $license_line = "$lic.$licenses->[0]"; + } + else { + $license_line = "with $lic; [ " . join( ' ', @$licenses ) . " ]"; + } + } + else { + if ( @$licenses == 1 ) { + $license_line = $licenses->[0]; + } + else { + $license_line = '[ ' . join( ' ', @$licenses ) . ' ]'; + } + } + + INFO("license: $cpan_license"); + WARN("License '$cpan_license' is ambiguous, please verify") if $amb; + + return $license_line; +} + +my ( $opt, $module_name ) = handle_opts(); + +Log::Log4perl->easy_init( + { + level => $opt->debug ? $DEBUG : $INFO, + layout => '%m%n' + } +); + +my $cb = CPANPLUS::Backend->new; + +my @modules = $cb->search( type => "name", allow => [$module_name] ); +die "module $module_name not found\n" if scalar @modules == 0; +die "multiple packages that match module $module_name\n" if scalar @modules > 1; +my $module = $modules[0]; + +my ($pkg_name, $pkg_version) = get_pkg_name $module; +my $attr_name = pkg_to_attr $module; + +INFO( "attribute name: ", $attr_name ); +INFO( "module: ", $module->module ); +INFO( "version: ", $module->version ); +INFO( "package: ", $module->package, " (", "$pkg_name-$pkg_version", ", ", $attr_name, ")" ); +INFO( "path: ", $module->path ); + +my $tar_path = $module->fetch(); +INFO( "downloaded to: ", $tar_path ); +INFO( "sha-256: ", $module->status->checksum_value ); + +my $pkg_path = $module->extract(); +INFO( "unpacked to: ", $pkg_path ); + +my $meta = read_meta($pkg_path); + +DEBUG( "metadata: ", encode_json( $meta->as_struct ) ) if defined $meta; + +my @runtime_deps = sort( uniq( get_deps( $cb, $meta, "runtime" ) ) ); +INFO("runtime deps: @runtime_deps"); + +my @build_deps = sort( uniq( + get_deps( $cb, $meta, "configure" ), + get_deps( $cb, $meta, "build" ), + get_deps( $cb, $meta, "test" ) +) ); + +# Filter out runtime dependencies since those are already handled. +my %in_runtime_deps = map { $_ => 1 } @runtime_deps; +@build_deps = grep { not $in_runtime_deps{$_} } @build_deps; + +INFO("build deps: @build_deps"); + +my $homepage = $meta ? $meta->resources->{homepage} : undef; +INFO("homepage: $homepage") if defined $homepage; + +my $description = $meta ? $meta->abstract : undef; +if ( defined $description ) { + $description = uc( substr( $description, 0, 1 ) ) + . substr( $description, 1 ); # capitalise first letter + $description =~ s/\.$//; # remove period at the end + $description =~ s/\s*$//; + $description =~ s/^\s*//; + $description =~ s/\n+/ /; # Replace new lines by space. + INFO("description: $description"); +} + +#print(Data::Dumper::Dumper($meta->licenses) . "\n"); +my $license = $meta ? render_license( $meta->licenses ) : undef; + +INFO( "RSS feed: https://metacpan.org/feed/distribution/", + $module->package_name ); + +my $build_fun = -e "$pkg_path/Build.PL" + && !-e "$pkg_path/Makefile.PL" ? "buildPerlModule" : "buildPerlPackage"; + +print STDERR "===\n"; + +print <<EOF; + ${\(is_reserved($attr_name) ? "\"$attr_name\"" : $attr_name)} = $build_fun { + pname = "$pkg_name"; + version = "$pkg_version"; + src = fetchurl { + url = "mirror://cpan/${\$module->path}/${\$module->package}"; + sha256 = "${\$module->status->checksum_value}"; + }; +EOF +print <<EOF if scalar @build_deps > 0; + buildInputs = [ @build_deps ]; +EOF +print <<EOF if scalar @runtime_deps > 0; + propagatedBuildInputs = [ @runtime_deps ]; +EOF +print <<EOF; + meta = { +EOF +print <<EOF if defined $homepage; + homepage = $homepage; +EOF +print <<EOF if defined $description && $description ne "Unknown"; + description = "$description"; +EOF +print <<EOF if defined $license; + license = $license; +EOF +print <<EOF if $opt->maintainer; + maintainers = [ maintainers.${\$opt->maintainer} ]; +EOF +print <<EOF; + }; + }; +EOF diff --git a/nixpkgs/maintainers/scripts/nixpkgs-lint.nix b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix new file mode 100644 index 00000000000..6d99c94bf33 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nixpkgs-lint.nix @@ -0,0 +1,23 @@ +{ stdenv, makeWrapper, perl, perlPackages }: + +stdenv.mkDerivation { + name = "nixpkgs-lint-1"; + + buildInputs = [ makeWrapper perl perlPackages.XMLSimple ]; + + dontUnpack = true; + buildPhase = "true"; + + installPhase = + '' + mkdir -p $out/bin + cp ${./nixpkgs-lint.pl} $out/bin/nixpkgs-lint + wrapProgram $out/bin/nixpkgs-lint --set PERL5LIB $PERL5LIB + ''; + + meta = { + maintainers = [ stdenv.lib.maintainers.eelco ]; + description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors"; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/nixpkgs/maintainers/scripts/nixpkgs-lint.pl b/nixpkgs/maintainers/scripts/nixpkgs-lint.pl new file mode 100755 index 00000000000..638d1b2aaa1 --- /dev/null +++ b/nixpkgs/maintainers/scripts/nixpkgs-lint.pl @@ -0,0 +1,173 @@ +#! /usr/bin/env nix-shell +#! nix-shell -i perl -p perl perlPackages.XMLSimple + +use strict; +use List::Util qw(min); +use XML::Simple qw(:strict); +use Getopt::Long qw(:config gnu_getopt); + +# Parse the command line. +my $path = "<nixpkgs>"; +my $filter = "*"; +my $maintainer; + +sub showHelp { + print <<EOF; +Usage: $0 [--package=NAME] [--maintainer=REGEXP] [--file=PATH] + +Check Nixpkgs for common errors/problems. + + -p, --package filter packages by name (default is â*â) + -m, --maintainer filter packages by maintainer (case-insensitive regexp) + -f, --file path to Nixpkgs (default is â<nixpkgs>â) + +Examples: + \$ nixpkgs-lint -f /my/nixpkgs -p firefox + \$ nixpkgs-lint -f /my/nixpkgs -m eelco +EOF + exit 0; +} + +GetOptions("package|p=s" => \$filter, + "maintainer|m=s" => \$maintainer, + "file|f=s" => \$path, + "help" => sub { showHelp() } + ) or exit 1; + +# Evaluate Nixpkgs into an XML representation. +my $xml = `nix-env -f '$path' -qa '$filter' --xml --meta --drv-path`; +die "$0: evaluation of â$pathâ failed\n" if $? != 0; + +my $info = XMLin($xml, KeyAttr => { 'item' => '+attrPath', 'meta' => 'name' }, ForceArray => 1, SuppressEmpty => '' ) or die "cannot parse XML output"; + +# Check meta information. +print "=== Package meta information ===\n\n"; +my $nrBadNames = 0; +my $nrMissingMaintainers = 0; +my $nrMissingPlatforms = 0; +my $nrMissingDescriptions = 0; +my $nrBadDescriptions = 0; +my $nrMissingLicenses = 0; + +foreach my $attr (sort keys %{$info->{item}}) { + my $pkg = $info->{item}->{$attr}; + + my $pkgName = $pkg->{name}; + my $pkgVersion = ""; + if ($pkgName =~ /(.*)(-[0-9].*)$/) { + $pkgName = $1; + $pkgVersion = $2; + } + + # Check the maintainers. + my @maintainers; + my $x = $pkg->{meta}->{maintainers}; + if (defined $x && $x->{type} eq "strings") { + @maintainers = map { $_->{value} } @{$x->{string}}; + } elsif (defined $x->{value}) { + @maintainers = ($x->{value}); + } + + if (defined $maintainer && scalar(grep { $_ =~ /$maintainer/i } @maintainers) == 0) { + delete $info->{item}->{$attr}; + next; + } + + if (scalar @maintainers == 0) { + print "$attr: Lacks a maintainer\n"; + $nrMissingMaintainers++; + } + + # Check the platforms. + if (!defined $pkg->{meta}->{platforms}) { + print "$attr: Lacks a platform\n"; + $nrMissingPlatforms++; + } + + # Package names should not be capitalised. + if ($pkgName =~ /^[A-Z]/) { + print "$attr: package name â$pkgNameâ should not be capitalised\n"; + $nrBadNames++; + } + + if ($pkgVersion eq "") { + print "$attr: package has no version\n"; + $nrBadNames++; + } + + # Check the license. + if (!defined $pkg->{meta}->{license}) { + print "$attr: Lacks a license\n"; + $nrMissingLicenses++; + } + + # Check the description. + my $description = $pkg->{meta}->{description}->{value}; + if (!$description) { + print "$attr: Lacks a description\n"; + $nrMissingDescriptions++; + } else { + my $bad = 0; + if ($description =~ /^\s/) { + print "$attr: Description starts with whitespace\n"; + $bad = 1; + } + if ($description =~ /\s$/) { + print "$attr: Description ends with whitespace\n"; + $bad = 1; + } + if ($description =~ /\.$/) { + print "$attr: Description ends with a period\n"; + $bad = 1; + } + if (index(lc($description), lc($attr)) != -1) { + print "$attr: Description contains package name\n"; + $bad = 1; + } + $nrBadDescriptions++ if $bad; + } +} + +print "\n"; + +# Find packages that have the same name. +print "=== Package name collisions ===\n\n"; + +my %pkgsByName; + +foreach my $attr (sort keys %{$info->{item}}) { + my $pkg = $info->{item}->{$attr}; + #print STDERR "attr = $attr, name = $pkg->{name}\n"; + $pkgsByName{$pkg->{name}} //= []; + push @{$pkgsByName{$pkg->{name}}}, $pkg; +} + +my $nrCollisions = 0; +foreach my $name (sort keys %pkgsByName) { + my @pkgs = @{$pkgsByName{$name}}; + + # Filter attributes that are aliases of each other (e.g. yield the + # same derivation path). + my %drvsSeen; + @pkgs = grep { my $x = $drvsSeen{$_->{drvPath}}; $drvsSeen{$_->{drvPath}} = 1; !defined $x } @pkgs; + + # Filter packages that have a lower priority. + my $highest = min (map { $_->{meta}->{priority}->{value} // 0 } @pkgs); + @pkgs = grep { ($_->{meta}->{priority}->{value} // 0) == $highest } @pkgs; + + next if scalar @pkgs == 1; + + $nrCollisions++; + print "The following attributes evaluate to a package named â$nameâ:\n"; + print " ", join(", ", map { $_->{attrPath} } @pkgs), "\n\n"; +} + +print "=== Bottom line ===\n"; +print "Number of packages: ", scalar(keys %{$info->{item}}), "\n"; +print "Number of bad names: $nrBadNames\n"; +print "Number of missing maintainers: $nrMissingMaintainers\n"; +print "Number of missing platforms: $nrMissingPlatforms\n"; +print "Number of missing licenses: $nrMissingLicenses\n"; +print "Number of missing descriptions: $nrMissingDescriptions\n"; +print "Number of bad descriptions: $nrBadDescriptions\n"; +print "Number of name collisions: $nrCollisions\n"; diff --git a/nixpkgs/maintainers/scripts/patchelf-hints.sh b/nixpkgs/maintainers/scripts/patchelf-hints.sh new file mode 100755 index 00000000000..5fdfc15dc23 --- /dev/null +++ b/nixpkgs/maintainers/scripts/patchelf-hints.sh @@ -0,0 +1,84 @@ + +usage() { + echo " +$0 <path to unpacked binary distribution directory> + +This program return the list of libraries and where to find them based on +your currently installed programs. +"; + exit 1 +} + +if test $# -ne 1; then + usage +fi + +binaryDist=$1 + +hasBinaries=false +for bin in $(find $binaryDist -executable -type f) :; do + if test $bin = ":"; then + $hasBinaries || \ + echo "No patchable found in this directory." + break + fi + hasBinaries=true + + echo "" + echo "$bin:" + hasLibraries=false + unset interpreter + unset addRPath + for lib in $(strings $bin | grep '^\(/\|\)lib.*\.so' | sort | uniq) :; do + if test $lib = ":"; then + $hasLibraries || \ + echo " This program is a script or it is statically linked." + break + fi + hasLibraries=true + + echo " $lib:"; + + libPath=$lib + lib=$(basename $lib) + + #versionLessLib=$(echo $lib | sed 's,[.][.0-9]*$,,') + + libs="$( + find /nix/store/*/lib* \( -type f -or -type l \) -name $lib | + grep -v '\(bootstrap-tools\|system-path\|user-environment\|extra-utils\)' + )" + + echo "$libs" | + sed 's,^/nix/store/[a-z0-9]*-\([^/]*\)/.*/\([^/]*\)$, \1 -> \2,' | + sort | + uniq; + + names=$( + echo "$libs" | + sed 's,^/nix/store/[a-z0-9]*-\([^/]*\)-[.0-9]*/.*$,\1,' | + sort | + uniq; + ) + + if test "$names" = "glibc"; then names="stdenv.glibc"; fi + if echo $names | grep -c "gcc" &> /dev/null; then names="stdenv.cc.cc"; fi + + if test $lib != $libPath; then + interpreter="--interpreter \${$names}/lib/$lib" + elif echo $addRPath | grep -c "$names" &> /dev/null; then + : + else + addRPath=${addRPath+$addRPath:}"\${$names}/lib" + fi + done; + $hasLibraries && \ + echo " + Patchelf command: + + patchelf $interpreter \\ + ${addRPath+--set-rpath $addRPath \\ +} \$out/$bin + +" +done; diff --git a/nixpkgs/maintainers/scripts/rebuild-amount.sh b/nixpkgs/maintainers/scripts/rebuild-amount.sh new file mode 100755 index 00000000000..1a54cada8af --- /dev/null +++ b/nixpkgs/maintainers/scripts/rebuild-amount.sh @@ -0,0 +1,127 @@ +#!/usr/bin/env bash +set -e + +# --print: avoid dependency on environment +optPrint= +if [ "$1" == "--print" ]; then + optPrint=true + shift +fi + +if [ "$#" != 1 ] && [ "$#" != 2 ]; then + cat <<-EOF + Usage: $0 [--print] commit-spec [commit-spec] + You need to be in a git-controlled nixpkgs tree. + The current state of the tree will be used if the second commit is missing. + EOF + exit 1 +fi + +# A slightly hacky way to get the config. +parallel="$(echo 'config.rebuild-amount.parallel or false' | nix-repl . 2>/dev/null \ + | grep -v '^\(nix-repl.*\)\?$' | tail -n 1 || true)" + +echo "Estimating rebuild amount by counting changed Hydra jobs." + +toRemove=() + +cleanup() { + rm -rf "${toRemove[@]}" +} +trap cleanup EXIT SIGINT SIGQUIT ERR + +MKTEMP='mktemp --tmpdir nix-rebuild-amount-XXXXXXXX' + +nixexpr() { + cat <<-EONIX + let + lib = import $1/lib; + hydraJobs = import $1/pkgs/top-level/release.nix + # Compromise: accuracy vs. resources needed for evaluation. + { supportedSystems = cfg.systems or [ "x86_64-linux" "x86_64-darwin" ]; }; + cfg = (import $1 {}).config.rebuild-amount or {}; + + recurseIntoAttrs = attrs: attrs // { recurseForDerivations = true; }; + + # hydraJobs leaves recurseForDerivations as empty attrmaps; + # that would break nix-env and we also need to recurse everywhere. + tweak = lib.mapAttrs + (name: val: + if name == "recurseForDerivations" then true + else if lib.isAttrs val && val.type or null != "derivation" + then recurseIntoAttrs (tweak val) + else val + ); + + # Some of these contain explicit references to platform(s) we want to avoid; + # some even (transitively) depend on ~/.nixpkgs/config.nix (!) + blacklist = [ + "tarball" "metrics" "manual" + "darwin-tested" "unstable" "stdenvBootstrapTools" + "moduleSystem" "lib-tests" # these just confuse the output + ]; + + in + tweak (builtins.removeAttrs hydraJobs blacklist) + EONIX +} + +# Output packages in tree $2 that weren't in $1. +# Changing the output hash or name is taken as a change. +# Extra nix-env parameters can be in $3 +newPkgs() { + # We use files instead of pipes, as running multiple nix-env processes + # could eat too much memory for a standard 4GiB machine. + local -a list + for i in 1 2; do + local l="$($MKTEMP)" + list[$i]="$l" + toRemove+=("$l") + + local expr="$($MKTEMP)" + toRemove+=("$expr") + nixexpr "${!i}" > "$expr" + + nix-env -f "$expr" -qaP --no-name --out-path --show-trace $3 \ + | sort > "${list[$i]}" & + + if [ "$parallel" != "true" ]; then + wait + fi + done + + wait + comm -13 "${list[@]}" +} + +# Prepare nixpkgs trees. +declare -a tree +for i in 1 2; do + if [ -n "${!i}" ]; then # use the given commit + dir="$($MKTEMP -d)" + tree[$i]="$dir" + toRemove+=("$dir") + + git clone --shared --no-checkout --quiet . "${tree[$i]}" + (cd "${tree[$i]}" && git checkout --quiet "${!i}") + else #use the current tree + tree[$i]="$(pwd)" + fi +done + +newlist="$($MKTEMP)" +toRemove+=("$newlist") +# Notes: +# - the evaluation is done on x86_64-linux, like on Hydra. +# - using $newlist file so that newPkgs() isn't in a sub-shell (because of toRemove) +newPkgs "${tree[1]}" "${tree[2]}" '--argstr system "x86_64-linux"' > "$newlist" + +# Hacky: keep only the last word of each attribute path and sort. +sed -n 's/\([^. ]*\.\)*\([^. ]*\) .*$/\2/p' < "$newlist" \ + | sort | uniq -c + +if [ -n "$optPrint" ]; then + echo + cat "$newlist" +fi + diff --git a/nixpkgs/maintainers/scripts/update-channel-branches.sh b/nixpkgs/maintainers/scripts/update-channel-branches.sh new file mode 100755 index 00000000000..d65cf3ec5f6 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update-channel-branches.sh @@ -0,0 +1,112 @@ +#!/bin/sh +set -e + +: ${NIXOS_CHANNELS:=https://nixos.org/channels/} +: ${CHANNELS_NAMESPACE:=refs/heads/channels/} + +# List all channels which are currently in the repository which we would +# have to remove if they are not found again. +deadChannels=$(git for-each-ref --format="%(refname)" "$CHANNELS_NAMESPACE") + +updateRef() { + local channelName=$1 + local newRev=$2 + + # if the inputs are not valid, then we do not update any branch. + test -z "$newRev" -o -z "$channelName" && return; + + # Update the local refs/heads/channels/* branches to be in-sync with the + # channel references. + local branch=$CHANNELS_NAMESPACE$channelName + oldRev=$(git rev-parse --short "$branch" 2>/dev/null || true) + if test "$oldRev" != "$newRev"; then + if git update-ref "$branch" "$newRev" 2>/dev/null; then + if test -z "$oldRev"; then + echo " * [new branch] $newRev -> ${branch#refs/heads/}" + else + echo " $oldRev..$newRev -> ${branch#refs/heads/}" + fi + else + if test -z "$oldRev"; then + echo " * [missing rev] $newRev -> ${branch#refs/heads/}" + else + echo " [missing rev] $oldRev..$newRev -> ${branch#refs/heads/}" + fi + fi + fi + + # Filter out the current channel from the list of dead channels. + deadChannels=$(grep -v "$CHANNELS_NAMESPACE$channelName" <<EOF +$deadChannels +EOF +) ||true +} + +# Find the name of all channels which are listed in the directory. +echo "Fetching channels from $NIXOS_CHANNELS:" +for channelName in : $(curl -s "$NIXOS_CHANNELS" | sed -n '/folder/ { s,.*href=",,; s,/".*,,; p }'); do + test "$channelName" = : && continue; + + # Do not follow redirections, such that we can extract the + # short-changeset from the name of the directory where we are + # redirected to. + sha1=$(curl -sI "$NIXOS_CHANNELS$channelName" | sed -n '/Location/ { s,.*\.\([a-f0-9]*\)[ \r]*$,\1,; p; }') + + updateRef "remotes/$channelName" "$sha1" +done + +echo "Fetching channels from nixos-version:" +if currentSystem=$(nixos-version 2>/dev/null); then + # If the system is entirely build from a custom nixpkgs version, + # then the version is not annotated in git version. This sed + # expression is basically matching that the expressions end with + # ".<sha1> (Name)" to extract the sha1. + sha1=$(echo "$currentSystem" | sed -n 's,^.*\.\([a-f0-9]*\) *(.*)$,\1,; T skip; p; :skip;') + + updateRef current-system "$sha1" +fi + +echo "Fetching channels from $HOME/.nix-defexpr:" +for revFile in : $(find -L "$HOME/.nix-defexpr/" -maxdepth 4 -name svn-revision); do + test "$revFile" = : && continue; + + # Deconstruct a path such as, into: + # + # /home/luke/.nix-defexpr/channels_root/nixos/nixpkgs/svn-revision + # channelName = root/nixos + # + # /home/luke/.nix-defexpr/channels/nixpkgs/svn-revision + # channelName = nixpkgs + # + user=${revFile#*.nix-defexpr/channels} + repo=${user#*/} + repo=${repo%%/*} + user=${user%%/*} + user=${user#_} + test -z "$user" && user=$USER + channelName="$user${user:+/}$repo" + + sha1=$(sed -n 's,^.*\.\([a-f0-9]*\)$,\1,; T skip; p; :skip;' "$revFile") + + updateRef "$channelName" "$sha1" +done + +# Suggest to remove channel branches which are no longer found by this +# script. This is to handle the cases where a local/remote channel +# disappear. We should not attempt to remove manually any branches, as they +# might be user branches. +if test -n "$deadChannels"; then + + echo " +Some old channel branches are still in your repository, if you +want to remove them, run the following command(s): +" + + while read branch; do + echo " git update-ref -d $branch" + done <<EOF +$deadChannels +EOF + + echo +fi diff --git a/nixpkgs/maintainers/scripts/update-luarocks-packages b/nixpkgs/maintainers/scripts/update-luarocks-packages new file mode 100755 index 00000000000..5c42080745e --- /dev/null +++ b/nixpkgs/maintainers/scripts/update-luarocks-packages @@ -0,0 +1,136 @@ +#!/usr/bin/env nix-shell +#!nix-shell update-luarocks-shell.nix -i bash + +# You'll likely want to use +# `` +# nixpkgs $ maintainers/scripts/update-luarocks-packages pkgs/development/lua-modules/generated-packages.nix +# `` +# to update all libraries in that folder. +# to debug, redirect stderr to stdout with 2>&1 + +# stop the script upon C-C +set -eu -o pipefail + +CSV_FILE="maintainers/scripts/luarocks-packages.csv" +TMP_FILE="$(mktemp)" +# Set in the update-luarocks-shell.nix +NIXPKGS_PATH="$LUAROCKS_NIXPKGS_PATH" +export LUAROCKS_CONFIG="$NIXPKGS_PATH/maintainers/scripts/luarocks-config.lua" + +# 10 is a pretty arbitrary number of simultaneous jobs, but it is generally +# impolite to hit a webserver with *too* many simultaneous connections :) +PARALLEL_JOBS=1 + +exit_trap() { + local lc="$BASH_COMMAND" rc=$? + test $rc -eq 0 || echo -e "*** error $rc: $lc.\nGenerated temporary file in $TMP_FILE" >&2 +} + +print_help() { + echo "Usage: $0 <GENERATED_FILE>" + echo "(most likely pkgs/development/lua-modules/generated-packages.nix)" + echo "" + echo " -c <CSV_FILE> to set the list of luarocks package to generate" + exit 1 +} + +if [ $# -lt 1 ]; then + print_help + exit 1 +fi + +trap exit_trap EXIT + +while getopts ":hc:" opt; do + case $opt in + h) + print_help + ;; + c) + echo "Loading package list from $OPTARG !" >&2 + CSV_FILE="$OPTARG" + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + ;; + esac + shift $((OPTIND - 1)) +done + +GENERATED_NIXFILE="$1" + +HEADER=" +/* ${GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! +Regenerate it with: +nixpkgs$ ${0} ${GENERATED_NIXFILE} + +These packages are manually refined in lua-overrides.nix +*/ +{ self, stdenv, fetchurl, fetchgit, pkgs, ... } @ args: +self: super: +with self; +{ +" + +FOOTER=" +} +/* GENERATED */ +" + +function convert_pkg() { + nix_pkg_name="$1" + lua_pkg_name="$2" + server="$3" + pkg_version="$4" + lua_version="$5" + maintainers="$6" + + if [ "${nix_pkg_name:0:1}" == "#" ]; then + echo "Skipping comment ${*}" >&2 + return + fi + if [ -z "$lua_pkg_name" ]; then + echo "Using nix_name as lua_pkg_name for '$nix_pkg_name'" >&2 + lua_pkg_name="$nix_pkg_name" + fi + + echo "Building expression for $lua_pkg_name (version $pkg_version) from server [$server]" >&2 + luarocks_args=(nix) + if [[ -n $server ]]; then + luarocks_args+=("--only-server=$server") + fi + if [[ -n $maintainers ]]; then + luarocks_args+=("--maintainers=$maintainers") + fi + if [[ -n $lua_version ]]; then + lua_drv_path=$(nix-build --no-out-link "$NIXPKGS_PATH" -A "$lua_version") + luarocks_args+=("--lua-dir=$lua_drv_path/bin") + fi + luarocks_args+=("$lua_pkg_name") + if [[ -n $pkg_version ]]; then + luarocks_args+=("$pkg_version") + fi + echo "Running 'luarocks ${luarocks_args[*]}'" >&2 + if drv="$nix_pkg_name = $(luarocks "${luarocks_args[@]}")"; then + echo "$drv" + else + echo "Failed to convert $nix_pkg_name" >&2 + return 1 + fi +} + +# params needed when called via callPackage +echo "$HEADER" | tee "$TMP_FILE" + +# Ensure parallel can run our bash function +export -f convert_pkg +export SHELL=bash +# Read each line in the csv file and run convert_pkg for each, in parallel +parallel --group --keep-order --halt now,fail=1 --jobs "$PARALLEL_JOBS" --colsep ',' convert_pkg {} <"$CSV_FILE" | tee -a "$TMP_FILE" + +# close the set +echo "$FOOTER" | tee -a "$TMP_FILE" + +cp "$TMP_FILE" "$GENERATED_NIXFILE" + +# vim: set ts=4 sw=4 ft=sh: diff --git a/nixpkgs/maintainers/scripts/update-luarocks-shell.nix b/nixpkgs/maintainers/scripts/update-luarocks-shell.nix new file mode 100644 index 00000000000..23a940b3691 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update-luarocks-shell.nix @@ -0,0 +1,9 @@ +{ nixpkgs ? import ../.. { } +}: +with nixpkgs; +mkShell { + buildInputs = [ + bash luarocks-nix nix-prefetch-scripts parallel + ]; + LUAROCKS_NIXPKGS_PATH = toString nixpkgs.path; +} diff --git a/nixpkgs/maintainers/scripts/update-python-libraries b/nixpkgs/maintainers/scripts/update-python-libraries new file mode 100755 index 00000000000..4a6024c4038 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update-python-libraries @@ -0,0 +1,5 @@ +#!/bin/sh +build=`nix-build -E "with import (fetchTarball "channel:nixpkgs-unstable") {}; python3.withPackages(ps: with ps; [ packaging requests toolz ])"` +python=${build}/bin/python +exec ${python} pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py $@ + diff --git a/nixpkgs/maintainers/scripts/update-ruby-packages b/nixpkgs/maintainers/scripts/update-ruby-packages new file mode 100755 index 00000000000..fef6b75ded0 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update-ruby-packages @@ -0,0 +1,13 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bundler bundix + +set -euf -o pipefail + +( + cd pkgs/development/ruby-modules/with-packages + rm -f gemset.nix Gemfile.lock + bundle lock + bundix + mv gemset.nix ../../../top-level/ruby-packages.nix + rm -f Gemfile.lock +) diff --git a/nixpkgs/maintainers/scripts/update.nix b/nixpkgs/maintainers/scripts/update.nix new file mode 100755 index 00000000000..66ea18ddf62 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update.nix @@ -0,0 +1,161 @@ +{ package ? null +, maintainer ? null +, path ? null +, max-workers ? null +, include-overlays ? false +, keep-going ? null +}: + +# TODO: add assert statements + +let + pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; }); + + inherit (pkgs) lib; + + /* Remove duplicate elements from the list based on some extracted value. O(n^2) complexity. + */ + nubOn = f: list: + if list == [] then + [] + else + let + x = lib.head list; + xs = lib.filter (p: f x != f p) (lib.drop 1 list); + in + [x] ++ nubOn f xs; + + packagesWithPath = relativePath: cond: return: pathContent: + let + result = builtins.tryEval pathContent; + + dedupResults = lst: nubOn (pkg: pkg.updateScript) (lib.concatLists lst); + in + if result.success then + let + pathContent = result.value; + in + if lib.isDerivation pathContent then + lib.optional (cond relativePath pathContent) (return relativePath pathContent) + else if lib.isAttrs pathContent then + # If user explicitly points to an attrSet or it is marked for recursion, we recur. + if relativePath == [] || pathContent.recurseForDerivations or false || pathContent.recurseForRelease or false then + dedupResults (lib.mapAttrsToList (name: elem: packagesWithPath (relativePath ++ [name]) cond return elem) pathContent) + else [] + else if lib.isList pathContent then + dedupResults (lib.imap0 (i: elem: packagesWithPath (relativePath ++ [i]) cond return elem) pathContent) + else [] + else []; + + packagesWith = packagesWithPath []; + + packagesWithUpdateScriptAndMaintainer = maintainer': + let + maintainer = + if ! builtins.hasAttr maintainer' lib.maintainers then + builtins.throw "Maintainer with name `${maintainer'} does not exist in `maintainers/maintainer-list.nix`." + else + builtins.getAttr maintainer' lib.maintainers; + in + packagesWith (relativePath: pkg: builtins.hasAttr "updateScript" pkg && + (if builtins.hasAttr "maintainers" pkg.meta + then (if builtins.isList pkg.meta.maintainers + then builtins.elem maintainer pkg.meta.maintainers + else maintainer == pkg.meta.maintainers + ) + else false + ) + ) + (relativePath: pkg: pkg) + pkgs; + + packagesWithUpdateScript = path: + let + pathContent = lib.attrByPath (lib.splitString "." path) null pkgs; + in + if pathContent == null then + builtins.throw "Attribute path `${path}` does not exists." + else + packagesWith (relativePath: pkg: builtins.hasAttr "updateScript" pkg) + (relativePath: pkg: pkg) + pathContent; + + packageByName = name: + let + package = lib.attrByPath (lib.splitString "." name) null pkgs; + in + if package == null then + builtins.throw "Package with an attribute name `${name}` does not exists." + else if ! builtins.hasAttr "updateScript" package then + builtins.throw "Package with an attribute name `${name}` does not have a `passthru.updateScript` attribute defined." + else + package; + + packages = + if package != null then + [ (packageByName package) ] + else if maintainer != null then + packagesWithUpdateScriptAndMaintainer maintainer + else if path != null then + packagesWithUpdateScript path + else + builtins.throw "No arguments provided.\n\n${helpText}"; + + helpText = '' + Please run: + + % nix-shell maintainers/scripts/update.nix --argstr maintainer garbas + + to run all update scripts for all packages that lists \`garbas\` as a maintainer + and have \`updateScript\` defined, or: + + % nix-shell maintainers/scripts/update.nix --argstr package gnome3.nautilus + + to run update script for specific package, or + + % nix-shell maintainers/scripts/update.nix --argstr path gnome3 + + to run update script for all package under an attribute path. + + You can also add + + --argstr max-workers 8 + + to increase the number of jobs in parallel, or + + --argstr keep-going true + + to continue running when a single update fails. + ''; + + packageData = package: { + name = package.name; + pname = lib.getName package; + updateScript = map builtins.toString (lib.toList package.updateScript); + }; + + packagesJson = pkgs.writeText "packages.json" (builtins.toJSON (map packageData packages)); + + optionalArgs = + lib.optional (max-workers != null) "--max-workers=${max-workers}" + ++ lib.optional (keep-going == "true") "--keep-going"; + + args = [ packagesJson ] ++ optionalArgs; + +in pkgs.stdenv.mkDerivation { + name = "nixpkgs-update-script"; + buildCommand = '' + echo "" + echo "----------------------------------------------------------------" + echo "" + echo "Not possible to update packages using \`nix-build\`" + echo "" + echo "${helpText}" + echo "----------------------------------------------------------------" + exit 1 + ''; + shellHook = '' + unset shellHook # do not contaminate nested shells + exec ${pkgs.python3.interpreter} ${./update.py} ${builtins.concatStringsSep " " args} + ''; +} diff --git a/nixpkgs/maintainers/scripts/update.py b/nixpkgs/maintainers/scripts/update.py new file mode 100644 index 00000000000..eb7d0ef2647 --- /dev/null +++ b/nixpkgs/maintainers/scripts/update.py @@ -0,0 +1,79 @@ +import argparse +import concurrent.futures +import json +import os +import subprocess +import sys + +updates = {} + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +def run_update_script(package): + eprint(f" - {package['name']}: UPDATING ...") + + subprocess.run(package['updateScript'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, check=True) + + +def main(max_workers, keep_going, packages): + with open(sys.argv[1]) as f: + packages = json.load(f) + + eprint() + eprint('Going to be running update for following packages:') + for package in packages: + eprint(f" - {package['name']}") + eprint() + + confirm = input('Press Enter key to continue...') + if confirm == '': + eprint() + eprint('Running update for:') + + with concurrent.futures.ProcessPoolExecutor(max_workers=max_workers) as executor: + for package in packages: + updates[executor.submit(run_update_script, package)] = package + + for future in concurrent.futures.as_completed(updates): + package = updates[future] + + try: + future.result() + eprint(f" - {package['name']}: DONE.") + except subprocess.CalledProcessError as e: + eprint(f" - {package['name']}: ERROR") + eprint() + eprint(f"--- SHOWING ERROR LOG FOR {package['name']} ----------------------") + eprint() + eprint(e.stdout.decode('utf-8')) + with open(f"{package['pname']}.log", 'wb') as f: + f.write(e.stdout) + eprint() + eprint(f"--- SHOWING ERROR LOG FOR {package['name']} ----------------------") + + if not keep_going: + sys.exit(1) + + eprint() + eprint('Packages updated!') + sys.exit() + else: + eprint('Aborting!') + sys.exit(130) + +parser = argparse.ArgumentParser(description='Update packages') +parser.add_argument('--max-workers', '-j', dest='max_workers', type=int, help='Number of updates to run concurrently', nargs='?', default=4) +parser.add_argument('--keep-going', '-k', dest='keep_going', action='store_true', help='Do not stop after first failure') +parser.add_argument('packages', help='JSON file containing the list of package names and their update scripts') + +if __name__ == '__main__': + args = parser.parse_args() + + try: + main(args.max_workers, args.keep_going, args.packages) + except (KeyboardInterrupt, SystemExit) as e: + for update in updates: + update.cancel() + + sys.exit(e.code if isinstance(e, SystemExit) else 130) diff --git a/nixpkgs/maintainers/scripts/vanity-manual-equalities.txt b/nixpkgs/maintainers/scripts/vanity-manual-equalities.txt new file mode 100644 index 00000000000..4a7bc3aea44 --- /dev/null +++ b/nixpkgs/maintainers/scripts/vanity-manual-equalities.txt @@ -0,0 +1,7 @@ +viric viriketo@gmail.com +Pjotr Prins pjotr.public01@thebird.nl +Pjotr Prins pjotr.public05@thebird.nl +Wouter den Breejen wbreejen +MarcWeber marcweber +Ricardo Correia Ricardo M. Correia +ertesx@gmx.de ertes diff --git a/nixpkgs/maintainers/scripts/vanity.sh b/nixpkgs/maintainers/scripts/vanity.sh new file mode 100755 index 00000000000..aa7d4ec967d --- /dev/null +++ b/nixpkgs/maintainers/scripts/vanity.sh @@ -0,0 +1,122 @@ +#! /bin/sh + +export LANG=C LC_ALL=C LC_COLLATE=C + +# Load git log +raw_git_log="$(git log)" +git_data="$(echo "$raw_git_log" | grep 'Author:' | + sed -e 's/^ *Author://; s/\\//g; s/^ *//; s/ *$//; + s/ @ .*//; s/ *[<]/\t/; s/[>]//')" + +# Name - nick - email correspondence from log and from maintainer list +# Also there are a few manual entries +maintainers="$(cat "$(dirname "$0")/../maintainer-list.nix" | + grep '=' | sed -re 's/\\"/''/g; + s/[ ]*([^ =]*)[ ]*=[ ]*" *(.*[^ ]) *[<](.*)[>] *".*/\1\t\2\t\3/')" +git_lines="$( ( echo "$git_data"; + cat "$(dirname "$0")/vanity-manual-equalities.txt") | sort |uniq)" + +emails="$( + ( echo "$maintainers" | cut -f 3; echo "$git_data" | cut -f 2 ) | + sort | uniq | grep -E ".+@.+[.].+" + )" + +fetchGithubName () { + commitid="$( + echo "$raw_git_log" | grep -B3 "Author: .*[<]$1[>]" | head -n 3 | + grep '^commit ' | tail -n 1 | sed -e 's/^commit //' + )" + userid="$( + curl https://github.com/NixOS/nixpkgs/commit/"$commitid" 2>/dev/null | + grep committed -B10 | grep 'href="/' | + sed -re 's@.* href="/@@; s@".*@@' | + grep -v "/commit/" + )"; + echo "$userid" +} + +[ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && { + echo "$emails" | while read email; do + line="$(grep "$email " "$NIXPKGS_GITHUB_NAME_CACHE")" + [ -z "$line" ] && { + echo "$email $(fetchGithubName "$email")" >> \ + "$NIXPKGS_GITHUB_NAME_CACHE" + } + done +} + +# For RDF +normalize_name () { + sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g; s/`/%60/g; s/\^/%5e/g; ' +} + +denormalize_name () { + sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%60/`/g; s/%5e/^/g; s/%25/%/g;'; +} + +n3="$(mktemp --suffix .n3)" + +# «The same person» relation and a sorting hint +# Full name is something with a space +( +echo "$git_lines" | sed -re 's@(.*)\t(.*)@<my://name/\1> <my://can-be> <my://name/\2>.@' +echo "$git_lines" | sed -re 's@(.*)\t(.*)@<my://name/\2> <my://can-be> <my://name/\1>.@' +echo "$maintainers" | sed -re 's@(.*)\t(.*)\t(.*)@<my://name/\1> <my://can-be> <my://name/\2>.@' +echo "$maintainers" | sed -re 's@(.*)\t(.*)\t(.*)@<my://name/\2> <my://can-be> <my://name/\3>.@' +echo "$maintainers" | sed -re 's@(.*)\t(.*)\t(.*)@<my://name/\3> <my://can-be> <my://name/\1>.@' +echo "$git_lines" | grep ' ' | cut -f 1 | sed -e 's@.*@<my://name/&> <my://is-name> <my://0>.@' +echo "$git_lines" | grep -v ' ' | cut -f 1 | sed -e 's@.*@<my://name/&> <my://is-name> <my://1>.@' +echo "$maintainers" | cut -f 2 | sed -e 's@.*@<my://name/&> <my://is-name> <my://0>.@' +[ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && cat "$NIXPKGS_GITHUB_NAME_CACHE" | + grep -v " $" | + sed -re 's@(.*)\t(.*)@<my://name/\1> <my://at-github> <my://github/\2>.@' +) | normalize_name | grep -E '<my://[-a-z]+>' | sort | uniq > "$n3" + +# Get transitive closure +sparql="$(nix-build '<nixpkgs>' -Q -A apache-jena --no-out-link)/bin/sparql" +name_list="$( + "$sparql" --results=TSV --data="$n3" " + select ?x ?y ?g where { + ?x <my://can-be>+ ?y. + ?x <my://is-name> ?g. + } + " | tail -n +2 | + sed -re 's@<my://name/@@g; s@<my://@@g; s@>@@g;' | + sort -k 2,3 -t ' ' +)" +github_name_list="$( + "$sparql" --results=TSV --data="$n3" " + select ?x ?y where { + ?x (<my://can-be>+ / <my://at-github>) ?y. + } + " | tail -n +2 | + sed -re 's@<my://(name|github)/@@g; s@<my://@@g; s@>@@g;' +)" + +# Take first spelling option for every person +name_list_canonical="$(echo "$name_list" | cut -f 1,2 | uniq -f1)" + +cleaner_script="$(echo "$name_list_canonical" | denormalize_name | + sed -re 's/(.*)\t(.*)/s#^\2$#\1#g/g')" + +# Add github usernames +if [ -n "$NIXPKGS_GITHUB_NAME_CACHE" ]; then + github_adder_script="$(mktemp)" + echo "$github_name_list" | + grep -E "$(echo "$name_list_canonical" | cut -f 2 | + tr '\n' '|' )" | + sort | uniq | + sed -re 's/(.*)\t(.*)/s| \1$| \1\t\2|g;/' | + denormalize_name > "$github_adder_script" +else + github_adder_script='/dev/null' +fi + +echo "$name_list" | denormalize_name + +echo + +echo "$git_data" | cut -f 1 | + sed -e "$cleaner_script" | + sort | uniq -c | sort -k1n | sed -rf "$github_adder_script" | + sed -re 's/^ *([0-9]+) /\1\t/' diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix new file mode 100644 index 00000000000..1fed6a4d9bf --- /dev/null +++ b/nixpkgs/maintainers/team-list.nix @@ -0,0 +1,66 @@ +/* List of maintainer teams. + name = { + # Required + members = [ maintainer1 maintainer2 ]; + scope = "Maintain foo packages."; + }; + + where + + - `members` is the list of maintainers belonging to the group, + - `scope` describes the scope of the group. + + More fields may be added in the future. + + Please keep the list alphabetically sorted. + */ + +{ lib }: +with lib.maintainers; { + acme = { + members = [ + aanderse + andrew-d + arianvp + emily + flokli + m1cr0man + ]; + scope = "Maintain ACME-related packages and modules."; + }; + + freedesktop = { + members = [ jtojnar worldofpeace ]; + scope = "Maintain Freedesktop.org packages for graphical desktop."; + }; + + gnome = { + members = [ + hedning + jtojnar + worldofpeace + ]; + scope = "Maintain GNOME desktop environment and platform."; + }; + + php = { + members = [ + aanderse + etu + globin + ma27 + talyz + ]; + scope = "Maintain PHP related packages and extensions."; + }; + + podman = { + members = [ + adisbladis + saschagrunert + vdemeester + zowoq + ]; + scope = "Maintain Podman and CRI-O related packages and modules."; + }; +} |