diff options
Diffstat (limited to 'maintainers')
-rw-r--r-- | maintainers/maintainer-list.nix | 1016 | ||||
-rw-r--r-- | maintainers/scripts/all-tarballs.nix | 2 | ||||
-rwxr-xr-x | maintainers/scripts/fix-maintainers.pl | 14 | ||||
-rwxr-xr-x | maintainers/scripts/haskell/hydra-report.hs | 19 | ||||
-rwxr-xr-x | maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh | 2 | ||||
-rw-r--r-- | maintainers/scripts/luarocks-packages.csv | 27 | ||||
-rw-r--r-- | maintainers/scripts/pluginupdate.py | 58 | ||||
-rwxr-xr-x | maintainers/scripts/sha-to-sri.py | 228 | ||||
-rwxr-xr-x | maintainers/scripts/sha256-to-SRI.py | 149 | ||||
-rwxr-xr-x | maintainers/scripts/update-luarocks-packages | 216 | ||||
-rw-r--r-- | maintainers/scripts/update-luarocks-shell.nix | 13 | ||||
-rw-r--r-- | maintainers/team-list.nix | 37 |
12 files changed, 1229 insertions, 552 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 7b4cd2a96e5be..21e902171bb48 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -19,7 +19,7 @@ where - `handle` is the handle you are going to use in nixpkgs expressions, - - `name` is your, preferably real, name, + - `name` is a name that people would know and recognize you by, - `email` is your maintainer email address, - `matrix` is your Matrix user ID, - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/<userhandle>`), @@ -211,6 +211,16 @@ fingerprint = "7B59 F09E 0FE5 BC34 F032 1FB4 5270 1DE5 F5F5 1125"; }]; }; + _9glenda = { + email = "plan9git@proton.me"; + matrix = "@9front:matrix.org"; + github = "9glenda"; + githubId = 69043370; + name = "9glenda"; + keys = [{ + fingerprint = "DBF4 E6D0 90B8 BEA4 4BFE 1F1C 3442 4321 39B5 0691"; + }]; + }; a1russell = { email = "adamlr6+pub@gmail.com"; github = "a1russell"; @@ -361,6 +371,15 @@ githubId = 124545; name = "Anthony Cowley"; }; + acuteenvy = { + matrix = "@acuteenvy:matrix.org"; + github = "acuteenvy"; + githubId = 126529524; + name = "Lena"; + keys = [{ + fingerprint = "CE85 54F7 B9BC AC0D D648 5661 AB5F C04C 3C94 443F"; + }]; + }; adamcstephens = { email = "happy.plan4249@valkor.net"; matrix = "@adam:valkor.net"; @@ -436,6 +455,13 @@ githubId = 25236206; name = "Adrian Dole"; }; + adriangl = { + email = "adrian@lauterer.it"; + matrix = "@adriangl:pvv.ntnu.no"; + github = "adrlau"; + githubId = 25004152; + name = "Adrian Gunnar Lauterer"; + }; AdsonCicilioti = { name = "Adson Cicilioti"; email = "adson.cicilioti@live.com"; @@ -523,6 +549,12 @@ githubId = 732652; name = "Andreas Herrmann"; }; + ahoneybun = { + email = "aaron@system76.com"; + github = "ahoneybun"; + githubId = 4884946; + name = "Aaron Honeycutt"; + }; ahrzb = { email = "ahrzb5@gmail.com"; github = "ahrzb"; @@ -749,6 +781,12 @@ github = "Alexnortung"; githubId = 1552267; }; + alexoundos = { + email = "alexoundos@gmail.com"; + github = "AleXoundOS"; + githubId = 464913; + name = "Alexander Tomokhov"; + }; alexshpilkin = { email = "ashpilkin@gmail.com"; github = "alexshpilkin"; @@ -777,6 +815,12 @@ githubId = 5053729; name = "Alias Gram"; }; + alias-dev = { + email = "alias-dev@protonmail.com"; + github = "alias-dev"; + githubId = 30437811; + name = "Alex Andrews"; + }; alibabzo = { email = "alistair.bill@gmail.com"; github = "alistairbill"; @@ -813,6 +857,12 @@ githubId = 5892756; name = "Alec Snyder"; }; + allusive = { + email = "jasper@allusive.dev"; + name = "Allusive"; + github = "allusive-dev"; + githubId = 99632976; + }; almac = { email = "alma.cemerlic@gmail.com"; github = "a1mac"; @@ -879,6 +929,12 @@ githubId = 160476; name = "Amanjeev Sethi"; }; + amanse = { + email = "amansetiarjp@gmail.com"; + github = "amanse"; + githubId = 13214574; + name = "Aman Setia"; + }; amar1729 = { email = "amar.paul16@gmail.com"; github = "Amar1729"; @@ -1240,6 +1296,9 @@ github = "antonmosich"; githubId = 27223336; name = "Anton Mosich"; + keys = [ { + fingerprint = "F401 287C 324F 0A1C B321 657B 9B96 97B8 FB18 7D14"; + } ]; }; antono = { email = "self@antono.info"; @@ -1349,6 +1408,12 @@ githubId = 59743220; name = "Vinícius Müller"; }; + arcuru = { + email = "patrick@jackson.dev"; + github = "arcuru"; + githubId = 160646; + name = "Patrick Jackson"; + }; ardumont = { email = "eniotna.t@gmail.com"; github = "ardumont"; @@ -1361,6 +1426,12 @@ githubId = 58516559; name = "Alexander Rezvov"; }; + argrat = { + email = "n.bertazzo@protonmail.com"; + github = "argrat"; + githubId = 98821629; + name = "Nicolò Bertazzo"; + }; arian-d = { email = "arianxdehghani@gmail.com"; github = "arian-d"; @@ -1728,12 +1799,6 @@ githubId = 1217745; name = "Aldwin Vlasblom"; }; - aveltras = { - email = "romain.viallard@outlook.fr"; - github = "aveltras"; - githubId = 790607; - name = "Romain Viallard"; - }; averelld = { email = "averell+nixos@rxd4.com"; github = "averelld"; @@ -1752,6 +1817,15 @@ githubId = 1222; name = "Aaron VonderHaar"; }; + aviallon = { + email = "antoine-nixos@lesviallon.fr"; + github = "aviallon"; + githubId = 7479436; + name = "Antoine Viallon"; + keys = [{ + fingerprint = "4AC4 A28D 7208 FC6F 2B51 5EA9 D126 B13A B555 E16F"; + }]; + }; avitex = { email = "theavitex@gmail.com"; github = "avitex"; @@ -2326,6 +2400,15 @@ github = "blaggacao"; githubId = 7548295; }; + blankparticle = { + name = "BlankParticle"; + email = "blankparticle@gmail.com"; + github = "BlankParticle"; + githubId = 130567419; + keys = [{ + fingerprint = "1757 64C3 7065 AA8D 614D 41C9 0ACE 126D 7B35 9261"; + }]; + }; blanky0230 = { email = "blanky0230@gmail.com"; github = "blanky0230"; @@ -2394,6 +2477,12 @@ githubId = 50839; name = "Brian Jones"; }; + boltzmannrain = { + email = "boltzmannrain@gmail.com"; + github = "boltzmannrain"; + githubId = 150560585; + name = "Dmitry Ivankov"; + }; booklearner = { name = "booklearner"; email = "booklearner@proton.me"; @@ -2429,12 +2518,6 @@ githubId = 1743184; name = "Boris Babić"; }; - borlaag = { - email = "borlaag@proton.me"; - github = "Borlaag"; - githubId = 114830266; - name = "Børlaag"; - }; bosu = { email = "boriss@gmail.com"; github = "bosu"; @@ -2468,6 +2551,12 @@ githubId = 4621; name = "Brad Ediger"; }; + brahyerr = { + name = "Bryant Pham"; + email = "bp@1829847@gmail.com"; + github = "brahyerr"; + githubId = 120991075; + }; brainrape = { email = "martonboros@gmail.com"; github = "brainrake"; @@ -2562,12 +2651,6 @@ githubId = 200617; name = "Ben Sima"; }; - bstrik = { - email = "dutchman55@gmx.com"; - github = "bstrik"; - githubId = 7716744; - name = "Berno Strik"; - }; btlvr = { email = "btlvr@protonmail.com"; github = "btlvr"; @@ -2720,6 +2803,12 @@ githubId = 7435854; name = "Victor Calvert"; }; + camelpunch = { + email = "me@andrewbruce.net"; + github = "camelpunch"; + githubId = 141733; + name = "Andrew Bruce"; + }; cameronfyfe = { email = "cameron.j.fyfe@gmail.com"; github = "cameronfyfe"; @@ -2999,6 +3088,9 @@ email = "chayleaf-nix@pavluk.org"; github = "chayleaf"; githubId = 9590981; + keys = [{ + fingerprint = "4314 3701 154D 9E5F 7051 7ECF 7817 1AD4 6227 E68E"; + }]; matrix = "@chayleaf:matrix.pavluk.org"; name = "Anna Pavlyuk"; }; @@ -3008,6 +3100,12 @@ githubId = 1689801; name = "Mikhail Chekan"; }; + chen = { + email = "i@cuichen.cc"; + github = "cu1ch3n"; + githubId = 80438676; + name = "Chen Cui"; + }; ChengCat = { email = "yu@cheng.cat"; github = "ChengCat"; @@ -3115,7 +3213,7 @@ }; christianharke = { email = "christian@harke.ch"; - github = "christianharke"; + github = "rake5k"; githubId = 13007345; name = "Christian Harke"; keys = [{ @@ -3142,6 +3240,11 @@ fingerprint = "9C56 1D64 30B2 8D6B DCBC 9CEB 73D5 E7FD EE3D E49A"; }]; }; + chrpinedo = { + github = "chrpinedo"; + githubId = 2324630; + name = "Christian Pinedo"; + }; chuahou = { email = "human+github@chuahou.dev"; github = "chuahou"; @@ -3616,6 +3719,12 @@ githubId = 1222362; name = "Matías Lang"; }; + criyle = { + email = "i+nixos@goj.ac"; + name = "Yang Gao"; + githubId = 6821729; + github = "criyle"; + }; CRTified = { email = "carl.schneider+nixos@rub.de"; matrix = "@schnecfk:ruhr-uni-bochum.de"; @@ -3626,6 +3735,15 @@ fingerprint = "2017 E152 BB81 5C16 955C E612 45BC C1E2 709B 1788"; }]; }; + Cryolitia = { + name = "Beiyan Cryolitia"; + email = "Cryolitia@gmail.com"; + github = "Cryolitia"; + githubId = 23723294; + keys = [{ + fingerprint = "1C3C 6547 538D 7152 310C 0EEA 84DD 0C01 30A5 4DF7"; + }]; + }; cryptix = { email = "cryptix@riseup.net"; github = "cryptix"; @@ -3644,18 +3762,18 @@ 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"; }; + ctron = { + email = "ctron@dentrassi.de"; + github = "ctron"; + githubId = 202474; + name = "Jens Reimann"; + }; cust0dian = { email = "serg@effectful.software"; github = "cust0dian"; @@ -3829,12 +3947,25 @@ githubId = 50051176; name = "Daniel Rolls"; }; + danielsidhion = { + email = "nixpkgs@sidhion.com"; + github = "DanielSidhion"; + githubId = 160084; + name = "Daniel Sidhion"; + }; daniyalsuri6 = { email = "daniyal.suri@gmail.com"; github = "daniyalsuri6"; githubId = 107034852; name = "Daniyal Suri"; }; + dannixon = { + email = "dan@dan-nixon.com"; + github = "DanNixon"; + githubId = 4037377; + name = "Dan Nixon"; + matrix = "@dannixon:matrix.org"; + }; dansbandit = { github = "dansbandit"; githubId = 4530687; @@ -3923,7 +4054,7 @@ }; davidarmstronglewis = { email = "davidlewis@mac.com"; - github = "davidarmstronglewis"; + github = "oceanlewis"; githubId = 6754950; name = "David Armstrong Lewis"; }; @@ -4123,6 +4254,12 @@ githubId = 12224254; name = "Delta"; }; + delta231 = { + email = "swstkbaranwal@gmail.com"; + github = "Delta456"; + githubId = 28479139; + name = "Swastik Baranwal"; + }; deltadelta = { email = "contact@libellules.eu"; name = "Dara Ly"; @@ -4141,6 +4278,12 @@ githubId = 5503422; name = "Dmitriy Demin"; }; + demine = { + email = "riches_tweaks0o@icloud.com"; + github = "demine0"; + githubId = 51992962; + name = "Nikita Demin"; + }; demize = { email = "johannes@kyriasis.com"; github = "kyrias"; @@ -4373,6 +4516,15 @@ githubId = 14034137; name = "Mostly Void"; }; + ditsuke = { + name = "Tushar"; + email = "hello@ditsuke.com"; + github = "ditsuke"; + githubId = 72784348; + keys = [{ + fingerprint = "8FD2 153F 4889 541A 54F1 E09E 71B6 C31C 8A5A 9D21"; + }]; + }; djacu = { email = "daniel.n.baker@gmail.com"; github = "djacu"; @@ -4450,6 +4602,12 @@ githubId = 1708810; name = "Daniel Vianna"; }; + dmytrokyrychuk = { + email = "dmytro@kyrych.uk"; + github = "dmytrokyrychuk"; + githubId = 699961; + name = "Dmytro Kyrychuk"; + }; dnr = { email = "dnr@dnr.im"; github = "dnr"; @@ -4471,7 +4629,7 @@ DomesticMoth = { name = "Andrew"; email = "silkmoth@protonmail.com"; - github = "DomesticMoth"; + github = "asciimoth"; githubId = 91414737; keys = [{ fingerprint = "7D6B AE0A A98A FDE9 3396 E721 F87E 15B8 3AA7 3087"; @@ -4540,6 +4698,16 @@ fingerprint = "4749 0887 CF3B 85A1 6355 C671 78C7 DD40 DF23 FB16"; }]; }; + dpc = { + email = "dpc@dpc.pw"; + github = "dpc"; + githubId = 9209; + matrix = "@dpc:matrix.org"; + name = "Dawid Ciężarkiewicz"; + keys = [{ + fingerprint = "0402 11D2 0830 2D71 5792 8197 86BB 1D5B 5575 7D38"; + }]; + }; DPDmancul = { name = "Davide Peressoni"; email = "davide.peressoni@tuta.io"; @@ -4817,6 +4985,12 @@ githubId = 50854; name = "edef"; }; + edeneast = { + email = "edenofest@gmail.com"; + github = "edeneast"; + githubId = 2746374; + name = "edeneast"; + }; ederoyd46 = { email = "matt@ederoyd.co.uk"; github = "ederoyd46"; @@ -4857,12 +5031,6 @@ githubId = 54799; name = "Edward Tjörnhammar"; }; - ee2500 = { - email = "earthengine@skiff.com"; - github = "ee2500"; - githubId = 134107129; - name = "EarthEngine"; - }; eelco = { email = "edolstra+nixpkgs@gmail.com"; github = "edolstra"; @@ -5208,6 +5376,13 @@ fingerprint = "F178 B4B4 6165 6D1B 7C15 B55D 4029 3358 C7B9 326B"; }]; }; + ericthemagician = { + email = "eric@ericyen.com"; + matrix = "@eric:jupiterbroadcasting.com"; + github = "EricTheMagician"; + githubId = 323436; + name = "Eric Yen"; + }; erikarvstedt = { email = "erik.arvstedt@gmail.com"; matrix = "@erikarvstedt:matrix.org"; @@ -5256,6 +5431,11 @@ githubId = 1855930; name = "Ertugrul Söylemez"; }; + esau79p = { + github = "EsAu79p"; + githubId = 21313906; + name = "EsAu"; + }; esclear = { github = "esclear"; githubId = 7432848; @@ -5793,10 +5973,14 @@ githubId = 1618343; }; foo-dogsquared = { - email = "foo.dogsquared@gmail.com"; + email = "foodogsquared@foodogsquared.one"; github = "foo-dogsquared"; githubId = 34962634; + matrix = "@foodogsquared:matrix.org"; name = "Gabriel Arazas"; + keys = [{ + fingerprint = "DDD7 D0BD 602E 564B AA04 FC35 1431 0D91 4115 2B92"; + }]; }; fooker = { email = "fooker@lab.sh"; @@ -5825,13 +6009,6 @@ githubId = 92793; name = "Friedrich von Never"; }; - fortuneteller2k = { - email = "lythe1107@gmail.com"; - matrix = "@fortuneteller2k:matrix.org"; - github = "fortuneteller2k"; - githubId = 20619776; - name = "fortuneteller2k"; - }; fpletz = { email = "fpletz@fnordicwalking.de"; github = "fpletz"; @@ -5859,6 +6036,11 @@ githubId = 119691; name = "Michael Gough"; }; + franciscod = { + github = "franciscod"; + githubId = 726447; + name = "Francisco Demartino"; + }; franzmondlichtmann = { name = "Franz Schroepf"; email = "franz-schroepf@t-online.de"; @@ -5935,6 +6117,10 @@ github = "frogamic"; githubId = 10263813; name = "Dominic Shelton"; + matrix = "@frogamic:beeper.com"; + keys = [{ + fingerprint = "779A 7CA8 D51C C53A 9C51 43F7 AAE0 70F0 67EC 00A5"; + }]; }; frontsideair = { email = "photonia@gmail.com"; @@ -5954,6 +6140,15 @@ githubId = 134872; name = "Sergei Lukianov"; }; + fryuni = { + name = "Luiz Ferraz"; + email = "luiz@lferraz.com"; + github = "Fryuni"; + githubId = 11063910; + keys = [{ + fingerprint = "2109 4B0E 560B 031E F539 62C8 2B56 8731 DB24 47EC"; + }]; + }; fsagbuya = { email = "fa@m-labs.ph"; github = "fsagbuya"; @@ -5992,7 +6187,7 @@ }; fugi = { email = "me@fugi.dev"; - github = "FugiMuffi"; + github = "fugidev"; githubId = 21362942; name = "Fugi"; }; @@ -6019,6 +6214,15 @@ githubId = 12715461; name = "Anders Bo Rasmussen"; }; + fwam = { + name = "Legion Orsetti"; + email = "fwam@queereen.dev"; + github = "fwam"; + githubId = 113541944; + keys = [{ + fingerprint = "3822 20B8 57ED 0602 3786 8A7A 18E1 AE22 D704 B4FC"; + }]; + }; fwc = { github = "fwc"; githubId = 29337229; @@ -6092,6 +6296,16 @@ githubId = 45048741; name = "Alwanga Oyango"; }; + galaxy = { + email = "galaxy@dmc.chat"; + matrix = "@galaxy:mozilla.org"; + name = "The Galaxy"; + github = "ga1aksy"; + githubId = 148551648; + keys = [{ + fingerprint = "48CA 3873 9E9F CA8E 76A0 835A E3DE CF85 4212 E1EA"; + }]; + }; gal_bolle = { email = "florent.becker@ens-lyon.org"; github = "FlorentBecker"; @@ -6235,6 +6449,16 @@ fingerprint = "D0CF 440A A703 E0F9 73CB A078 82BB 70D5 41AE 2DB4"; }]; }; + gepbird = { + email = "gutyina.gergo.2@gmail.com"; + github = "gepbird"; + githubId = 29818440; + name = "Gutyina Gergő"; + keys = [ + { fingerprint = "RoAfvqa6w1l8Vdm3W60TDXurYwJ6h03VEGD+wDNGEwc"; } + { fingerprint = "MP2UpIRtJpbFFqyucP431H/FPCfn58UhEUTro4lXtRs"; } + ]; + }; gerg-l = { email = "gregleyda@proton.me"; github = "Gerg-L"; @@ -6330,6 +6554,12 @@ githubId = 1713676; name = "Luis G. Torres"; }; + giomf = { + email = "giomf@mailbox.org"; + github = "giomf"; + githubId = 35076723; + name = "Guillaume Fournier"; + }; giorgiga = { email = "giorgio.gallo@bitnic.it"; github = "giorgiga"; @@ -6387,6 +6617,10 @@ githubId = 1447245; name = "Robin Gloster"; }; + gm6k = { + email = "nix@quidecco.pl"; + name = "Isidor Zeuner"; + }; gmemstr = { email = "git@gmem.ca"; github = "gmemstr"; @@ -6510,6 +6744,12 @@ githubId = 4656860; name = "Gaute Ravndal"; }; + gray-heron = { + email = "ave+nix@cezar.info"; + github = "gray-heron"; + githubId = 7032646; + name = "Cezary Siwek"; + }; graysonhead = { email = "grayson@graysonhead.net"; github = "graysonhead"; @@ -6734,6 +6974,12 @@ githubId = 33523827; name = "Harrison Thorne"; }; + haruki7049 = { + email = "tontonkirikiri@gmail.com"; + github = "haruki7049"; + githubId = 64677724; + name = "haruki7049"; + }; harvidsen = { email = "harvidsen@gmail.com"; github = "harvidsen"; @@ -7099,6 +7345,13 @@ fingerprint = "731A 7A05 AD8B 3AE5 956A C227 4A03 18E0 4E55 5DE5"; }]; }; + hubble = { + name = "Hubble the Wolverine"; + email = "hubblethewolverine@gmail.com"; + matrix = "@hubofeverything:bark.lgbt"; + github = "the-furry-hubofeverything"; + githubId = 53921912; + }; hufman = { email = "hufman@gmail.com"; github = "hufman"; @@ -7206,6 +7459,12 @@ githubId = 69209; name = "Ian Duncan"; }; + ianliu = { + email = "ian.liu88@gmail.com"; + github = "ianliu"; + githubId = 30196; + name = "Ian Liu Rodrigues"; + }; ianmjones = { email = "ian@ianmjones.com"; github = "ianmjones"; @@ -7263,6 +7522,13 @@ githubId = 1550265; name = "Dominic Steinitz"; }; + iFreilicht = { + github = "iFreilicht"; + githubId = 9742635; + matrix = "@ifreilicht:matrix.org"; + email = "nixpkgs@mail.felix-uhl.de"; + name = "Felix Uhl"; + }; ifurther = { github = "ifurther"; githubId = 55025025; @@ -7292,6 +7558,12 @@ githubId = 25505957; name = "Ilian"; }; + iliayar = { + email = "iliayar3@gmail.com"; + github = "iliayar"; + githubId = 17529355; + name = "Ilya Yaroshevskiy"; + }; ilikeavocadoes = { email = "ilikeavocadoes@hush.com"; github = "ilikeavocadoes"; @@ -7343,7 +7615,7 @@ }; imalison = { email = "IvanMalison@gmail.com"; - github = "IvanMalison"; + github = "colonelpanic8"; githubId = 1246619; name = "Ivan Malison"; }; @@ -7460,6 +7732,12 @@ githubId = 88038050; name = "Souvik Sen"; }; + iogamaster = { + email = "iogamastercode+nixpkgs@gmail.com"; + name = "IogaMaster"; + github = "iogamaster"; + githubId = 67164465; + }; ionutnechita = { email = "ionut_n2001@yahoo.com"; github = "ionutnechita"; @@ -7521,6 +7799,12 @@ githubId = 4458; name = "Ivan Kozik"; }; + ivan770 = { + email = "ivan@ivan770.me"; + github = "ivan770"; + githubId = 14003886; + name = "Ivan Leshchenko"; + }; ivan-babrou = { email = "nixpkgs@ivan.computer"; name = "Ivan Babrou"; @@ -7704,6 +7988,12 @@ githubId = 2212681; name = "Jakub Grzgorz Sokołowski"; }; + jakuzure = { + email = "shin@posteo.jp"; + github = "jakuzure"; + githubId = 11823547; + name = "jakuzure"; + }; jali-clarke = { email = "jinnah.ali-clarke@outlook.com"; name = "Jinnah Ali-Clarke"; @@ -7764,10 +8054,16 @@ githubId = 488556; name = "Javier Aguirre"; }; + javimerino = { + email = "merino.jav@gmail.com"; + name = "Javi Merino"; + github = "JaviMerino"; + githubId = 44926; + }; jayesh-bhoot = { name = "Jayesh Bhoot"; email = "jb@jayeshbhoot.com"; - github = "bhootjb"; + github = "jyssh"; githubId = 1915507; }; jayman2000 = { @@ -7972,6 +8268,12 @@ githubId = 854319; name = "Matt McHenry"; }; + jerrysm64 = { + email = "jerry.starke@icloud.com"; + github = "jerrysm64"; + githubId = 42114389; + name = "Jerry Starke"; + }; jeschli = { email = "jeschli@gmail.com"; github = "0mbi"; @@ -8017,6 +8319,15 @@ githubId = 18501; name = "Julien Langlois"; }; + jfly = { + name = "Jeremy Fleischman"; + email = "jeremyfleischman@gmail.com"; + github = "jfly"; + githubId = 277474; + keys = [{ + fingerprint = "F1F1 3395 8E8E 9CC4 D9FC 9647 1931 9CD8 416A 642B"; + }]; + }; jfrankenau = { email = "johannes@frankenau.net"; github = "jfrankenau"; @@ -8075,6 +8386,12 @@ githubId = 6445082; name = "Joseph Lukasik"; }; + jgoux = { + email = "hi@jgoux.dev"; + github = "jgoux"; + githubId = 1443499; + name = "Julien Goux"; + }; jhh = { email = "jeff@j3ff.io"; github = "jhh"; @@ -8148,6 +8465,12 @@ githubId = 3081095; name = "Jürgen Keck"; }; + jl178 = { + email = "jeredlittle1996@gmail.com"; + github = "jl178"; + githubId = 72664723; + name = "Jered Little"; + }; jlamur = { email = "contact@juleslamur.fr"; github = "jlamur"; @@ -8439,7 +8762,7 @@ }; jonnybolton = { email = "jonnybolton@gmail.com"; - github = "jonnybolton"; + github = "jonnynightingale"; githubId = 8580434; name = "Jonny Bolton"; }; @@ -8476,8 +8799,9 @@ githubId = 4646725; }; joscha = { - name = "joscha Loos"; + name = "Joscha Loos"; email = "j.loos@posteo.net"; + github = "jooooscha"; githubId = 57965027; }; josephst = { @@ -8522,6 +8846,12 @@ githubId = 1918771; name = "Joe Doyle"; }; + jpentland = { + email = "joe.pentland@gmail.com"; + github = "jpentland"; + githubId = 1135582; + name = "Joe Pentland"; + }; jperras = { email = "joel@nerderati.com"; github = "jperras"; @@ -8654,6 +8984,12 @@ githubId = 1189739; name = "Julio Borja Barra"; }; + jue89 = { + email = "me@jue.yt"; + github = "jue89"; + githubId = 6105784; + name = "Juergen Fitschen"; + }; jugendhacker = { name = "j.r"; email = "j.r@jugendhacker.de"; @@ -8798,6 +9134,15 @@ githubId = 386765; matrix = "@k900:0upti.me"; }; + kachick = { + email = "kachick1@gmail.com"; + github = "kachick"; + githubId = 1180335; + name = "Kenichi Kamiya"; + keys = [{ + fingerprint = "9121 5D87 20CA B405 C63F 24D2 EF6E 574D 040A E2A5"; + }]; + }; kaction = { name = "Dmitry Bogatov"; email = "KAction@disroot.org"; @@ -9482,6 +9827,11 @@ githubId = 894884; name = "Jakub Kozłowski"; }; + kupac = { + github = "Kupac"; + githubId = 8224569; + name = "László Kupcsik"; + }; kurnevsky = { email = "kurnevsky@gmail.com"; github = "kurnevsky"; @@ -9569,6 +9919,11 @@ }]; name = "Joseph LaFreniere"; }; + lagoja = { + github = "Lagoja"; + githubId =750845; + name = "John Lago"; + }; laikq = { email = "gwen@quasebarth.de"; github = "laikq"; @@ -9780,7 +10135,7 @@ }; lethalman = { email = "lucabru@src.gnome.org"; - github = "lethalman"; + github = "lucabrunox"; githubId = 480920; name = "Luca Bruno"; }; @@ -9880,6 +10235,17 @@ githubId = 3696783; name = "Leroy Hopson"; }; + liketechnik = { + name = "Florian Warzecha"; + + email = "liketechnik@disroot.org"; + github = "liketechnik"; + githubId = 24209689; + + keys = [{ + fingerprint = "92D8 A09D 03DD B774 AABD 53B9 E136 2F07 D750 DB5C"; + }]; + }; lillycham = { email = "lillycat332@gmail.com"; github = "lillycat332"; @@ -10209,6 +10575,12 @@ githubId = 2487922; name = "Lars Jellema"; }; + ludat = { + email = "lucas6246@gmail.com"; + github = "ludat"; + githubId = 4952044; + name = "Lucas David Traverso"; + }; ludo = { email = "ludo@gnu.org"; github = "civodul"; @@ -10295,12 +10667,6 @@ githubId = 84395723; name = "Lukas Wurzinger"; }; - lukeadams = { - email = "luke.adams@belljar.io"; - github = "lukeadams"; - githubId = 3508077; - name = "Luke Adams"; - }; lukebfox = { email = "lbentley-fox1@sheffield.ac.uk"; github = "lukebfox"; @@ -10453,12 +10819,6 @@ github = "mac-chaffee"; githubId = 7581860; }; - maddiethecafebabe = { - email = "maddie@cafebabe.date"; - github = "maddiethecafebabe"; - githubId = 75337286; - name = "Madeline S."; - }; madjar = { email = "georges.dubus@compiletoi.net"; github = "madjar"; @@ -10620,6 +10980,12 @@ githubId = 1651325; name = "maralorn"; }; + marcovergueira = { + email = "vergueira.marco@gmail.com"; + github = "marcovergueira"; + githubId = 929114; + name = "Marco Vergueira"; + }; marcus7070 = { email = "marcus@geosol.com.au"; github = "marcus7070"; @@ -10755,6 +11121,12 @@ githubId = 29855073; name = "Michael Colicchia"; }; + massimogengarelli = { + email = "massimo.gengarelli@gmail.com"; + github = "massix"; + githubId = 585424; + name = "Massimo Gengarelli"; + }; matejc = { email = "cotman.matej@gmail.com"; github = "matejc"; @@ -10767,6 +11139,12 @@ githubId = 7878181; name = "Mateo Diaz"; }; + materus = { + email = "materus@podkos.pl"; + github = "materusPL"; + githubId = 28183516; + name = "Mateusz Słodkowicz"; + }; math-42 = { email = "matheus.4200@gmail.com"; github = "Math-42"; @@ -10870,6 +11248,12 @@ githubId = 11810057; name = "Matt Snider"; }; + matusf = { + email = "matus.ferech@gmail.com"; + github = "matusf"; + githubId = 18228995; + name = "Matúš Ferech"; + }; maurer = { email = "matthew.r.maurer+nix@gmail.com"; github = "maurer"; @@ -10924,12 +11308,6 @@ githubId = 4708337; name = "Marcelo A. de L. Santos"; }; - maxhille = { - email = "mh@lambdasoup.com"; - github = "maxhille"; - githubId = 693447; - name = "Max Hille"; - }; maximsmol = { email = "maximsmol@gmail.com"; github = "maximsmol"; @@ -11381,6 +11759,18 @@ githubId = 43088426; name = "Mihnea Stoian"; }; + mikaelfangel = { + email = "nixpkgs.bottle597@passfwd.com"; + github = "MikaelFangel"; + githubId = 34864484; + name = "Mikael Fangel"; + }; + mikecm = { + email = "mikecmcleod@gmail.com"; + github = "MaxwellDupre"; + githubId = 14096356; + name = "Michael McLeod"; + }; mikefaille = { email = "michael@faille.io"; github = "mikefaille"; @@ -11493,12 +11883,28 @@ githubId = 149558; name = "Merlin Gaillard"; }; + mirkolenz = { + name = "Mirko Lenz"; + email = "mirko@mirkolenz.com"; + matrix = "@mlenz:matrix.org"; + github = "mirkolenz"; + githubId = 5160954; + }; mirrexagon = { email = "mirrexagon@mirrexagon.com"; github = "mirrexagon"; githubId = 1776903; name = "Andrew Abbott"; }; + mirrorwitch = { + email = "mirrorwitch@transmom.love"; + github = "mirrorwitch"; + githubId = 146672255; + name = "mirrorwitch"; + keys = [{ + fingerprint = "C3E7 F8C4 9CBC 9320 D360 B117 8516 D0FA 7D8F 58FC"; + }]; + }; Misaka13514 = { name = "Misaka13514"; email = "Misaka13514@gmail.com"; @@ -11542,6 +11948,13 @@ githubId = 1001112; name = "Marcin Janczyk"; }; + mjm = { + email = "matt@mattmoriarity.com"; + github = "mjm"; + githubId = 1181; + matrix = "@mjm:beeper.com"; + name = "Matt Moriarity"; + }; mjp = { email = "mike@mythik.co.uk"; github = "MikePlayle"; @@ -11693,6 +12106,13 @@ github = "ribosomerocker"; githubId = 46468162; }; + moni = { + email = "lythe1107@gmail.com"; + matrix = "@fortuneteller2k:matrix.org"; + github = "moni"; + githubId = 20619776; + name = "moni"; + }; monsieurp = { email = "monsieurp@gentoo.org"; github = "monsieurp"; @@ -11795,6 +12215,13 @@ githubId = 2072185; name = "Marc Scholten"; }; + mrcjkb = { + email = "marc@jakobi.dev"; + matrix = "@mrcjk:matrix.org"; + name = "Marc Jakobi"; + github = "mrcjkb"; + githubId = 12857160; + }; mredaelli = { email = "massimo@typish.io"; github = "mredaelli"; @@ -11851,6 +12278,16 @@ githubId = 839693; name = "Ingolf Wanger"; }; + msanft = { + email = "moritz.sanft@outlook.de"; + matrix = "@msanft:matrix.org"; + name = "Moritz Sanft"; + github = "msanft"; + githubId = 58110325; + keys = [{ + fingerprint = "3CAC 1D21 3D97 88FF 149A E116 BB8B 30F5 A024 C31C"; + }]; + }; mschristiansen = { email = "mikkel@rheosystems.com"; github = "mschristiansen"; @@ -12043,6 +12480,11 @@ githubId = 59313755; name = "Maxim Karasev"; }; + mxmlnkn = { + github = "mxmlnkn"; + githubId = 6842824; + name = "Maximilian Knespel"; + }; myaats = { email = "mats@mats.sh"; github = "Myaats"; @@ -12076,6 +12518,11 @@ fingerprint = "9E6A 25F2 C1F2 9D76 ED00 1932 1261 173A 01E1 0298"; }]; }; + nadir-ishiguro = { + github = "nadir-ishiguro"; + githubId = 23151917; + name = "nadir-ishiguro"; + }; nadrieril = { email = "nadrieril@gmail.com"; github = "Nadrieril"; @@ -12119,6 +12566,11 @@ githubId = 6709831; name = "Jake Hill"; }; + nasageek = { + github = "NasaGeek"; + githubId = 474937; + name = "Chris Roberts"; + }; nasirhm = { email = "nasirhussainm14@gmail.com"; github = "nasirhm"; @@ -12213,12 +12665,6 @@ githubId = 77314501; name = "Maurice Zhou"; }; - nebulka = { - email = "arapun@proton.me"; - github = "nebulka1"; - githubId = 121920704; - name = "Nebulka"; - }; Necior = { email = "adrian@sadlocha.eu"; github = "Necior"; @@ -12330,6 +12776,12 @@ githubId = 13920346; name = "Sébastien Iooss"; }; + netthier = { + email = "netthier@proton.me"; + name = "nett_hier"; + github = "netthier"; + githubId = 66856670; + }; networkexception = { name = "networkException"; email = "nix@nwex.de"; @@ -12398,6 +12850,12 @@ fingerprint = "7BC1 77D9 C222 B1DC FB2F 0484 C061 089E FEBF 7A35"; }]; }; + nicegamer7 = { + name = "Kermina Awad"; + email = "kerminaawad@gmail.com"; + github = "nicegamer7"; + githubId = 8083772; + }; nickcao = { name = "Nick Cao"; email = "nickcao@nichi.co"; @@ -12509,13 +12967,6 @@ fingerprint = "9B1A 7906 5D2F 2B80 6C8A 5A1C 7D2A CDAF 4653 CF28"; }]; }; - ninjatrappeur = { - email = "felix@alternativebit.fr"; - matrix = "@ninjatrappeur:matrix.org"; - github = "NinjaTrappeur"; - githubId = 1219785; - name = "Félix Baylac-Jacqué"; - }; nintron = { email = "nintron@sent.com"; github = "Nintron27"; @@ -12555,6 +13006,11 @@ githubId = 66913205; name = "Rick Sanchez"; }; + nix-julia = { + name = "nix-julia"; + github = "nix-julia"; + githubId = 149073815; + }; nixy = { email = "nixy@nixy.moe"; github = "nixy"; @@ -12714,6 +13170,12 @@ githubId = 9939720; name = "Philippe Nguyen"; }; + npulidomateo = { + matrix = "@npulidomateo:matrix.org"; + github = "npulidomateo"; + githubId = 13149442; + name = "Nico Pulido-Mateo"; + }; nrdxp = { email = "tim.deh@pm.me"; matrix = "@timdeh:matrix.org"; @@ -12871,6 +13333,13 @@ fingerprint = "939E F8A5 CED8 7F50 5BB5 B2D0 24BC 2738 5F70 234F"; }]; }; + octodi = { + name = "octodi"; + email = "octodi@proton.me"; + matrix = "@octodi:matrix.org"; + github = "octodi"; + githubId = 127038896; + }; oddlama = { email = "oddlama@oddlama.org"; github = "oddlama"; @@ -12898,6 +13367,11 @@ githubId = 585547; name = "Jaka Hudoklin"; }; + offsetcyan = { + github = "offsetcyan"; + githubId = 49906709; + name = "Dakota"; + }; oida = { email = "oida@posteo.de"; github = "oida"; @@ -13040,9 +13514,18 @@ githubId = 75299; name = "Malcolm Matalka"; }; + orhun = { + email = "orhunparmaksiz@gmail.com"; + github = "orhun"; + githubId = 24392180; + name = "Orhun Parmaksız"; + keys = [{ + fingerprint = "165E 0FF7 C48C 226E 1EC3 63A7 F834 2482 4B3E 4B90"; + }]; + }; orichter = { email = "richter-oliver@gmx.net"; - github = "RichterOliver"; + github = "ORichterSec"; githubId = 135209509; name = "Oliver Richter"; }; @@ -13284,12 +13767,6 @@ githubId = 6931743; name = "pasqui23"; }; - patricksjackson = { - email = "patrick@jackson.dev"; - github = "patricksjackson"; - githubId = 160646; - name = "Patrick Jackson"; - }; patryk27 = { email = "pwychowaniec@pm.me"; github = "Patryk27"; @@ -13311,6 +13788,11 @@ githubId = 15645854; name = "Brad Christensen"; }; + paumr = { + github = "paumr"; + name = "Michael Bergmeister"; + githubId = 53442728; + }; paveloom = { email = "paveloom@riseup.net"; github = "paveloom"; @@ -13372,6 +13854,7 @@ pbsds = { name = "Peder Bergebakken Sundt"; email = "pbsds@hotmail.com"; + matrix = "@pederbs:pvv.ntnu.no"; github = "pbsds"; githubId = 140964; }; @@ -13423,6 +13906,12 @@ githubId = 152312; name = "Periklis Tsirakidis"; }; + perstark = { + email = "perstark.se@gmail.com"; + github = "perstarkse"; + githubId = 63069986; + name = "Per Stark"; + }; petercommand = { email = "petercommand@gmail.com"; github = "petercommand"; @@ -13540,6 +14029,12 @@ githubId = 9267430; name = "Philipp Mildenberger"; }; + philiptaron = { + email = "philip.taron@gmail.com"; + github = "philiptaron"; + githubId = 43863; + name = "Philip Taron"; + }; phip1611 = { email = "phip1611@gmail.com"; github = "phip1611"; @@ -13564,6 +14059,12 @@ githubId = 301903; name = "Chip Collier"; }; + phrogg = { + name = "Phil Roggenbuck"; + email = "nixpkgs@phrogg.de"; + github = "phrogg"; + githubId = 1367949; + }; phryneas = { email = "mail@lenzw.de"; github = "phryneas"; @@ -13576,6 +14077,13 @@ githubId = 627831; name = "Hoang Xuan Phu"; }; + picnoir = { + email = "felix@alternativebit.fr"; + matrix = "@picnoir:alternativebit.fr"; + github = "picnoir"; + githubId = 1219785; + name = "Félix Baylac-Jacqué"; + }; piegames = { name = "piegames"; email = "nix@piegames.de"; @@ -13613,6 +14121,12 @@ githubId = 34967; name = "Julius de Bruijn"; }; + pineapplehunter = { + email = "peshogo+nixpkgs@gmail.com"; + github = "pineapplehunter"; + githubId = 8869894; + name = "Shogo Takata"; + }; pingiun = { email = "nixos@pingiun.com"; github = "pingiun"; @@ -13651,7 +14165,7 @@ }; pjbarnoy = { email = "pjbarnoy@gmail.com"; - github = "pjbarnoy"; + github = "waaamb"; githubId = 119460; name = "Perry Barnoy"; }; @@ -13685,6 +14199,12 @@ githubId = 610615; name = "Chih-Mao Chen"; }; + pks = { + email = "ps@pks.im"; + github = "pks-t"; + githubId = 4056630; + name = "Patrick Steinhardt"; + }; plabadens = { name = "Pierre Labadens"; email = "labadens.pierre+nixpkgs@gmail.com"; @@ -13697,7 +14217,7 @@ PlayerNameHere = { name = "Dixon Sean Low Yan Feng"; email = "dixonseanlow@protonmail.com"; - github = "PlayerNameHere"; + github = "dixslyf"; githubId = 56017218; keys = [{ fingerprint = "E6F4 BFB4 8DE3 893F 68FC A15F FF5F 4B30 A41B BAC8"; @@ -13721,12 +14241,25 @@ githubId = 7839004; name = "Dmitriy Pleshevskiy"; }; + pluiedev = { + email = "hi@pluie.me"; + github = "pluiedev"; + githubId = 22406910; + name = "Leah Amelia Chen"; + }; plumps = { email = "maks.bronsky@web.de"; github = "plumps"; githubId = 13000278; name = "Maksim Bronsky"; }; + plusgut = { + name = "Carlo Jeske"; + email = "carlo.jeske+nixpkgs@webentwickler2-0.de"; + github = "plusgut"; + githubId = 277935; + matrix = "@plusgut5:matrix.org"; + }; PlushBeaver = { name = "Dmitry Kozlyuk"; email = "dmitry.kozliuk+nixpkgs@gmail.com"; @@ -13869,7 +14402,7 @@ name = "Pedro Pombeiro"; }; pongo1231 = { - email = "pongo1999712@gmail.com"; + email = "pongo12310@gmail.com"; github = "pongo1231"; githubId = 4201956; name = "pongo1231"; @@ -14004,6 +14537,12 @@ githubId = 406946; name = "Valentin Lorentz"; }; + prominentretail = { + email = "me@jakepark.me"; + github = "ProminentRetail"; + githubId = 94048404; + name = "Jake Park"; + }; proofconstruction = { email = "source@proof.construction"; github = "proofconstruction"; @@ -14213,7 +14752,7 @@ }; quantenzitrone = { email = "quantenzitrone@protonmail.com"; - github = "Quantenzitrone"; + github = "quantenzitrone"; githubId = 74491719; matrix = "@quantenzitrone:matrix.org"; name = "quantenzitrone"; @@ -14245,6 +14784,12 @@ githubId = 1332289; name = "Quentin Machu"; }; + quinn-dougherty = { + email = "quinnd@riseup.net"; + github = "quinn-dougherty"; + githubId = 39039420; + name = "Quinn Dougherty"; + }; qyliss = { email = "hi@alyssa.is"; github = "alyssais"; @@ -14289,6 +14834,12 @@ githubId = 1016742; name = "Rafael García"; }; + rafaelrc = { + email = "contact@rafaelrc.com"; + name = "Rafael Carvalho"; + github = "rafaelrc7"; + githubId = 5376043; + }; ragge = { email = "r.dahlen@gmail.com"; github = "ragnard"; @@ -14401,9 +14952,15 @@ githubId = 145816; name = "David McKay"; }; + rayslash = { + email = "stevemathewjoy@tutanota.com"; + github = "rayslash"; + githubId = 45141270; + name = "Steve Mathew Joy"; + }; razvan = { email = "razvan.panda@gmail.com"; - github = "razvan-flavius-panda"; + github = "freeman42x"; githubId = 1758708; name = "Răzvan Flavius Panda"; }; @@ -14575,6 +15132,12 @@ githubId = 165283; name = "Alexey Kutepov"; }; + rexxDigital = { + email = "joellarssonpriv@gmail.com"; + github = "rexxDigital"; + githubId = 44014925; + name = "Rexx Larsson"; + }; rgnns = { email = "jglievano@gmail.com"; github = "rgnns"; @@ -14647,6 +15210,12 @@ githubId = 42619; name = "Wei-Ming Yang"; }; + rickvanprim = { + email = "me@rickvanprim.com"; + github = "rickvanprim"; + githubId = 13792812; + name = "James Leitch"; + }; rickynils = { email = "rickynils@gmail.com"; github = "rickynils"; @@ -14967,15 +15536,6 @@ }]; name = "Rahul Butani"; }; - rs0vere = { - email = "rs0vere@proton.me"; - github = "rs0vere"; - githubId = 140035635; - keys = [{ - fingerprint = "C6D8 B5C2 FA79 901B DCCF 95E1 FEC4 5C5A ED00 C58D"; - }]; - name = "Red Star Over Earth"; - }; rski = { name = "rski"; email = "rom.skiad+nix@gmail.com"; @@ -15000,6 +15560,12 @@ githubId = 47790121; name = "Ryan Burns"; }; + rtimush = { + email = "rtimush@gmail.com"; + github = "rtimush"; + githubId = 831307; + name = "Roman Timushev"; + }; rtreffer = { email = "treffer+nixos@measite.de"; github = "rtreffer"; @@ -15017,6 +15583,12 @@ github = "rubyowo"; githubId = 105302757; }; + rudolfvesely = { + name = "Rudolf Vesely"; + email = "i@rudolfvesely.com"; + github = "rudolfvesely"; + githubId = 13966949; + }; Ruixi-rebirth = { name = "Ruixi-rebirth"; email = "ruixirebirth@gmail.com"; @@ -15110,6 +15682,12 @@ fingerprint = "E4F4 1EAB BF0F C785 06D8 62EF EF68 CF41 D42A 593D"; }]; }; + ryangibb = { + email = "ryan@freumh.org"; + github = "ryangibb"; + githubId = 22669046; + name = "Ryan Gibb"; + }; ryanorendorff = { github = "ryanorendorff"; githubId = 12442942; @@ -15223,6 +15801,12 @@ githubId = 171470; name = "Sam Hug"; }; + SamirTalwar = { + email = "lazy.git@functional.computer"; + github = "abstracte"; + githubId = 47852; + name = "Samir Talwar"; + }; samlich = { email = "nixos@samli.ch"; github = "samlich"; @@ -15263,6 +15847,12 @@ githubId = 107703; name = "Samuel Rivas"; }; + samueltardieu = { + email = "nixpkgs@sam.rfc1149.net"; + github = "samueltardieu"; + githubId = 44656; + name = "Samuel Tardieu"; + }; samw = { email = "sam@wlcx.cc"; github = "wlcx"; @@ -15367,6 +15957,12 @@ githubId = 3958212; name = "Tom Sorlie"; }; + schinmai-akamai = { + email = "schinmai@akamai.com"; + github = "schinmai-akamai"; + githubId = 70169773; + name = "Tarun Chinmai Sekar"; + }; schmitthenner = { email = "development@schmitthenner.eu"; github = "fkz"; @@ -15780,6 +16376,12 @@ fingerprint = "AB63 4CD9 3322 BD42 6231 F764 C404 1EA6 B326 33DE"; }]; }; + shivaraj-bh = { + email = "sbh69840@gmail.com"; + name = "Shivaraj B H"; + github = "shivaraj-bh"; + githubId = 23645788; + }; shlevy = { email = "shea@shealevy.com"; github = "shlevy"; @@ -15950,6 +16552,12 @@ fingerprint = "B234 EFD4 2B42 FE81 EE4D 7627 F72C 4A88 7F9A 24CA"; }]; }; + sironheart = { + email = "git@beisenherz.dev"; + github = "Sironheart"; + githubId = 13799656; + name = "Steffen Beisenherz"; + }; sirseruju = { email = "sir.seruju@yandex.ru"; github = "SirSeruju"; @@ -15992,11 +16600,10 @@ githubId = 158321; name = "Stewart Mackenzie"; }; - skeidel = { - email = "svenkeidel@gmail.com"; - github = "svenkeidel"; - githubId = 266500; - name = "Sven Keidel"; + skovati = { + github = "skovati"; + githubId = 49844593; + name = "skovati"; }; skykanin = { github = "skykanin"; @@ -16118,6 +16725,16 @@ github = "SnO2WMaN"; githubId = 15155608; }; + snowflake = { + email = "snowflake@pissmail.com"; + name = "Snowflake"; + github = "snf1k"; + githubId = 149651684; + matrix = "@snowflake:mozilla.org"; + keys = [{ + fingerprint = "8223 7B6F 2FF4 8F16 B652 6CA3 934F 9E5F 9701 2C0B"; + }]; + }; snpschaaf = { email = "philipe.schaaf@secunet.com"; name = "Philippe Schaaf"; @@ -16157,6 +16774,16 @@ fingerprint = "E067 520F 5EF2 C175 3F60 50C0 BA46 725F 6A26 7442"; }]; }; + soispha = { + name = "Soispha"; + email = "soispha@vhack.eu"; + matrix = "@soispha:vhack.eu"; + github = "soispha"; + githubId = 132207423; + keys = [{ + fingerprint = "9606 FC74 9FCE 1636 0723 D4AD A5E9 4010 C3A6 42AD"; + }]; + }; solson = { email = "scott@solson.me"; matrix = "@solson:matrix.org"; @@ -16183,6 +16810,16 @@ githubId = 53029739; name = "Joshua Ortiz"; }; + Sorixelle = { + email = "ruby+nixpkgs@srxl.me"; + matrix = "@ruby:isincredibly.gay"; + name = "Ruby Iris Juric"; + github = "Sorixelle"; + githubId = 38685302; + keys = [{ + fingerprint = "2D76 76C7 A28E 16FC 75C7 268D 1B55 6ED8 4B0E 303A"; + }]; + }; sorki = { email = "srk@48.io"; github = "sorki"; @@ -16211,6 +16848,11 @@ fingerprint = "75F0 AB7C FE01 D077 AEE6 CAFD 353E 4A18 EE0F AB72"; }]; }; + spacefault = { + github = "spacefault"; + githubId = 74156492; + name = "spacefault"; + }; spacefrogg = { email = "spacefrogg-nixos@meterriblecrew.net"; github = "spacefrogg"; @@ -16724,6 +17366,12 @@ githubId = 7075751; name = "Patrick Hilhorst"; }; + sysedwinistrator = { + email = "edwin.mowen@gmail.com"; + github = "sysedwinistrator"; + githubId = 71331875; + name = "Edwin Mackenzie-Owen"; + }; szczyp = { email = "qb@szczyp.com"; github = "Szczyp"; @@ -16849,6 +17497,12 @@ githubId = 1901799; name = "Nathan van Doorn"; }; + taranarmo = { + email = "taranarmo@gmail.com"; + github = "taranarmo"; + githubId = 11619234; + name = "Sergey Volkov"; + }; tari = { email = "peter@taricorp.net"; github = "tari"; @@ -17132,7 +17786,7 @@ name = "The Hedgehog"; email = "hedgehog@mrhedgehog.xyz"; matrix = "@mrhedgehog:jupiterbroadcasting.com"; - github = "theHedgehog0"; + github = "pyrox0"; githubId = 35778371; keys = [{ fingerprint = "38A0 29B0 4A7E 4C13 A4BB 86C8 7D51 0786 6B1C 6752"; @@ -17491,6 +18145,12 @@ githubId = 858790; name = "Tobias Mayer"; }; + tochiaha = { + email = "tochiahan@proton.me"; + github = "Tochiaha"; + githubId = 74688871; + name = "Tochukwu Ahanonu"; + }; tokudan = { email = "git@danielfrank.net"; github = "tokudan"; @@ -17536,6 +18196,10 @@ githubId = 13155277; name = "Tom Houle"; }; + tomkoid = { + email = "tomaszierl@outlook.com"; + name = "Tomkoid"; + }; tomodachi94 = { email = "tomodachi94+nixpkgs@protonmail.com"; matrix = "@tomodachi94:matrix.org"; @@ -17606,12 +18270,6 @@ githubId = 10110; name = "Travis B. Hartwell"; }; - travisdavis-ops = { - email = "travisdavismedia@gmail.com"; - github = "TravisDavis-ops"; - githubId = 52011418; - name = "Travis Davis"; - }; traxys = { email = "quentin+dev@familleboyer.net"; github = "traxys"; @@ -17636,6 +18294,13 @@ githubId = 25440339; name = "Tom Repetti"; }; + trevdev = { + email = "trev@trevdev.ca"; + matrix = "@trevdev:matrix.org"; + github = "trev-dev"; + githubId = 28788713; + name = "Trevor Richards"; + }; trevorj = { email = "nix@trevor.joynson.io"; github = "akatrevorjay"; @@ -17690,6 +18355,12 @@ githubId = 15064765; name = "tshaynik"; }; + tsowell = { + email = "tom@ldtlb.com"; + github = "tsowell"; + githubId = 4044033; + name = "Thomas Sowell"; + }; ttuegel = { email = "ttuegel@mailbox.org"; github = "ttuegel"; @@ -17814,6 +18485,12 @@ githubId = 1983821; name = "Eric Wolf"; }; + u2x1 = { + email = "u2x1@outlook.com"; + github = "u2x1"; + githubId = 30677291; + name = "u2x1"; + }; uakci = { name = "uakci"; email = "uakci@uakci.pl"; @@ -17832,6 +18509,16 @@ githubId = 1607770; name = "Ulrik Strid"; }; + unclamped = { + name = "Maru"; + email = "clear6860@tutanota.com"; + matrix = "@unhidden0174:matrix.org"; + github = "unclamped"; + githubId = 104658278; + keys = [{ + fingerprint = "57A2 CC43 3068 CB62 89C1 F1DA 9137 BB2E 77AD DE7E"; + }]; + }; unclechu = { name = "Viacheslav Lotsmanov"; email = "lotsmanov89@gmail.com"; @@ -18123,6 +18810,15 @@ githubId = 245573; name = "Dmitry Kalinkin"; }; + vgskye = { + name = "Skye Green"; + email = "me@skye.vg"; + github = "vgskye"; + githubId = 116078858; + keys = [{ + fingerprint = "CDEA 7E04 69E3 0885 A754 4B05 0104 BC05 F41B 77B8"; + }]; + }; victormeriqui = { name = "Victor Meriqui"; email = "victor.meriqui@ororatech.com"; @@ -18289,6 +18985,12 @@ githubId = 7038383; name = "Vojta Káně"; }; + volfyd = { + email = "lb.nix@lisbethmail.com"; + github = "volfyd"; + githubId = 3578382; + name = "Leif Huhn"; + }; volhovm = { email = "volhovm.cs@gmail.com"; github = "volhovm"; @@ -18394,6 +19096,13 @@ fingerprint = "47F7 009E 3AE3 1DA7 988E 12E1 8C9B 0A8F C0C0 D862"; }]; }; + wamirez = { + email = "wamirez@protonmail.com"; + matrix = "@wamirez:matrix.org"; + github = "wamirez"; + githubId = 24505474; + name = "Daniel Ramirez"; + }; wamserma = { name = "Markus S. Wamser"; email = "github-dev@mail2013.wamser.eu"; @@ -18401,7 +19110,7 @@ githubId = 60148; }; water-sucks = { - email = "varun@cvte.org"; + email = "varun@snare.dev"; name = "Varun Narravula"; github = "water-sucks"; githubId = 68445574; @@ -18488,6 +19197,12 @@ fingerprint = "F844 80B2 0CA9 D6CC C7F5 2479 A776 D2AD 099E 8BC0"; }]; }; + wexder = { + email = "wexder19@gmail.com"; + github = "wexder"; + githubId = 24979302; + name = "Vladimír Zahradník"; + }; wheelsandmetal = { email = "jakob@schmutz.co.uk"; github = "wheelsandmetal"; @@ -18503,6 +19218,12 @@ fingerprint = "640B EDDE 9734 310A BFA3 B257 52ED AE6A 3995 AFAB"; }]; }; + whiteley = { + email = "mattwhiteley@gmail.com"; + github = "whiteley"; + githubId = 2215; + name = "Matt Whiteley"; + }; WhittlesJr = { email = "alex.joseph.whitt@gmail.com"; github = "WhittlesJr"; @@ -18515,6 +19236,22 @@ githubId = 7121530; name = "Wolf Honoré"; }; + wietsedv = { + email = "wietsedv@proton.me"; + github = "wietsedv"; + githubId = 13139101; + name = "Wietse de Vries"; + }; + wigust = { + name = "Oleg Pykhalov"; + email = "go.wigust@gmail.com"; + github = "wigust"; + githubId = 7709598; + keys = [{ + # primary: "C955 CC5D C048 7FB1 7966 40A9 199A F6A3 67E9 4ABB" + fingerprint = "7238 7123 8EAC EB63 4548 5857 167F 8EA5 001A FA9C"; + }]; + }; wildsebastian = { name = "Sebastian Wild"; email = "sebastian@wild-siena.com"; @@ -18600,11 +19337,11 @@ githubId = 168610; name = "Ricardo M. Correia"; }; - wjlroe = { - email = "willroe@gmail.com"; - github = "wjlroe"; - githubId = 43315; - name = "William Roe"; + wladmis = { + email = "dev@wladmis.org"; + github = "wladmis"; + githubId = 5000261; + name = "Wladmis"; }; wldhx = { email = "wldhx+nixpkgs@wldhx.me"; @@ -18784,11 +19521,11 @@ name = "Uli Baum"; }; xfix = { - email = "konrad@borowski.pw"; + email = "kamila@borowska.pw"; matrix = "@xfix:matrix.org"; github = "xfix"; githubId = 1297598; - name = "Konrad Borowski"; + name = "Kamila Borowska"; }; xfnw = { email = "xfnw+nixos@riseup.net"; @@ -18890,6 +19627,12 @@ github = "yanganto"; githubId = 10803111; }; + yannip = { + email = "yPapandreou7@gmail.com"; + github = "YanniPapandreou"; + githubId = 15948162; + name = "Yanni Papandreou"; + }; yarny = { github = "Yarny0"; githubId = 41838844; @@ -18913,7 +19656,7 @@ ]; }; yayayayaka = { - email = "nixpkgs@uwu.is"; + email = "github@uwu.is"; matrix = "@yaya:uwu.is"; github = "yayayayaka"; githubId = 73759599; @@ -18934,6 +19677,13 @@ fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4"; }]; }; + YellowOnion = { + name = "Daniel Hill"; + email = "daniel@gluo.nz"; + github = "YellowOnion"; + githubId = 364160; + matrix = "@woobilicious:matrix.org"; + }; yesbox = { email = "jesper.geertsen.jonsson@gmail.com"; github = "yesbox"; @@ -18995,6 +19745,11 @@ github = "ymeister"; githubId = 47071325; }; + ymstnt = { + name = "YMSTNT"; + github = "ymstnt"; + githubId = 21342713; + }; yoavlavi = { email = "yoav@yoavlavi.com"; github = "yoav-lavi"; @@ -19027,6 +19782,13 @@ github = "YorikSar"; githubId = 428074; }; + YoshiRulz = { + name = "YoshiRulz"; + email = "OSSYoshiRulz+Nixpkgs@gmail.com"; + matrix = "@YoshiRulz:matrix.org"; + github = "YoshiRulz"; + githubId = 13409956; + }; yrashk = { email = "yrashk@gmail.com"; github = "yrashk"; @@ -19067,6 +19829,12 @@ fingerprint = "85F8 E850 F8F2 F823 F934 535B EC50 6589 9AEA AF4C"; }]; }; + yunfachi = { + email = "yunfachi@gmail.com"; + github = "yunfachi"; + githubId = 73419713; + name = "Yunfachi"; + }; yureien = { email = "contact@sohamsen.me"; github = "Yureien"; @@ -19307,6 +20075,12 @@ github = "zmitchell"; githubId = 10246891; }; + znaniye = { + email = "zn4niye@proton.me"; + github = "znaniye"; + githubId = 134703788; + name = "Samuel Silva"; + }; znewman01 = { email = "znewman01@gmail.com"; github = "znewman01"; diff --git a/maintainers/scripts/all-tarballs.nix b/maintainers/scripts/all-tarballs.nix index 6a4de8a4b9511..83236e6fa91e9 100644 --- a/maintainers/scripts/all-tarballs.nix +++ b/maintainers/scripts/all-tarballs.nix @@ -12,5 +12,5 @@ import ../../pkgs/top-level/release.nix scrubJobs = false; # No need to evaluate on i686. supportedSystems = [ "x86_64-linux" ]; - limitedSupportedSystems = []; + bootstrapConfigs = []; } diff --git a/maintainers/scripts/fix-maintainers.pl b/maintainers/scripts/fix-maintainers.pl index a83df9ec0cf0f..c953cff5cc487 100755 --- a/maintainers/scripts/fix-maintainers.pl +++ b/maintainers/scripts/fix-maintainers.pl @@ -13,12 +13,15 @@ STDOUT->autoflush(1); my $ua = LWP::UserAgent->new(); +if (!defined $ENV{GH_TOKEN}) { + die "Set GH_TOKEN before running this script"; +} + keys %$maintainers_json; # reset the internal iterator so a prior each() doesn't affect the loop while(my($k, $v) = each %$maintainers_json) { my $current_user = %$v{'github'}; if (!defined $current_user) { print "$k has no github handle\n"; - next; } my $github_id = %$v{'githubId'}; if (!defined $github_id) { @@ -37,13 +40,16 @@ while(my($k, $v) = each %$maintainers_json) { sleep($ratelimit_reset - time() + 5); } if ($resp->code != 200) { - print $current_user . " likely deleted their github account\n"; + print "$k likely deleted their github account\n"; next; } my $resp_json = from_json($resp->content); my $api_user = %$resp_json{"login"}; - if (lc($current_user) ne lc($api_user)) { - print $current_user . " is now known on github as " . $api_user . ". Editing maintainer-list.nix…\n"; + if (!defined $current_user) { + print "$k is known on github as $api_user.\n"; + } + elsif (lc($current_user) ne lc($api_user)) { + print "$k is now known on github as $api_user. Editing maintainer-list.nix…\n"; my $file = path($maintainers_list_nix); my $data = $file->slurp_utf8; $data =~ s/github = "$current_user";$/github = "$api_user";/m; diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs index 5573e5e5afc6e..2ce3ecb2ae70a 100755 --- a/maintainers/scripts/haskell/hydra-report.hs +++ b/maintainers/scripts/haskell/hydra-report.hs @@ -187,7 +187,7 @@ getBuildReports opt = runReq defaultHttpConfig do getEvalBuilds :: HydraSlownessWorkaroundFlag -> Int -> Req (Seq Build) getEvalBuilds NoHydraSlownessWorkaround id = - hydraJSONQuery (responseTimeout 900000000) ["eval", showT id, "builds"] + hydraJSONQuery mempty ["eval", showT id, "builds"] getEvalBuilds HydraSlownessWorkaround id = do Eval{builds} <- hydraJSONQuery mempty [ "eval", showT id ] forM builds $ \buildId -> do @@ -195,14 +195,15 @@ getEvalBuilds HydraSlownessWorkaround id = do hydraJSONQuery mempty [ "build", showT buildId ] hydraQuery :: HttpResponse a => Proxy a -> Option 'Https -> [Text] -> Req (HttpResponseBody a) -hydraQuery responseType option query = - responseBody - <$> req - GET - (foldl' (/:) (https "hydra.nixos.org") query) - NoReqBody - responseType - (header "User-Agent" "hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell) pls fix https://github.com/NixOS/nixos-org-configurations/issues/270" <> option) +hydraQuery responseType option query = do + let customHeaderOpt = + header + "User-Agent" + "hydra-report.hs/v1 (nixpkgs;maintainers/scripts/haskell) pls fix https://github.com/NixOS/nixos-org-configurations/issues/270" + customTimeoutOpt = responseTimeout 900_000_000 -- 15 minutes + opts = customHeaderOpt <> customTimeoutOpt <> option + url = foldl' (/:) (https "hydra.nixos.org") query + responseBody <$> req GET url NoReqBody responseType opts hydraJSONQuery :: FromJSON a => Option 'Https -> [Text] -> Req a hydraJSONQuery = hydraQuery jsonResponse diff --git a/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh b/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh index 86fecbc3d87c9..9130941a53661 100755 --- a/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh +++ b/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh @@ -39,5 +39,5 @@ fi package_list="$(nix-build -A haskell.package-list)/nixos-hackage-packages.csv" username=$(grep "^username:" "$CABAL_DIR/config" | sed "s/^username: //") password_command=$(grep "^password-command:" "$CABAL_DIR/config" | sed "s/^password-command: //") -curl -u "$username:$($password_command | head -n1)" --digest -H "Content-type: text/csv" -T "$package_list" http://hackage.haskell.org/distro/NixOS/packages.csv +curl -u "$username:$($password_command | head -n1)" --digest -H "Content-type: text/csv" -T "$package_list" https://hackage.haskell.org/distro/NixOS/packages.csv echo diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv index 52ac8a9343192..78cfca24d96b1 100644 --- a/maintainers/scripts/luarocks-packages.csv +++ b/maintainers/scripts/luarocks-packages.csv @@ -1,9 +1,9 @@ name,src,ref,server,version,luaversion,maintainers alt-getopt,,,,,,arobyn bit32,,,,5.3.0-1,5.1,lblasc -argparse,https://github.com/luarocks/argparse.git,,,,, -basexx,https://github.com/teto/basexx.git,,,,, -binaryheap,https://github.com/Tieske/binaryheap.lua,,,,,vcunat +argparse,,,,,, +basexx,,,,,, +binaryheap,,,,,,vcunat busted,,,,,, cassowary,,,,,,marsam alerque cldr,,,,,,alerque @@ -12,8 +12,7 @@ cosmo,,,,,,marsam coxpcall,,,,1.17.0-1,, cqueues,,,,,,vcunat cyan,,,,,, -cyrussasl,https://github.com/JorjBauer/lua-cyrussasl.git,,,,, -digestif,https://github.com/astoff/digestif.git,,,0.2-1,5.3, +digestif,https://github.com/astoff/digestif.git,,,,5.3, dkjson,,,,,, fennel,,,,,,misterio77 fifo,,,,,, @@ -24,7 +23,7 @@ http,,,,0.3-0,,vcunat inspect,,,,,, jsregexp,,,,,, ldbus,,,http://luarocks.org/dev,,, -ldoc,https://github.com/stevedonovan/LDoc.git,,,,, +ldoc,,,,,, lgi,,,,,, linenoise,https://github.com/hoelzro/lua-linenoise.git,,,,, ljsyscall,,,,,5.1,lblasc @@ -34,14 +33,13 @@ loadkit,,,,,,alerque lpeg,,,,,,vyp lpeg_patterns,,,,,, lpeglabel,,,,1.6.0,, -lpty,,,,,, lrexlib-gnu,,,,,, lrexlib-pcre,,,,,,vyp lrexlib-posix,,,,,, lua-cjson,,,,,, lua-cmsgpack,,,,,, lua-curl,,,,,, -lua-iconv,,,,,, +lua-ffi-zlib,,,,,, lua-lsp,,,,,, lua-messagepack,,,,,, lua-protobuf,,,,,,lockejan @@ -50,6 +48,7 @@ lua-resty-jwt,,,,,, lua-resty-openidc,,,,,, lua-resty-openssl,,,,,, lua-resty-session,,,,,, +lua-rtoml,https://github.com/lblasc/lua-rtoml,,,,,lblasc lua-subprocess,https://github.com/0x0ade/lua-subprocess,,,,5.1,scoder12 lua-term,,,,,, lua-toml,,,,,, @@ -72,6 +71,7 @@ lualogging,,,,,, luaossl,,,,,5.1, luaposix,,,,34.1.1-1,,vyp lblasc luarepl,,,,,, +luarocks-build-rust-mlua,,,,,,mrcjkb luasec,,,,,,flosse luasocket,,,,,, luasql-sqlite3,,,,,,vyp @@ -82,31 +82,36 @@ luaunit,,,,,,lockejan luautf8,,,,,,pstn luazip,,,,,, lua-yajl,,,,,,pstn +lua-iconv,,,,7.0.0,, luuid,,,,,, luv,,,,1.44.2-1,, lush.nvim,https://github.com/rktjmp/lush.nvim,,,,,teto lyaml,,,,,,lblasc -magick,,,,,,donovanglover +magick,,,,,5.1,donovanglover markdown,,,,,, mediator_lua,,,,,, +middleclass,,,,,, mpack,,,,,, moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn +nui.nvim,,,,,,mrcjkb nvim-client,https://github.com/neovim/lua-client.git,,,,, nvim-cmp,https://github.com/hrsh7th/nvim-cmp,,,,, penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,5.1, rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,, rest.nvim,,,,,5.1,teto -readline,,,,,, +rustaceanvim,,,,,,mrcjkb say,https://github.com/Olivine-Labs/say.git,,,,, serpent,,,,,,lockejan sqlite,,,,,, std._debug,https://github.com/lua-stdlib/_debug.git,,,,, -std.normalize,https://github.com/lua-stdlib/normalize.git,,,,, +std.normalize,,,,,, stdlib,,,,41.2.2,,vyp teal-language-server,,,http://luarocks.org/dev,,, telescope.nvim,,,,,5.1, telescope-manix,,,,,, tl,,,,,,mephistophiles +toml,,,,,,mrcjkb +toml-edit,,,,,5.1,mrcjkb vstruct,https://github.com/ToxicFrog/vstruct.git,,,,, vusted,,,,,,figsoda diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py index 6a607eb624803..cc0f4ef742d11 100644 --- a/maintainers/scripts/pluginupdate.py +++ b/maintainers/scripts/pluginupdate.py @@ -26,7 +26,7 @@ import urllib.parse import urllib.request import xml.etree.ElementTree as ET from dataclasses import asdict, dataclass -from datetime import datetime +from datetime import UTC, datetime from functools import wraps from multiprocessing.dummy import Pool from pathlib import Path @@ -321,8 +321,13 @@ def load_plugins_from_csv( return plugins -def run_nix_expr(expr): - with CleanEnvironment() as nix_path: + +def run_nix_expr(expr, nixpkgs: str): + ''' + :param expr nix expression to fetch current plugins + :param nixpkgs Path towards a nixpkgs checkout + ''' + with CleanEnvironment(nixpkgs) as nix_path: cmd = [ "nix", "eval", @@ -335,8 +340,8 @@ def run_nix_expr(expr): "--nix-path", nix_path, ] - log.debug("Running command %s", " ".join(cmd)) - out = subprocess.check_output(cmd) + log.debug("Running command: %s", " ".join(cmd)) + out = subprocess.check_output(cmd, timeout=90) data = json.loads(out) return data @@ -396,9 +401,9 @@ class Editor: """CSV spec""" print("the update member function should be overriden in subclasses") - def get_current_plugins(self) -> List[Plugin]: + def get_current_plugins(self, nixpkgs) -> List[Plugin]: """To fill the cache""" - data = run_nix_expr(self.get_plugins) + data = run_nix_expr(self.get_plugins, nixpkgs) plugins = [] for name, attr in data.items(): p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"]) @@ -414,7 +419,7 @@ class Editor: raise NotImplementedError() def get_update(self, input_file: str, outfile: str, config: FetchConfig): - cache: Cache = Cache(self.get_current_plugins(), self.cache_file) + cache: Cache = Cache(self.get_current_plugins(self.nixpkgs), self.cache_file) _prefetch = functools.partial(prefetch, cache=cache) def update() -> dict: @@ -454,9 +459,16 @@ class Editor: ), ) common.add_argument( + "--nixpkgs", + type=str, + default=os.getcwd(), + help="Adjust log level", + ) + common.add_argument( "--input-names", "-i", dest="input_file", + type=Path, default=self.default_in, help="A list of plugins in the form owner/repo", ) @@ -465,6 +477,7 @@ class Editor: "-o", dest="outfile", default=self.default_out, + type=Path, help="Filename to save generated nix code", ) common.add_argument( @@ -541,22 +554,26 @@ class Editor: command = args.command or "update" log.setLevel(LOG_LEVELS[args.debug]) log.info("Chose to run command: %s", command) + self.nixpkgs = args.nixpkgs - if not args.no_commit: - self.nixpkgs_repo = git.Repo(self.root, search_parent_directories=True) + self.nixpkgs_repo = git.Repo(args.nixpkgs, search_parent_directories=True) getattr(self, command)(args) class CleanEnvironment(object): + def __init__(self, nixpkgs): + self.local_pkgs = nixpkgs + def __enter__(self) -> str: - self.old_environ = os.environ.copy() + """ local_pkgs = str(Path(__file__).parent.parent.parent) + """ + self.old_environ = os.environ.copy() self.empty_config = NamedTemporaryFile() self.empty_config.write(b"{}") self.empty_config.flush() - os.environ["NIXPKGS_CONFIG"] = self.empty_config.name - return f"localpkgs={local_pkgs}" + return f"localpkgs={self.local_pkgs}" def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: os.environ.update(self.old_environ) @@ -758,7 +775,8 @@ def commit(repo: git.Repo, message: str, files: List[Path]) -> None: def update_plugins(editor: Editor, args): - """The main entry function of this module. All input arguments are grouped in the `Editor`.""" + """The main entry function of this module. + All input arguments are grouped in the `Editor`.""" log.info("Start updating plugins") fetch_config = FetchConfig(args.proc, args.github_token) @@ -770,8 +788,16 @@ def update_plugins(editor: Editor, args): autocommit = not args.no_commit if autocommit: - editor.nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True) - commit(editor.nixpkgs_repo, f"{editor.attr_path}: update", [args.outfile]) + try: + repo = git.Repo(os.getcwd()) + updated = datetime.now(tz=UTC).strftime('%Y-%m-%d') + print(args.outfile) + commit(repo, + f"{editor.attr_path}: update on {updated}", [args.outfile] + ) + except git.InvalidGitRepositoryError as e: + print(f"Not in a git repository: {e}", file=sys.stderr) + sys.exit(1) if redirects: update() diff --git a/maintainers/scripts/sha-to-sri.py b/maintainers/scripts/sha-to-sri.py new file mode 100755 index 0000000000000..1af7ff215ad33 --- /dev/null +++ b/maintainers/scripts/sha-to-sri.py @@ -0,0 +1,228 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ rich structlog ])" + +from abc import ABC, abstractclassmethod, abstractmethod +from contextlib import contextmanager +from pathlib import Path +from structlog.contextvars import bound_contextvars as log_context +from typing import ClassVar, List, Tuple + +import hashlib, re, structlog + + +logger = structlog.getLogger("sha-to-SRI") + + +class Encoding(ABC): + alphabet: ClassVar[str] + + @classmethod + @property + def name(cls) -> str: + return cls.__name__.lower() + + def toSRI(self, s: str) -> str: + digest = self.decode(s) + assert len(digest) == self.n + + from base64 import b64encode + return f"{self.hashName}-{b64encode(digest).decode()}" + + @classmethod + def all(cls, h) -> 'List[Encoding]': + return [ c(h) for c in cls.__subclasses__() ] + + def __init__(self, h): + self.n = h.digest_size + self.hashName = h.name + + @property + @abstractmethod + def length(self) -> int: + ... + + @property + def regex(self) -> str: + return f"[{self.alphabet}]{{{self.length}}}" + + @abstractmethod + def decode(self, s: str) -> bytes: + ... + + +class Nix32(Encoding): + alphabet = "0123456789abcdfghijklmnpqrsvwxyz" + inverted = { c: i for i, c in enumerate(alphabet) } + + @property + def length(self): + return 1 + (8 * self.n) // 5 + def decode(self, s: str): + assert len(s) == self.length + out = [ 0 for _ in range(self.n) ] + # TODO: Do better than a list of byte-sized ints + + for n, c in enumerate(reversed(s)): + digit = self.inverted[c] + i, j = divmod(5 * n, 8) + out[i] = out[i] | (digit << j) & 0xff + rem = digit >> (8 - j) + if rem == 0: + continue + elif i < self.n: + out[i+1] = rem + else: + raise ValueError(f"Invalid nix32 hash: '{s}'") + + return bytes(out) + +class Hex(Encoding): + alphabet = "0-9A-Fa-f" + + @property + def length(self): + return 2 * self.n + def decode(self, s: str): + from binascii import unhexlify + return unhexlify(s) + +class Base64(Encoding): + alphabet = "A-Za-z0-9+/" + + @property + def format(self) -> Tuple[int, int]: + """Number of characters in data and padding.""" + i, k = divmod(self.n, 3) + return 4 * i + (0 if k == 0 else k + 1), (3 - k) % 3 + @property + def length(self): + return sum(self.format) + @property + def regex(self): + data, padding = self.format + return f"[{self.alphabet}]{{{data}}}={{{padding}}}" + def decode(self, s): + from base64 import b64decode + return b64decode(s, validate = True) + + +_HASHES = (hashlib.new(n) for n in ('SHA-256', 'SHA-512')) +ENCODINGS = { + h.name: Encoding.all(h) + for h in _HASHES +} + +RE = { + h: "|".join( + (f"({h}-)?" if e.name == 'base64' else '') + + f"(?P<{h}_{e.name}>{e.regex})" + for e in encodings + ) for h, encodings in ENCODINGS.items() +} + +_DEF_RE = re.compile("|".join( + f"(?P<{h}>{h} = (?P<{h}_quote>['\"])({re})(?P={h}_quote);)" + for h, re in RE.items() +)) + + +def defToSRI(s: str) -> str: + def f(m: re.Match[str]) -> str: + try: + for h, encodings in ENCODINGS.items(): + if m.group(h) is None: + continue + + for e in encodings: + s = m.group(f"{h}_{e.name}") + if s is not None: + return f'hash = "{e.toSRI(s)}";' + + raise ValueError(f"Match with '{h}' but no subgroup") + raise ValueError("Match with no hash") + + except ValueError as exn: + logger.error( + "Skipping", + exc_info = exn, + ) + return m.group() + + return _DEF_RE.sub(f, s) + + +@contextmanager +def atomicFileUpdate(target: Path): + '''Atomically replace the contents of a file. + + Guarantees that no temporary files are left behind, and `target` is either + left untouched, or overwritten with new content if no exception was raised. + + Yields a pair `(original, new)` of open files. + `original` is the pre-existing file at `target`, open for reading; + `new` is an empty, temporary file in the same filder, open for writing. + + Upon exiting the context, the files are closed; if no exception was + raised, `new` (atomically) replaces the `target`, otherwise it is deleted. + ''' + # That's mostly copied from noto-emoji.py, should DRY it out + from tempfile import mkstemp + fd, _p = mkstemp( + dir = target.parent, + prefix = target.name, + ) + tmpPath = Path(_p) + + try: + with target.open() as original: + with tmpPath.open('w') as new: + yield (original, new) + + tmpPath.replace(target) + + except Exception: + tmpPath.unlink(missing_ok = True) + raise + + +def fileToSRI(p: Path): + with atomicFileUpdate(p) as (og, new): + for i, line in enumerate(og): + with log_context(line=i): + new.write(defToSRI(line)) + + +_SKIP_RE = re.compile( + "(generated by)|(do not edit)", + re.IGNORECASE +) + +if __name__ == "__main__": + from sys import argv, stderr + logger.info("Starting!") + + for arg in argv[1:]: + p = Path(arg) + with log_context(path=str(p)): + try: + if p.name == "yarn.nix" or p.name.find("generated") != -1: + logger.warning("File looks autogenerated, skipping!") + continue + + with p.open() as f: + for line in f: + if line.strip(): + break + + if _SKIP_RE.search(line): + logger.warning("File looks autogenerated, skipping!") + continue + + fileToSRI(p) + except Exception as exn: + logger.error( + "Unhandled exception, skipping file!", + exc_info = exn, + ) + else: + logger.info("Finished processing file") diff --git a/maintainers/scripts/sha256-to-SRI.py b/maintainers/scripts/sha256-to-SRI.py deleted file mode 100755 index dcacb4c58044b..0000000000000 --- a/maintainers/scripts/sha256-to-SRI.py +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i "python3 -I" -p "python3.withPackages(p: with p; [ rich structlog ])" - -from contextlib import contextmanager -from pathlib import Path -from structlog.contextvars import bound_contextvars as log_context - -import re, structlog - - -logger = structlog.getLogger("sha256-to-SRI") - - -nix32alphabet = "0123456789abcdfghijklmnpqrsvwxyz" -nix32inverted = { c: i for i, c in enumerate(nix32alphabet) } - -def nix32decode(s: str) -> bytes: - # only support sha256 hashes for now - assert len(s) == 52 - out = [ 0 for _ in range(32) ] - # TODO: Do better than a list of byte-sized ints - - for n, c in enumerate(reversed(s)): - digit = nix32inverted[c] - i, j = divmod(5 * n, 8) - out[i] = out[i] | (digit << j) & 0xff - rem = digit >> (8 - j) - if rem == 0: - continue - elif i < 31: - out[i+1] = rem - else: - raise ValueError(f"Invalid nix32 hash: '{s}'") - - return bytes(out) - - -def toSRI(digest: bytes) -> str: - from base64 import b64encode - assert len(digest) == 32 - return f"sha256-{b64encode(digest).decode()}" - - -RE = { - 'nix32': f"[{nix32alphabet}]" "{52}", - 'hex': "[0-9A-Fa-f]{64}", - 'base64': "[A-Za-z0-9+/]{43}=", -} -RE['sha256'] = '|'.join( - f"{'(sha256-)?' if name == 'base64' else ''}" - f"(?P<{name}>{r})" - for name, r in RE.items() -) - -def sha256toSRI(m: re.Match) -> str: - """Produce the equivalent SRI string for any match of RE['sha256']""" - if m['nix32'] is not None: - return toSRI(nix32decode(m['nix32'])) - if m['hex'] is not None: - from binascii import unhexlify - return toSRI(unhexlify(m['hex'])) - if m['base64'] is not None: - from base64 import b64decode - return toSRI(b64decode(m['base64'])) - - raise ValueError("Got a match where none of the groups captured") - - -# Ohno I used evil, irregular backrefs instead of making 2 variants ^^' -_def_re = re.compile( - "sha256 = (?P<quote>[\"'])" - f"({RE['sha256']})" - "(?P=quote);" -) - -def defToSRI(s: str) -> str: - def f(m: re.Match[str]) -> str: - try: - return f'hash = "{sha256toSRI(m)}";' - - except ValueError as exn: - begin, end = m.span() - match = m.string[begin:end] - - logger.error( - "Skipping", - exc_info = exn, - ) - return match - - return _def_re.sub(f, s) - - -@contextmanager -def atomicFileUpdate(target: Path): - '''Atomically replace the contents of a file. - - Guarantees that no temporary files are left behind, and `target` is either - left untouched, or overwritten with new content if no exception was raised. - - Yields a pair `(original, new)` of open files. - `original` is the pre-existing file at `target`, open for reading; - `new` is an empty, temporary file in the same filder, open for writing. - - Upon exiting the context, the files are closed; if no exception was - raised, `new` (atomically) replaces the `target`, otherwise it is deleted. - ''' - # That's mostly copied from noto-emoji.py, should DRY it out - from tempfile import mkstemp - fd, _p = mkstemp( - dir = target.parent, - prefix = target.name, - ) - tmpPath = Path(_p) - - try: - with target.open() as original: - with tmpPath.open('w') as new: - yield (original, new) - - tmpPath.replace(target) - - except Exception: - tmpPath.unlink(missing_ok = True) - raise - - -def fileToSRI(p: Path): - with atomicFileUpdate(p) as (og, new): - for i, line in enumerate(og): - with log_context(line=i): - new.write(defToSRI(line)) - - -if __name__ == "__main__": - from sys import argv, stderr - - for arg in argv[1:]: - p = Path(arg) - with log_context(path=str(p)): - try: - fileToSRI(p) - except Exception as exn: - logger.error( - "Unhandled exception, skipping file!", - exc_info = exn, - ) - else: - logger.info("Finished processing file") diff --git a/maintainers/scripts/update-luarocks-packages b/maintainers/scripts/update-luarocks-packages deleted file mode 100755 index 791cd8a1d89d9..0000000000000 --- a/maintainers/scripts/update-luarocks-packages +++ /dev/null @@ -1,216 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell update-luarocks-shell.nix -i python3 - -# format: -# $ nix run nixpkgs.python3Packages.black -c black update.py -# type-check: -# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py -# linted: -# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py - -import inspect -import os -import tempfile -import shutil -from dataclasses import dataclass -import subprocess -import csv -import logging -import textwrap -from multiprocessing.dummy import Pool - -from typing import List, Tuple, Optional -from pathlib import Path - -log = logging.getLogger() -log.addHandler(logging.StreamHandler()) - -ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore -import pluginupdate -from pluginupdate import update_plugins, FetchConfig, CleanEnvironment - -PKG_LIST="maintainers/scripts/luarocks-packages.csv" -TMP_FILE="$(mktemp)" -GENERATED_NIXFILE="pkgs/development/lua-modules/generated-packages.nix" -LUAROCKS_CONFIG="maintainers/scripts/luarocks-config.lua" - -HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! -Regenerate it with: -nixpkgs$ ./maintainers/scripts/update-luarocks-packages - -You can customize the generated packages in pkgs/development/lua-modules/overrides.nix -*/ -""".format(GENERATED_NIXFILE=GENERATED_NIXFILE) - -FOOTER=""" -} -/* GENERATED - do not edit this file */ -""" - -@dataclass -class LuaPlugin: - name: str - '''Name of the plugin, as seen on luarocks.org''' - src: str - '''address to the git repository''' - ref: Optional[str] - '''git reference (branch name/tag)''' - version: Optional[str] - '''Set it to pin a package ''' - server: Optional[str] - '''luarocks.org registers packages under different manifests. - Its value can be 'http://luarocks.org/dev' - ''' - luaversion: Optional[str] - '''Attribue of the lua interpreter if a package is available only for a specific lua version''' - maintainers: Optional[str] - ''' Optional string listing maintainers separated by spaces''' - - @property - def normalized_name(self) -> str: - return self.name.replace(".", "-") - -# rename Editor to LangUpdate/ EcosystemUpdater -class LuaEditor(pluginupdate.Editor): - def get_current_plugins(self): - return [] - - def load_plugin_spec(self, input_file) -> List[LuaPlugin]: - luaPackages = [] - csvfilename=input_file - log.info("Loading package descriptions from %s", csvfilename) - - with open(csvfilename, newline='') as csvfile: - reader = csv.DictReader(csvfile,) - for row in reader: - # name,server,version,luaversion,maintainers - plugin = LuaPlugin(**row) - luaPackages.append(plugin) - return luaPackages - - def update(self, args): - update_plugins(self, args) - - def generate_nix( - self, - results: List[Tuple[LuaPlugin, str]], - outfilename: str - ): - - with tempfile.NamedTemporaryFile("w+") as f: - f.write(HEADER) - header2 = textwrap.dedent( - # header2 = inspect.cleandoc( - """ - { self, stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args: - final: prev: - { - """) - f.write(header2) - for (plugin, nix_expr) in results: - f.write(f"{plugin.normalized_name} = {nix_expr}") - f.write(FOOTER) - f.flush() - - # if everything went fine, move the generated file to its destination - # using copy since move doesn't work across disks - shutil.copy(f.name, outfilename) - - print(f"updated {outfilename}") - - @property - def attr_path(self): - return "luaPackages" - - def get_update(self, input_file: str, outfile: str, config: FetchConfig): - _prefetch = generate_pkg_nix - - def update() -> dict: - plugin_specs = self.load_plugin_spec(input_file) - sorted_plugin_specs = sorted(plugin_specs, key=lambda v: v.name.lower()) - - try: - pool = Pool(processes=config.proc) - results = pool.map(_prefetch, sorted_plugin_specs) - finally: - pass - - self.generate_nix(results, outfile) - - redirects = {} - return redirects - - return update - - def rewrite_input(self, input_file: str, *args, **kwargs): - # vim plugin reads the file before update but that shouldn't be our case - # not implemented yet - # fieldnames = ['name', 'server', 'version', 'luaversion', 'maintainers'] - # input_file = "toto.csv" - # with open(input_file, newline='') as csvfile: - # writer = csv.DictWriter(csvfile, fieldnames=fieldnames) - # writer.writeheader() - # for row in reader: - # # name,server,version,luaversion,maintainers - # plugin = LuaPlugin(**row) - # luaPackages.append(plugin) - pass - -def generate_pkg_nix(plug: LuaPlugin): - ''' - Generate nix expression for a luarocks package - Our cache key associates "p.name-p.version" to its rockspec - ''' - log.debug("Generating nix expression for %s", plug.name) - custom_env = os.environ.copy() - custom_env['LUAROCKS_CONFIG'] = LUAROCKS_CONFIG - - # we add --dev else luarocks wont find all the "scm" (=dev) versions of the - # packages - # , "--dev" - cmd = [ "luarocks", "nix" ] - - if plug.maintainers: - cmd.append(f"--maintainers={plug.maintainers}") - - # if plug.server == "src": - if plug.src != "": - if plug.src is None: - msg = "src must be set when 'version' is set to \"src\" for package %s" % plug.name - log.error(msg) - raise RuntimeError(msg) - log.debug("Updating from source %s", plug.src) - cmd.append(plug.src) - # update the plugin from luarocks - else: - cmd.append(plug.name) - if plug.version and plug.version != "src": - - cmd.append(plug.version) - - if plug.server != "src" and plug.server: - cmd.append(f"--only-server={plug.server}") - - if plug.luaversion: - cmd.append(f"--lua-version={plug.luaversion}") - - log.debug("running %s", ' '.join(cmd)) - - output = subprocess.check_output(cmd, env=custom_env, text=True) - output = "callPackage(" + output.strip() + ") {};\n\n" - return (plug, output) - -def main(): - - editor = LuaEditor("lua", ROOT, '', - default_in = ROOT.joinpath(PKG_LIST), - default_out = ROOT.joinpath(GENERATED_NIXFILE) - ) - - editor.run() - -if __name__ == "__main__": - - main() - -# vim: set ft=python noet fdm=manual fenc=utf-8 ff=unix sts=0 sw=4 ts=4 : diff --git a/maintainers/scripts/update-luarocks-shell.nix b/maintainers/scripts/update-luarocks-shell.nix deleted file mode 100644 index 346b0319b08c9..0000000000000 --- a/maintainers/scripts/update-luarocks-shell.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ nixpkgs ? import ../.. { } -}: -with nixpkgs; -let - pyEnv = python3.withPackages(ps: [ ps.gitpython ]); -in -mkShell { - packages = [ - pyEnv - luarocks-nix - nix-prefetch-scripts - ]; -} diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index cba6f0d436423..db66b8fe86893 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -287,7 +287,7 @@ with lib.maintainers; { }; flutter = { - members = [ gilice mkg20001 RossComputerGuy FlafyDev hacker1024 ]; + members = [ mkg20001 RossComputerGuy FlafyDev hacker1024 ]; scope = "Maintain Flutter and Dart-related packages and build tools"; shortName = "flutter"; enableFeatureFreezePing = false; @@ -324,12 +324,16 @@ with lib.maintainers; { geospatial = { members = [ imincik - sikmir nh2 + sikmir willcohen ]; + githubTeams = [ + "geospatial" + ]; scope = "Maintain geospatial packages."; shortName = "Geospatial"; + enableFeatureFreezePing = true; }; gitlab = { @@ -350,6 +354,7 @@ with lib.maintainers; { mic92 zowoq qbit + mfrw ]; githubTeams = [ "golang" @@ -393,6 +398,7 @@ with lib.maintainers; { cdepillabout expipiplus1 maralorn + ncfavier sternenseemann ]; githubTeams = [ @@ -406,7 +412,6 @@ with lib.maintainers; { home-assistant = { members = [ fab - globin hexa mic92 ]; @@ -430,6 +435,7 @@ with lib.maintainers; { members = [ cleeyv ryantm + lassulus ]; scope = "Maintain Jitsi."; shortName = "Jitsi"; @@ -439,6 +445,7 @@ with lib.maintainers; { members = [ GaetanLepage natsukium + thomasjm ]; scope = "Maintain Jupyter and related packages."; shortName = "Jupyter"; @@ -611,6 +618,7 @@ with lib.maintainers; { minimal-bootstrap = { members = [ + alejandrosame artturin emilytrau ericson2314 @@ -649,15 +657,13 @@ with lib.maintainers; { enableFeatureFreezePing = true; }; - nixos-modules = { + module-system = { members = [ - ericson2314 infinisil - qyliss roberth ]; - scope = "Maintain nixpkgs module system internals."; - shortName = "NixOS Modules / internals"; + scope = "Maintain the Nixpkgs module system."; + shortName = "Module system"; enableFeatureFreezePing = true; }; @@ -684,6 +690,18 @@ with lib.maintainers; { shortName = "Numtide team"; }; + ocaml = { + members = [ + alizter + ]; + githubTeams = [ + "ocaml" + ]; + scope = "Maintain the OCaml compiler and package set."; + shortName = "OCaml"; + enableFeatureFreezePing = true; + }; + openstack = { members = [ SuperSandro2000 @@ -730,7 +748,6 @@ with lib.maintainers; { aanderse drupol etu - globin ma27 talyz ]; @@ -900,7 +917,6 @@ with lib.maintainers; { tts = { members = [ - hexa mic92 ]; scope = "coqui-ai TTS (formerly Mozilla TTS) and leaf packages"; @@ -921,7 +937,6 @@ with lib.maintainers; { wdz = { members = [ n0emis - netali vidister johannwagner yuka |