diff --git a/.gitignore b/.gitignore index 1411ef7e1c7c..3bd5fe66df49 100644 --- a/.gitignore +++ b/.gitignore @@ -5,13 +5,13 @@ .idea/ .vscode/ outputs/ -result result-* -source/ /doc/NEWS.html /doc/NEWS.txt /doc/manual.html /doc/manual.pdf +/result +/source/ .version-suffix .DS_Store diff --git a/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua b/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua index 92dc6895750f..1c745393a04b 100644 --- a/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua +++ b/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua @@ -27,6 +27,10 @@ function Code(elem) content = '' .. title .. '' .. (volnum ~= nil and ('' .. volnum .. '') or '') elseif elem.attributes['role'] == 'file' then tag = 'filename' + elseif elem.attributes['role'] == 'command' then + tag = 'command' + elseif elem.attributes['role'] == 'option' then + tag = 'option' end if tag ~= nil then diff --git a/doc/builders/images/dockertools.section.md b/doc/builders/images/dockertools.section.md index 458b0b36720f..d7f8741437cc 100644 --- a/doc/builders/images/dockertools.section.md +++ b/doc/builders/images/dockertools.section.md @@ -302,7 +302,7 @@ buildImage { runAsRoot = '' #!${pkgs.runtimeShell} - ${shadowSetup} + ${pkgs.dockerTools.shadowSetup} groupadd -r redis useradd -r -g redis redis mkdir /data diff --git a/doc/contributing/contributing-to-documentation.chapter.md b/doc/contributing/contributing-to-documentation.chapter.md index 1384772ebb2b..db16f13b474b 100644 --- a/doc/contributing/contributing-to-documentation.chapter.md +++ b/doc/contributing/contributing-to-documentation.chapter.md @@ -27,7 +27,7 @@ If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual. As per [RFC 0072](https://github.com/NixOS/rfcs/pull/72), all new documentation content should be written in [CommonMark](https://commonmark.org/) Markdown dialect. -Additionally, the following syntax extensions are currently used: +Additional syntax extensions are available, though not all extensions can be used in NixOS option documentation. The following extensions are currently used: - []{#ssec-contributing-markup-anchors} Explicitly defined **anchors** on headings, to allow linking to sections. These should be always used, to ensure the anchors can be linked even when the heading text changes, and to prevent conflicts between [automatically assigned identifiers](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/auto_identifiers.md). @@ -53,12 +53,22 @@ Additionally, the following syntax extensions are currently used: This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing). - []{#ssec-contributing-markup-inline-roles} - If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. + If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`. - The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`. + A few markups for other kinds of literals are also available: + + - `` {command}`rm -rfi` `` turns into {command}`rm -rfi` + - `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP` + - `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd` + + These literal kinds are used mostly in NixOS option documentation. This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#roles-an-in-line-extension-point). Though, the feature originates from [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-manpage) with slightly different syntax. + ::: {.note} + Inline roles are available for option documentation. + ::: + - []{#ssec-contributing-markup-admonitions} **Admonitions**, set off from the text to bring attention to something. @@ -84,6 +94,10 @@ Additionally, the following syntax extensions are currently used: - [`tip`](https://tdg.docbook.org/tdg/5.0/tip.html) - [`warning`](https://tdg.docbook.org/tdg/5.0/warning.html) + ::: {.note} + Admonitions are available for option documentation. + ::: + - []{#ssec-contributing-markup-definition-lists} [**Definition lists**](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/definition_lists.md), for defining a group of terms: diff --git a/doc/contributing/reviewing-contributions.chapter.md b/doc/contributing/reviewing-contributions.chapter.md index 3417854730ef..4452695a6f38 100644 --- a/doc/contributing/reviewing-contributions.chapter.md +++ b/doc/contributing/reviewing-contributions.chapter.md @@ -185,6 +185,111 @@ Sample template for a new module review is provided below. ##### Comments ``` +## Individual maintainer list {#reviewing-contributions-indvidual-maintainer-list} + +When adding users to `maintainers/maintainer-list.nix`, the following +checks should be performed: + +- If the user has specified a GPG key, verify that the commit is + signed by their key. + + First, validate that the commit adding the maintainer is signed by + the key the maintainer listed. Check out the pull request and + compare its signing key with the listed key in the commit. + + If the commit is not signed or it is signed by a different user, ask + them to either recommit using that key or to remove their key + information. + + Given a maintainter entry like this: + + ``` nix + { + example = { + email = "user@example.com"; + name = "Example User"; + keys = [{ + fingerprint = "0000 0000 2A70 6423 0AED 3C11 F04F 7A19 AAA6 3AFE"; + }]; + } + }; + ``` + + First receive their key from a keyserver: + + $ gpg --recv-keys 0xF04F7A19AAA63AFE + gpg: key 0xF04F7A19AAA63AFE: public key "Example " imported + gpg: Total number processed: 1 + gpg: imported: 1 + + Then check the commit is signed by that key: + + $ git log --show-signature + commit b87862a4f7d32319b1de428adb6cdbdd3a960153 + gpg: Signature made Wed Mar 12 13:32:24 2003 +0000 + gpg: using RSA key 000000002A7064230AED3C11F04F7A19AAA63AFE + gpg: Good signature from "Example User + Author: Example User + Date: Wed Mar 12 13:32:24 2003 +0000 + + maintainers: adding example + + and validate that there is a `Good signature` and the printed key + matches the user's submitted key. + + Note: GitHub's "Verified" label does not display the user's full key + fingerprint, and should not be used for validating the key matches. + +- If the user has specified a `github` account name, ensure they have + also specified a `githubId` and verify the two match. + + Maintainer entries that include a `github` field must also include + their `githubId`. People can and do change their GitHub name + frequently, and the ID is used as the official and stable identity + of the maintainer. + + Given a maintainer entry like this: + + ``` nix + { + example = { + email = "user@example.com"; + name = "Example User"; + github = "ghost"; + githubId = 10137; + } + }; + ``` + + First, make sure that the listed GitHub handle matches the author of + the commit. + + Then, visit the URL `https://api.github.com/users/ghost` and + validate that the `id` field matches the provided `githubId`. + +## Maintainer teams {#reviewing-contributions-maintainer-teams} + +Feel free to create a new maintainer team in `maintainers/team-list.nix` +when a group is collectively responsible for a collection of packages. +Use taste and personal judgement when deciding if a team is warranted. + +Teams are allowed to define their own rules about membership. + +For example, some teams will represent a business or other group which +wants to carefully track its members. Other teams may be very open about +who can join, and allow anybody to participate. + +When reviewing changes to a team, read the team's scope and the context +around the member list for indications about the team's membership +policy. + +In any case, request reviews from the existing team members. If the team +lists no specific membership policy, feel free to merge changes to the +team after giving the existing members a few days to respond. + +*Important:* If a team says it is a closed group, do not merge additions +to the team without an approval by at least one existing member. + ## Other submissions {#reviewing-contributions-other-submissions} Other type of submissions requires different reviewing steps. diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix index 7c00195ab390..429c7a5fbe80 100644 --- a/doc/doc-support/default.nix +++ b/doc/doc-support/default.nix @@ -1,5 +1,8 @@ { pkgs ? (import ../.. {}), nixpkgs ? { }}: let + inherit (pkgs) lib; + inherit (lib) hasPrefix removePrefix; + locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; }; functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; }; version = pkgs.lib.version; @@ -29,6 +32,18 @@ let optionsDoc = pkgs.nixosOptionsDoc { inherit (pkgs.lib.evalModules { modules = [ ../../pkgs/top-level/config.nix ]; }) options; documentType = "none"; + transformOptions = opt: + opt // { + declarations = + map + (decl: + if hasPrefix (toString ../..) (toString decl) + then + let subpath = removePrefix "/" (removePrefix (toString ../..) (toString decl)); + in { url = "https://github.com/NixOS/nixpkgs/blob/master/${subpath}"; name = subpath; } + else decl) + opt.declarations; + }; }; in pkgs.runCommand "doc-support" {} diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index f7af28a16775..408446674e90 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -72,7 +72,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions: * `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well. -* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. A script to fetch these is available as `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs. +* `nugetDeps` takes either a path to a `deps.nix` file, or a derivation. The `deps.nix` file can be generated using the script attached to `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs. If the argument is a derivation, it will be used directly and assume it has the same output as `mkNugetDeps`. * `packNupkg` is used to pack project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`. * `projectReferences` can be used to resolve `ProjectReference` project items. Referenced projects can be packed with `buildDotnetModule` by setting the `packNupkg = true` attribute and passing a list of derivations to `projectReferences`. Since we are sharing referenced projects as NuGets they must be added to csproj/fsproj files as `PackageReference` as well. For example, your project has a local dependency: diff --git a/lib/default.nix b/lib/default.nix index a0d3339ef08e..e2a93e63ac1f 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -131,7 +131,9 @@ let getValues getFiles optionAttrSetToDocList optionAttrSetToDocList' scrubOptionValue literalExpression literalExample literalDocBook - showOption showFiles unknownModule mkOption mkPackageOption; + showOption showOptionWithDefLocs showFiles + unknownModule mkOption mkPackageOption + mdDoc literalMD; inherit (self.types) isType setType defaultTypeMerge defaultFunctor isOptionType mkOptionType; inherit (self.asserts) diff --git a/lib/options.nix b/lib/options.nix index 8d82a809083b..afae1769afdd 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -7,6 +7,7 @@ let collect concatLists concatMap + concatMapStringsSep elemAt filter foldl' @@ -280,6 +281,21 @@ rec { if ! isString text then throw "literalDocBook expects a string." else { _type = "literalDocBook"; inherit text; }; + /* Transition marker for documentation that's already migrated to markdown + syntax. + */ + mdDoc = text: + if ! isString text then throw "mdDoc expects a string." + else { _type = "mdDoc"; inherit text; }; + + /* For use in the `defaultText` and `example` option attributes. Causes the + given MD text to be inserted verbatim in the documentation, for when + a `literalExpression` would be too hard to read. + */ + literalMD = text: + if ! isString text then throw "literalMD expects a string." + else { _type = "literalMD"; inherit text; }; + # Helper functions. /* Convert an option, described as a list of the option parts in to a @@ -325,6 +341,11 @@ rec { in "\n- In `${def.file}'${result}" ) defs; + showOptionWithDefLocs = opt: '' + ${showOption opt.loc}, with values defined in: + ${concatMapStringsSep "\n" (defFile: " - ${defFile}") opt.files} + ''; + unknownModule = ""; } diff --git a/lib/tests/maintainer-module.nix b/lib/tests/maintainer-module.nix new file mode 100644 index 000000000000..8cf8411b476a --- /dev/null +++ b/lib/tests/maintainer-module.nix @@ -0,0 +1,31 @@ +{ lib, ... }: +let + inherit (lib) types; +in { + options = { + name = lib.mkOption { + type = types.str; + }; + email = lib.mkOption { + type = types.str; + }; + matrix = lib.mkOption { + type = types.nullOr types.str; + default = null; + }; + github = lib.mkOption { + type = types.nullOr types.str; + default = null; + }; + githubId = lib.mkOption { + type = types.nullOr types.ints.unsigned; + default = null; + }; + keys = lib.mkOption { + type = types.listOf (types.submodule { + options.fingerprint = lib.mkOption { type = types.str; }; + }); + default = []; + }; + }; +} diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix index 3cbfba569481..935d256d218d 100644 --- a/lib/tests/maintainers.nix +++ b/lib/tests/maintainers.nix @@ -1,50 +1,19 @@ # to run these tests (and the others) # nix-build nixpkgs/lib/tests/release.nix { # The pkgs used for dependencies for the testing itself - pkgs -, lib + pkgs ? import ../.. {} +, lib ? pkgs.lib }: let inherit (lib) types; - - maintainerModule = { config, ... }: { - options = { - name = lib.mkOption { - type = types.str; - }; - email = lib.mkOption { - type = types.str; - }; - matrix = lib.mkOption { - type = types.nullOr types.str; - default = null; - }; - github = lib.mkOption { - type = types.nullOr types.str; - default = null; - }; - githubId = lib.mkOption { - type = types.nullOr types.ints.unsigned; - default = null; - }; - keys = lib.mkOption { - type = types.listOf (types.submodule { - options.longkeyid = lib.mkOption { type = types.str; }; - options.fingerprint = lib.mkOption { type = types.str; }; - }); - default = []; - }; - }; - }; - checkMaintainer = handle: uncheckedAttrs: let prefix = [ "lib" "maintainers" handle ]; checkedAttrs = (lib.modules.evalModules { inherit prefix; modules = [ - maintainerModule + ./maintainer-module.nix { _file = toString ../../maintainers/maintainer-list.nix; config = uncheckedAttrs; diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 815841e0a8f3..b93a4236f91e 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -11,6 +11,10 @@ pkgs.runCommand "nixpkgs-lib-tests" { inherit pkgs; lib = import ../.; }) + (import ./teams.nix { + inherit pkgs; + lib = import ../.; + }) ]; } '' datadir="${pkgs.nix}/share" diff --git a/lib/tests/teams.nix b/lib/tests/teams.nix new file mode 100644 index 000000000000..8a0a5d272634 --- /dev/null +++ b/lib/tests/teams.nix @@ -0,0 +1,50 @@ +# to run these tests: +# nix-build nixpkgs/lib/tests/teams.nix +# If it builds, all tests passed +{ pkgs ? import ../.. {}, lib ? pkgs.lib }: + +let + inherit (lib) types; + + teamModule = { config, ... }: { + options = { + shortName = lib.mkOption { + type = types.str; + }; + scope = lib.mkOption { + type = types.str; + }; + enableFeatureFreezePing = lib.mkOption { + type = types.bool; + default = false; + }; + members = lib.mkOption { + type = types.listOf (types.submodule + (import ./maintainer-module.nix { inherit lib; }) + ); + default = []; + }; + githubTeams = lib.mkOption { + type = types.listOf types.str; + default = []; + }; + }; + }; + + checkTeam = team: uncheckedAttrs: + let + prefix = [ "lib" "maintainer-team" team ]; + checkedAttrs = (lib.modules.evalModules { + inherit prefix; + modules = [ + teamModule + { + _file = toString ../../maintainers/team-list.nix; + config = uncheckedAttrs; + } + ]; + }).config; + in checkedAttrs; + + checkedTeams = lib.mapAttrs checkTeam lib.teams; +in pkgs.writeTextDir "maintainer-teams.json" (builtins.toJSON checkedTeams) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index ac8b3965dbaa..88ad688b9def 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10,7 +10,6 @@ github = "GithubUsername"; githubId = your-github-id; keys = [{ - longkeyid = "rsa2048/0x0123456789ABCDEF"; fingerprint = "AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333"; }]; }; @@ -24,7 +23,7 @@ - `matrix` is your Matrix user ID, - `github` is your GitHub handle (as it appears in the URL of your profile page, `https://github.com/`), - `githubId` is your GitHub user ID, which can be found at `https://api.github.com/users/`, - - `keys` is a list of your PGP/GPG key IDs and fingerprints. + - `keys` is a list of your PGP/GPG key fingerprints. `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient. @@ -39,14 +38,18 @@ To get the required PGP/GPG values for a key run ```shell - gpg --keyid-format 0xlong --fingerprint | head -n 2 + gpg --fingerprint | 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, however, in order to comply with GDPR this file should stay as minimal as possible. - Please keep the list alphabetically sorted. + When editing this file: + * keep the list alphabetically sorted + * test the validity of the format with: + nix-build lib/tests/maintainers.nix + See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data. */ { @@ -63,7 +66,6 @@ github = "0x4A6F"; githubId = 9675338; keys = [{ - longkeyid = "rsa8192/0x87027528B006D66D"; fingerprint = "F466 A548 AD3F C1F1 8C88 4576 8702 7528 B006 D66D"; }]; }; @@ -73,10 +75,16 @@ github = "0xbe7a"; githubId = 6232980; keys = [{ - longkeyid = "rsa4096/0x6510870A77F49A99"; fingerprint = "2536 9E86 1AA5 9EB7 4C47 B138 6510 870A 77F4 9A99"; }]; }; + _0xC45 = { + email = "jason@0xc45.com"; + name = "Jason Vigil"; + github = "0xC45"; + githubId = 56617252; + matrix = "@oxc45:matrix.org"; + }; _1000101 = { email = "b1000101@pm.me"; github = "1000101"; @@ -182,7 +190,6 @@ githubId = 2255192; name = "Ashish SHUKLA"; keys = [{ - longkeyid = "rsa4096/0xC746CFA9E74FA4B0"; fingerprint = "F682 CDCC 39DC 0FEA E116 20B6 C746 CFA9 E74F A4B0"; }]; }; @@ -524,7 +531,6 @@ github = "alexshpilkin"; githubId = 1010468; keys = [{ - longkeyid = "rsa4096/0x73E9AA114B3A894B"; fingerprint = "B595 D74D 6615 C010 469F 5A13 73E9 AA11 4B3A 894B"; }]; matrix = "@alexshpilkin:matrix.org"; @@ -588,7 +594,6 @@ github = "AluisioASG"; githubId = 1904165; keys = [{ - longkeyid = "rsa4096/0x9FAA63E097506D9D"; fingerprint = "7FDB 17B3 C29B 5BA6 E5A9 8BB2 9FAA 63E0 9750 6D9D"; }]; }; @@ -598,6 +603,12 @@ githubId = 60479013; name = "Alma Cemerlic"; }; + alternateved = { + email = "alternateved@pm.me"; + github = "alternateved"; + githubId = 45176912; + name = "Tomasz Hołubowicz"; + }; alunduil = { email = "alunduil@gmail.com"; github = "alunduil"; @@ -610,7 +621,6 @@ githubId = 42881386; name = "Alva"; keys = [{ - longkeyid = "ed25519/0xF53E323342F7A6D3"; fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A"; }]; }; @@ -620,7 +630,6 @@ githubId = 74795488; name = "Alexandra Hollmeier"; keys = [{ - longkeyid = "rsa3072/0x87D1AADCD25B8DEE"; fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE"; }]; }; @@ -660,7 +669,6 @@ github = "matilde-ametrine"; githubId = 90799677; keys = [{ - longkeyid = "rsa3072/0x07EE1FFCA58A11C5"; fingerprint = "7931 EB4E 4712 D7BE 04F8 6D34 07EE 1FFC A58A 11C5"; }]; }; @@ -688,7 +696,6 @@ github = "notbandali"; githubId = 1254858; keys = [{ - longkeyid = "rsa4096/0xA21A020248816103"; fingerprint = "BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103"; }]; }; @@ -824,7 +831,6 @@ github = "anhdle14"; githubId = 9645992; keys = [{ - longkeyid = "rsa4096/0x0299AFF9ECBB5169"; fingerprint = "AA4B 8EC3 F971 D350 482E 4E20 0299 AFF9 ECBB 5169"; }]; }; @@ -840,7 +846,6 @@ github = "Anillc"; githubId = 23411248; keys = [{ - longkeyid = "ed25519/0x0BE8A88F47B2145C"; fingerprint = "6141 1E4F FE10 CE7B 2E14 CD76 0BE8 A88F 47B2 145C"; }]; }; @@ -929,7 +934,6 @@ githubId = 17154507; name = "Lein Matsumaru"; keys = [{ - longkeyid = "rsa4096/0xAAA50652F0479205"; fingerprint = "BF8B F725 DA30 E53E 7F11 4ED8 AAA5 0652 F047 9205"; }]; }; @@ -1047,7 +1051,6 @@ githubId = 1226638; name = "Artemis Tosini"; keys = [{ - longkeyid = "rsa4096/0x4FDC96F161E7BA8A"; fingerprint = "3D2B B230 F9FA F0C5 1832 46DD 4FDC 96F1 61E7 BA8A"; }]; }; @@ -1142,7 +1145,6 @@ githubId = 192147; name = "aszlig"; keys = [{ - longkeyid = "ed25519/0x684089CE67EBB691"; fingerprint = "DD52 6BC7 767D BA28 16C0 95E5 6840 89CE 67EB B691"; }]; }; @@ -1188,6 +1190,12 @@ github = "attila-lendvai"; githubId = 840345; }; + auchter = { + name = "Michael Auchter"; + email = "a@phire.org"; + github = "auchter"; + githubId = 1190483; + }; auntie = { email = "auntieNeo@gmail.com"; github = "auntieNeo"; @@ -1236,7 +1244,6 @@ githubId = 5110816; name = "avitex"; keys = [{ - longkeyid = "rsa4096/0x8B366C443CABE942"; fingerprint = "271E 136C 178E 06FA EA4E B854 8B36 6C44 3CAB E942"; }]; }; @@ -1278,7 +1285,6 @@ github = "azahi"; githubId = 22211000; keys = [{ - longkeyid = "rsa4096/0xC8C6BDDB3847F72B"; fingerprint = "2688 0377 C31D 9E81 9BDF 83A8 C8C6 BDDB 3847 F72B"; }]; }; @@ -1300,7 +1306,6 @@ githubId = 448169; name = "Fabian Möller"; keys = [{ - longkeyid = "rsa4096/0x754B5C0963C42C5"; fingerprint = "6309 E212 29D4 DA30 AF24 BDED 754B 5C09 63C4 2C50"; }]; }; @@ -1310,7 +1315,6 @@ githubId = 12128029; name = "Bastien Rivière"; keys = [{ - longkeyid = "rsa4096/0xF202AD3B6EDF4BD1"; fingerprint = "2F85 B362 B274 0012 37E2 81EE F202 AD3B 6EDF 4BD1"; }]; }; @@ -1320,7 +1324,6 @@ github = "babbaj"; githubId = 12820770; keys = [{ - longkeyid = "rsa4096/0xF044309848A07CAC"; fingerprint = "6FBC A462 4EAF C69C A7C4 98C1 F044 3098 48A0 7CAC"; }]; }; @@ -1401,7 +1404,6 @@ githubId = 17708295; name = "Wanderson Ferreira"; keys = [{ - longkeyid = "rsa4096/0x56840A614DBE37AE"; fingerprint = "A3E1 C409 B705 50B3 BF41 492B 5684 0A61 4DBE 37AE"; }]; }; @@ -1515,7 +1517,6 @@ github = "bertof"; githubId = 9915675; keys = [{ - longkeyid = "rsa4096/0xFE98AE5EC52B1056"; fingerprint = "17C5 1EF9 C0FE 2EB2 FE56 BB53 FE98 AE5E C52B 1056"; }]; }; @@ -1731,7 +1732,6 @@ github = "booklearner"; githubId = 103979114; keys = [{ - longkeyid = "ed25519/0x0C61C4E5907F76C8"; fingerprint = "17C7 95D4 871C 2F87 83C8 053D 0C61 C4E5 907F 76C8"; }]; }; @@ -1753,7 +1753,6 @@ githubId = 71049646; name = "Zack A"; keys = [{ - longkeyid = "rsa4096/0x6310C97DE31D1545"; fingerprint = "E8D7 5C19 9F65 269B 439D F77B 6310 C97D E31D 1545"; }]; }; @@ -1823,7 +1822,6 @@ githubId = 12615679; name = "Oleksii Filonenko"; keys = [{ - longkeyid = "rsa3072/0xA1BC8428323ECFE8"; fingerprint = "F549 3B7F 9372 5578 FDD3 D0B8 A1BC 8428 323E CFE8"; }]; }; @@ -1863,7 +1861,6 @@ githubId = 4763746; name = "Billy Rhoades"; keys = [{ - longkeyid = "rsa4096/0x8AE74787A4B7C07E"; fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E"; }]; }; @@ -1962,11 +1959,9 @@ # compare with https://keybase.io/cab404 { fingerprint = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3"; - longkeyid = "rsa3072/0xCBDECF658C38079E"; } { fingerprint = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A"; - longkeyid = "ed25519/0xB7EFFC271D55DB8A"; } ]; }; @@ -2085,7 +2080,6 @@ githubId = 109908; name = "Carsten Burstedde"; keys = [{ - longkeyid = "rsa2048/0x0704CD9E550A6BCD"; fingerprint = "1127 A432 6524 BF02 737B 544E 0704 CD9E 550A 6BCD"; }]; }; @@ -2139,11 +2133,9 @@ 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"; } ]; @@ -2218,7 +2210,6 @@ github = "Chili-Man"; githubId = 631802; keys = [{ - longkeyid = "rsa4096/0xE0EBAD78F0190BD9"; fingerprint = "099E 3F97 FA08 3D47 8C75 EBEC E0EB AD78 F019 0BD9"; }]; }; @@ -2294,7 +2285,6 @@ githubId = 13007345; name = "Christian Harke"; keys = [{ - longkeyid = "rsa4096/0x830A9728630966F4"; fingerprint = "4EBB 30F1 E89A 541A A7F2 52BE 830A 9728 6309 66F4"; }]; }; @@ -2317,7 +2307,6 @@ github = "chuangzhu"; githubId = 31200881; keys = [{ - longkeyid = "rsa4096/E838CED81CFFD3F9"; fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9"; }]; }; @@ -2358,7 +2347,6 @@ githubId = 5567402; name = "Alex Zero"; keys = [{ - longkeyid = "rsa4096/0xA51550EDB450302C"; fingerprint = "A0AA 4646 B8F6 9D45 4553 5A88 A515 50ED B450 302C"; }]; }; @@ -2385,7 +2373,6 @@ github = "ckiee"; githubId = 25263210; keys = [{ - longkeyid = "rsa4096/0x13E79449C0525215"; fingerprint = "539F 0655 4D35 38A5 429A E253 13E7 9449 C052 5215"; }]; name = "ckie"; @@ -2440,7 +2427,6 @@ githubId = 23741; name = "Casey Marshall"; keys = [{ - longkeyid = "rsa3072/0x6DEC2758ACD5A973"; fingerprint = "6B78 7E5F B493 FA4F D009 5D10 6DEC 2758 ACD5 A973"; }]; }; @@ -2525,10 +2511,16 @@ github = "cole-h"; githubId = 28582702; keys = [{ - longkeyid = "rsa4096/0xB37E0F2371016A4C"; fingerprint = "68B8 0D57 B2E5 4AC3 EC1F 49B0 B37E 0F23 7101 6A4C"; }]; }; + colinsane = { + name = "Colin Sane"; + email = "colin@uninsane.org"; + matrix = "@colin:uninsane.org"; + github = "uninsane"; + githubId = 106709944; + }; collares = { email = "mauricio@collares.org"; github = "collares"; @@ -2592,11 +2584,9 @@ name = "Corban Raun"; keys = [ { - longkeyid = "rsa4096/0xA697A56F1F151189"; fingerprint = "6607 0B24 8CE5 64ED 22CE 0950 A697 A56F 1F15 1189"; } { - longkeyid = "ed25519/0x230F4AC153F90F29"; fingerprint = "D8CB 816A B678 A4E6 1EC7 5325 230F 4AC1 53F9 0F29"; } ]; @@ -2619,7 +2609,6 @@ githubId = 292650; name = "Daniel McCarney"; keys = [{ - longkeyid = "rsa2048/0x08FB2BFC470E75B4"; fingerprint = "8026 D24A A966 BF9C D3CD CB3C 08FB 2BFC 470E 75B4"; }]; }; @@ -2660,7 +2649,6 @@ githubId = 2440581; name = "Carl Richard Theodor Schneider"; keys = [{ - longkeyid = "rsa4096/0x45BCC1E2709B1788"; fingerprint = "2017 E152 BB81 5C16 955C E612 45BC C1E2 709B 1788"; }]; }; @@ -2700,7 +2688,6 @@ githubId = 389387; name = "Serg Nesterov"; keys = [{ - longkeyid = "rsa4096/0x1512F6EB84AECC8C"; fingerprint = "6E7D BA30 DB5D BA60 693C 3BE3 1512 F6EB 84AE CC8C"; }]; }; @@ -2723,11 +2710,9 @@ 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"; } ]; @@ -2745,7 +2730,6 @@ githubId = 43349662; name = "Dima"; keys = [{ - longkeyid = "rsa4096/BAB1D15FB7B4D4CE"; fingerprint = "1C4E F4FE 7F8E D8B7 1E88 CCDF BAB1 D15F B7B4 D4CE"; }]; }; @@ -2761,7 +2745,6 @@ github = "dadada"; githubId = 7216772; keys = [{ - longkeyid = "ed25519/0xEEB8D1CE62C4DFEA"; fingerprint = "D68C 8469 5C08 7E0F 733A 28D0 EEB8 D1CE 62C4 DFEA"; }]; }; @@ -2845,7 +2828,6 @@ github = "danth"; githubId = 28959268; keys = [{ - longkeyid = "rsa3072/0xD8AFC4BF05670F9D"; fingerprint = "4779 D1D5 3C97 2EAE 34A5 ED3D D8AF C4BF 0567 0F9D"; }]; }; @@ -2880,7 +2862,6 @@ github = "dasisdormax"; githubId = 3714905; keys = [{ - longkeyid = "rsa4096/0x02BA0D4480CA6C44"; fingerprint = "E59B A198 61B0 A9ED C1FA 3FB2 02BA 0D44 80CA 6C44"; }]; name = "Maximilian Wende"; @@ -2944,7 +2925,6 @@ githubId = 1295100; name = "David Wood"; keys = [{ - longkeyid = "rsa4096/0x01760B4F9F53F154"; fingerprint = "5B08 313C 6853 E5BF FA91 A817 0176 0B4F 9F53 F154"; }]; }; @@ -2972,7 +2952,6 @@ githubId = 7545665; name = "David Birks"; keys = [{ - longkeyid = "ed25519/0xBB999F83D9A19A36"; fingerprint = "B26F 9AD8 DA20 3392 EF87 C61A BB99 9F83 D9A1 9A36"; }]; }; @@ -3006,7 +2985,6 @@ github = "dearrude"; githubId = 30749142; keys = [{ - longkeyid = "rsa4096/19151E03BF2CF012"; fingerprint = "4E35 F2E5 2132 D654 E815 A672 DB2C BC24 2868 6000"; }]; }; @@ -3128,6 +3106,12 @@ githubId = 17111639; name = "Devin Singh"; }; + devusb = { + email = "mhelton@devusb.us"; + github = "devusb"; + githubId = 4951663; + name = "Morgan Helton"; + }; dezgeg = { email = "tuomas.tynkkynen@iki.fi"; github = "dezgeg"; @@ -3345,7 +3329,6 @@ githubId = 16120; name = "Misha Gusarov"; keys = [{ - longkeyid = "rsa4096/0x9D20F6503E338888"; fingerprint = "A8DF 1326 9E5D 9A38 E57C FAC2 9D20 F650 3E33 8888"; }]; }; @@ -3367,7 +3350,6 @@ githubId = 1965950; name = "Tobias Stenzel"; keys = [{ - longkeyid = "rsa2048/0x78C7DD40DF23FB16"; fingerprint = "4749 0887 CF3B 85A1 6355 C671 78C7 DD40 DF23 FB16"; }]; }; @@ -3411,7 +3393,6 @@ githubId = 92106371; name = "Dr Perceptron"; keys = [{ - longkeyid = "rsa4096/0x95EB6DFF26D1CEB0"; fingerprint = "7E38 89D9 B1A8 B381 C8DE A15F 95EB 6DFF 26D1 CEB0"; }]; }; @@ -3422,7 +3403,6 @@ github = "drupol"; githubId = 252042; keys = [{ - longkeyid = "ed25519/0x0AAF2901E8040715"; fingerprint = "85F3 72DF 4AF3 EF13 ED34 72A3 0AAF 2901 E804 0715"; }]; }; @@ -3444,7 +3424,6 @@ github = "dschrempf"; githubId = 5596239; keys = [{ - longkeyid = "rsa2048/0x875F2BCF163F1B29"; fingerprint = "62BC E2BD 49DF ECC7 35C7 E153 875F 2BCF 163F 1B29"; }]; }; @@ -3460,7 +3439,6 @@ githubId = 817330; name = "Will Dietz"; keys = [{ - longkeyid = "rsa4096/0xFD42C7D0D41494C8"; fingerprint = "389A 78CB CD88 5E0C 4701 DEB9 FD42 C7D0 D414 94C8"; }]; }; @@ -3476,7 +3454,6 @@ githubId = 1749762; name = "Mikhail Klementev"; keys = [{ - longkeyid = "rsa4096/0x1525585D1B43C62A"; fingerprint = "5DD7 C6F6 0630 F08E DAE7 4711 1525 585D 1B43 C62A"; }]; }; @@ -3554,7 +3531,6 @@ githubId = 20522234; name = "Daniel Ebbert"; keys = [{ - longkeyid = "rsa2048/0x47BC155927CBB9C7"; fingerprint = "E765 FCA3 D9BF 7FDB 856E AD73 47BC 1559 27CB B9C7"; }]; }; @@ -3872,7 +3848,6 @@ githubId = 2663216; name = "Alexandre Iooss"; keys = [{ - longkeyid = "rsa4096/0x6C79278F3FCDCC02"; fingerprint = "2D37 1AD2 7E2B BC77 97E1 B759 6C79 278F 3FCD CC02"; }]; }; @@ -3914,7 +3889,6 @@ githubId = 11532355; name = "Kerstin Humm"; keys = [{ - longkeyid = "rsa4096/0x40293358C7B9326B"; fingerprint = "F178 B4B4 6165 6D1B 7C15 B55D 4029 3358 C7B9 326B"; }]; }; @@ -3976,7 +3950,6 @@ githubId = 60861925; name = "Ethan Carter Edwards"; keys = [{ - longkeyid = "rsa4096/0xF93DDAFA26EF2458"; fingerprint = "0E69 0F46 3457 D812 3387 C978 F93D DAFA 26EF 2458"; }]; }; @@ -4006,7 +3979,6 @@ githubId = 461970; name = "Elis Hirwing"; keys = [{ - longkeyid = "rsa4096/0xD57EFA625C9A925F"; fingerprint = "67FE 98F2 8C44 CF22 1828 E12F D57E FA62 5C9A 925F"; }]; }; @@ -4023,7 +3995,6 @@ github = "evalexpr"; githubId = 23485511; keys = [{ - longkeyid = "rsa4096/0x2D1D402E17763DD6"; fingerprint = "8129 5B85 9C5A F703 C2F4 1E29 2D1D 402E 1776 3DD6"; }]; }; @@ -4095,7 +4066,6 @@ githubId = 857308; name = "Ellie Hermaszewska"; keys = [{ - longkeyid = "rsa4096/0xC8116E3A0C1CA76A"; fingerprint = "FC1D 3E4F CBCA 80DF E870 6397 C811 6E3A 0C1C A76A"; }]; }; @@ -4131,7 +4101,6 @@ github = "fabaff"; githubId = 116184; keys = [{ - longkeyid = "dsa1024/0xE23CD2DD36A4397F"; fingerprint = "2F6C 930F D3C4 7E38 6AFA 4EB4 E23C D2DD 36A4 397F"; }]; }; @@ -4147,7 +4116,6 @@ githubId = 368799; name = "Fabian Hauser"; keys = [{ - longkeyid = "rsa4096/0x8A52A140BEBF7D2C"; fingerprint = "50B7 11F4 3DFD 2018 DCE6 E8D0 8A52 A140 BEBF 7D2C"; }]; }; @@ -4233,11 +4201,9 @@ keys = [ { # historical - longkeyid = "ed25519/0x910ACB9F6BD26F58"; fingerprint = "6AB3 7A28 5420 9A41 82D9 0068 910A CB9F 6BD2 6F58"; } { - longkeyid = "ed25519/0x671E39E6744C807D"; fingerprint = "7E08 6842 0934 AA1D 6821 1F2A 671E 39E6 744C 807D"; } ]; @@ -4298,7 +4264,6 @@ githubId = 6499211; name = "Sebastian Neubauer"; keys = [{ - longkeyid = "rsa4096/0xECC755EE583C1672"; fingerprint = "2F93 661D AC17 EA98 A104 F780 ECC7 55EE 583C 1672"; }]; }; @@ -4406,7 +4371,6 @@ githubId = 114159; name = "Franz Pletz"; keys = [{ - longkeyid = "rsa4096/0x846FDED7792617B4"; fingerprint = "8A39 615D CE78 AF08 2E23 F303 846F DED7 7926 17B4"; }]; }; @@ -4563,7 +4527,6 @@ githubId = 1883533; name = "Florian Brandes"; keys = [{ - longkeyid = "rsa4096/0xBBB3E40E53797FD9"; fingerprint = "0200 3EF8 8D2B CF2D 8F00 FFDC BBB3 E40E 5379 7FD9"; }]; }; @@ -4639,7 +4602,6 @@ github = "genofire"; githubId = 6905586; keys = [{ - longkeyid = "rsa4096/0xFC83907C125BC2BC"; fingerprint = "386E D1BF 848A BB4A 6B4A 3C45 FC83 907C 125B C2BC"; }]; }; @@ -4655,7 +4617,6 @@ githubId = 19374; name = "George Shammas"; keys = [{ - longkeyid = "rsa4096/0x82BB70D541AE2DB4"; fingerprint = "D0CF 440A A703 E0F9 73CB A078 82BB 70D5 41AE 2DB4"; }]; }; @@ -4738,7 +4699,6 @@ github = "glittershark"; githubId = 1481027; keys = [{ - longkeyid = "rsa2048/0x44EF5B5E861C09A7"; fingerprint = "0F11 A989 879E 8BBB FDC1 E236 44EF 5B5E 861C 09A7"; }]; }; @@ -4790,7 +4750,6 @@ github = "gordiasdot"; githubId = 94724133; keys = [{ - longkeyid = "ed25519/0x5D47284830FAA4FA"; fingerprint = "C006 B8A0 0618 F3B6 E0E4 2ECD 5D47 2848 30FA A4FA"; }]; }; @@ -4800,7 +4759,6 @@ github = "govanify"; githubId = 6375438; keys = [{ - longkeyid = "rsa4096/0xDE62E1E2A6145556"; fingerprint = "5214 2D39 A7CE F8FA 872B CA7F DE62 E1E2 A614 5556"; }]; }; @@ -4810,7 +4768,6 @@ github = "gpanders"; githubId = 8965202; keys = [{ - longkeyid = "rsa2048/0x56E93C2FB6B08BDB"; fingerprint = "B9D5 0EDF E95E ECD0 C135 00A9 56E9 3C2F B6B0 8BDB"; }]; }; @@ -4850,7 +4807,6 @@ githubId = 4647221; name = "GRBurst"; keys = [{ - longkeyid = "rsa4096/0x797F623868CD00C2"; fingerprint = "7FC7 98AB 390E 1646 ED4D 8F1F 797F 6238 68CD 00C2"; }]; }; @@ -5005,10 +4961,15 @@ githubId = 4336207; name = "Rohit Goswami"; keys = [{ - longkeyid = "rsa4096/0x9CCCE36402CB49A6"; fingerprint = "74B1 F67D 8E43 A94A 7554 0768 9CCC E364 02CB 49A6"; }]; }; + happyalu = { + email = "alok@parlikar.com"; + github = "happyalu"; + githubId = 231523; + name = "Alok Parlikar"; + }; happysalada = { email = "raphael@megzari.com"; matrix = "@happysalada:matrix.org"; @@ -5028,7 +4989,6 @@ githubId = 1422583; name = "Martin Hardselius"; keys = [{ - longkeyid = "rsa4096/0x03A6E6F786936619"; fingerprint = "3F35 E4CA CBF4 2DE1 2E90 53E5 03A6 E6F7 8693 6619"; }]; }; @@ -5075,7 +5035,6 @@ github = "hdhog"; githubId = 386666; keys = [{ - longkeyid = "rsa496/952EACB76703BA63"; fingerprint = "A25F 6321 AAB4 4151 4085 9924 952E ACB7 6703 BA63"; }]; }; @@ -5199,7 +5158,6 @@ githubId = 4025991; name = "Valentin Boettcher"; keys = [{ - longkeyid = "rsa2048/0xC22D4DE4D7B32D19"; fingerprint = "45A9 9917 578C D629 9F5F B5B4 C22D 4DE4 D7B3 2D19"; }]; }; @@ -5215,7 +5173,6 @@ github = "hkjn"; githubId = 287215; keys = [{ - longkeyid = "rsa4096/0x03EFBF839A5FDC15"; fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15"; }]; }; @@ -5237,7 +5194,6 @@ githubId = 20039091; name = "Hugo Reeves"; keys = [{ - longkeyid = "rsa4096/0x49FA39F8A7F735F9"; fingerprint = "78C2 E81C 828A 420B 269A EBC1 49FA 39F8 A7F7 35F9"; }]; }; @@ -5344,7 +5300,6 @@ github = "hyshka"; githubId = 2090758; keys = [{ - longkeyid = "rsa2048/0xDB2D93D1BFAAA6EA"; fingerprint = "24F4 1925 28C4 8797 E539 F247 DB2D 93D1 BFAA A6EA"; }]; }; @@ -5372,7 +5327,6 @@ githubId = 18238046; name = "Iago Manoel Brito"; keys = [{ - longkeyid = "rsa4096/0x35D39F9A9A1BC8DA"; fingerprint = "DF90 9D58 BEE4 E73A 1B8C 5AF3 35D3 9F9A 9A1B C8DA"; }]; }; @@ -5407,7 +5361,6 @@ githubId = 1044950; name = "Pierre Penninckx"; keys = [{ - longkeyid = "rsa2048/0xD4C5C37E6031A3FE"; fingerprint = "A01F 10C6 7176 B2AE 2A34 1A56 D4C5 C37E 6031 A3FE"; }]; }; @@ -5565,7 +5518,6 @@ githubId = 20525370; name = "Silvan Mosberger"; keys = [{ - longkeyid = "rsa4096/0x422E9EDAE0157170"; fingerprint = "6C2B 55D4 4E04 8266 6B7D DA1A 422E 9EDA E015 7170"; }]; }; @@ -5582,7 +5534,6 @@ github = "IreneKnapp"; githubId = 157678; keys = [{ - longkeyid = "rsa4096/0xDBF252AFFB2619FD"; fingerprint = "E864 BDFA AB55 36FD C905 5195 DBF2 52AF FB26 19FD"; }]; }; @@ -5598,7 +5549,6 @@ github = "isgy"; githubId = 13622947; keys = [{ - longkeyid = "rsa4096/0xD3E1B013B4631293"; fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293"; }]; }; @@ -5637,7 +5587,6 @@ githubId = 1672874; name = "Ivan Brennan"; keys = [{ - longkeyid = "rsa4096/0x79C3C47DC652EA54"; fingerprint = "7311 2700 AB4F 4CDF C68C F6A5 79C3 C47D C652 EA54"; }]; }; @@ -5647,7 +5596,6 @@ githubId = 75213; name = "Ivan Kovnatsky"; keys = [{ - longkeyid = "rsa4096/0x3A33FA4C82ED674F"; fingerprint = "6BD3 7248 30BD 941E 9180 C1A3 3A33 FA4C 82ED 674F"; }]; }; @@ -5862,7 +5810,6 @@ githubId = 1235045; name = "Jichao Ouyang"; keys = [{ - longkeyid = "rsa2048/0xDA8B833B52604E63"; fingerprint = "A506 C38D 5CC8 47D0 DF01 134A DA8B 833B 5260 4E63"; }]; }; @@ -5889,7 +5836,6 @@ github = "jdanekrh"; githubId = 17877663; keys = [{ - longkeyid = "ed25519/0x69275CADF15D872E"; fingerprint = "D4A6 F051 AD58 2E7C BCED 5439 6927 5CAD F15D 872E"; }]; name = "Jiri Daněk"; @@ -5990,7 +5936,6 @@ githubId = 3001; name = "Jean-Francois Chevrette"; keys = [{ - longkeyid = "rsa4096/0x67A0585801290DC6"; fingerprint = "B612 96A9 498E EECD D5E9 C0F0 67A0 5858 0129 0DC6"; }]; }; @@ -6013,7 +5958,6 @@ github = "jfroche"; githubId = 207369; keys = [{ - longkeyid = "dsa1024/0xD1D09DE169EA19A0"; fingerprint = "7EB1 C02A B62B B464 6D7C E4AE D1D0 9DE1 69EA 19A0"; }]; }; @@ -6134,12 +6078,10 @@ keys = [ # GitHub signing key { - longkeyid = "rsa4096/0xDC7AE56AE98E02D7"; fingerprint = "EC08 7AA3 DEAD A972 F015 6371 DC7A E56A E98E 02D7"; } # Email encryption { - longkeyid = "ed25519/0x197F9A632D139E30"; fingerprint = "816D 23F5 E672 EC58 7674 4A73 197F 9A63 2D13 9E30"; } ]; @@ -6276,7 +6218,6 @@ github = "jojosch"; githubId = 327488; keys = [{ - longkeyid = "ed25519/059093B1A278BCD0"; fingerprint = "7249 70E6 A661 D84E 8B47 678A 0590 93B1 A278 BCD0"; }]; }; @@ -6286,7 +6227,6 @@ 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"; @@ -6420,13 +6360,19 @@ github = "jsierles"; githubId = 82; }; + jsimonetti = { + email = "jeroen+nixpkgs@simonetti.nl"; + matrix = "@jeroen:simonetti.nl"; + name = "Jeroen Simonetti"; + github = "jsimonetti"; + githubId = 5478838; + }; 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"; }]; }; @@ -6516,7 +6462,6 @@ githubId = 1529052; name = "Jan van Brügge"; keys = [{ - longkeyid = "rsa4096/0x366572BE7D6C78A2"; fingerprint = "3513 5CE5 77AD 711F 3825 9A99 3665 72BE 7D6C 78A2"; }]; }; @@ -6560,7 +6505,6 @@ githubId = 63786778; name = "Joel"; keys = [{ - longkeyid = "rsa4096/18550BD205E9EF64"; fingerprint = "9148 DC9E F4D5 3EB6 A30E 8EF0 1855 0BD2 05E9 EF64"; }]; }; @@ -6595,7 +6539,6 @@ github = "kaction"; githubId = 44864956; keys = [{ - longkeyid = "ed25519/0x749FD4DFA2E94236"; fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236"; }]; }; @@ -6624,7 +6567,6 @@ github = "kamadorueda"; githubId = 47480384; keys = [{ - longkeyid = "rsa4096/0x04D0CEAF916A9A40"; fingerprint = "2BE3 BAFD 793E A349 ED1F F00F 04D0 CEAF 916A 9A40"; }]; }; @@ -6692,7 +6634,6 @@ githubId = 2186188; name = "Kenny Ballou"; keys = [{ - longkeyid = "rsa4096/0xB0CAA28A02958308"; fingerprint = "932F 3E8E 1C0F 4A98 95D7 B8B8 B0CA A28A 0295 8308"; }]; }; @@ -6765,7 +6706,6 @@ githubId = 44947946; name = "Khushraj Rathod"; keys = [{ - longkeyid = "rsa2048/0xB77B2A40E7702F19"; fingerprint = "1988 3FD8 EA2E B4EC 0A93 1E22 B77B 2A40 E770 2F19"; }]; }; @@ -6854,7 +6794,6 @@ githubId = 67870215; name = "Kat Inskip"; keys = [{ - longkeyid = "rsa4096/0xE8DDE3ED1C90F3A0"; fingerprint = "9CC6 44B5 69CD A59B C874 C4C9 E8DD E3ED 1C90 F3A0"; }]; }; @@ -6864,7 +6803,6 @@ githubId = 35715; name = "Robert Djubek"; keys = [{ - longkeyid = "rsa4096/0x156C88A5B0A04B2A"; fingerprint = "8992 44FC D291 5CA2 0A97 802C 156C 88A5 B0A0 4B2A"; }]; }; @@ -6903,7 +6841,6 @@ github = "kloenk"; githubId = 12898828; keys = [{ - longkeyid = "ed25519/0xB92445CFC9546F9D"; fingerprint = "6881 5A95 D715 D429 659B 48A4 B924 45CF C954 6F9D"; }]; }; @@ -7106,7 +7043,6 @@ githubId = 1640900; name = "Kyle Ondy"; keys = [{ - longkeyid = "rsa4096/0xDB0E3C33491F91C9"; fingerprint = "3C79 9D26 057B 64E6 D907 B0AC DB0E 3C33 491F 91C9"; }]; }; @@ -7118,7 +7054,6 @@ githubId = 6677292; keys = [{ - longkeyid = "rsa4096/81A1540948162372"; fingerprint = "5A9A 1C9B 2369 8049 3B48 CF5B 81A1 5409 4816 2372"; }]; }; @@ -7128,7 +7063,6 @@ github = "L-as"; githubId = 22075344; keys = [{ - longkeyid = "rsa2048/0xAC458A7D1087D025"; fingerprint = "A093 EA17 F450 D4D1 60A0 1194 AC45 8A7D 1087 D025"; }]; name = "Las Safin"; @@ -7145,7 +7079,6 @@ github = "CertainLach"; githubId = 6235312; keys = [{ - longkeyid = "rsa3072/40B5D6948143175F"; fingerprint = "323C 95B5 DBF7 2D74 8570 C0B7 40B5 D694 8143 175F"; }]; name = "Yaroslav Bolyukin"; @@ -7298,7 +7231,6 @@ githubId = 30902201; name = "legendofmiracles"; keys = [{ - longkeyid = "rsa4096/0x19B082B3DEFE5451"; fingerprint = "CC50 F82C 985D 2679 0703 AF15 19B0 82B3 DEFE 5451"; }]; }; @@ -7309,7 +7241,6 @@ githubId = 17183803; name = "Aleix Boné"; keys = [{ - longkeyid = "rsa4096/0xFC035BB2BB28E15D"; fingerprint = "63D3 F436 EDE8 7E1F 1292 24AF FC03 5BB2 BB28 E15D"; }]; }; @@ -7374,7 +7305,6 @@ github = "LEXUGE"; githubId = 13804737; keys = [{ - longkeyid = "rsa4096/0xAE53B4C2E58EDD45"; fingerprint = "7FE2 113A A08B 695A C8B8 DDE6 AE53 B4C2 E58E DD45"; }]; }; @@ -7488,7 +7418,6 @@ githubId = 3964494; name = "Lev Livnev"; keys = [{ - longkeyid = "rsa2048/0x68FF81E6A7850F49"; fingerprint = "74F5 E5CC 19D3 B5CB 608F 6124 68FF 81E6 A785 0F49"; }]; }; @@ -7498,7 +7427,6 @@ github = "lourkeur"; githubId = 15657735; keys = [{ - longkeyid = "ed25519/0xDFE1D4A017337E2A"; fingerprint = "5B93 9CFA E8FC 4D8F E07A 3AEA DFE1 D4A0 1733 7E2A"; }]; }; @@ -7569,7 +7497,6 @@ githubId = 25434434; name = "Jan Schmitt"; keys = [{ - longkeyid = "dsa2048/0xA2BC3C6F14351991"; fingerprint = "1763 9903 2D7C 5B82 5D5A 0EAD A2BC 3C6F 1435 1991"; }]; }; @@ -7622,7 +7549,6 @@ githubId = 7243783; name = "Bernardo Meurer"; keys = [{ - longkeyid = "rsa4096/0xF4C0D53B8D14C246"; fingerprint = "F193 7596 57D5 6DA4 CCD4 786B F4C0 D53B 8D14 C246"; }]; }; @@ -7703,7 +7629,6 @@ github = "Luflosi"; githubId = 15217907; keys = [{ - longkeyid = "rsa4096/0x6F987CCF224D20B9"; fingerprint = "66D1 3048 2B5F 2069 81A6 6B83 6F98 7CCF 224D 20B9"; }]; }; @@ -7757,7 +7682,6 @@ githubId = 13547699; name = "Corin Hoad"; keys = [{ - longkeyid = "rsa2048/0x6A37DF9483188492"; fingerprint = "BA3A 5886 AE6D 526E 20B4 57D6 6A37 DF94 8318 8492"; }]; }; @@ -8016,7 +7940,6 @@ githubId = 2551444; name = "Marcial Gaißert"; keys = [{ - longkeyid = "rsa2048/0xB629036BE399EEE9"; fingerprint = "B573 5118 0375 A872 FBBF 7770 B629 036B E399 EEE9"; }]; }; @@ -8099,7 +8022,6 @@ githubId = 26559841; name = "Matthew Penner"; keys = [{ - longkeyid = "ed25519/0x31311906AD4CF6D6"; fingerprint = "5118 F1CC B7B0 6C17 4DD1 5267 3131 1906 AD4C F6D6"; }]; }; @@ -8121,7 +8043,6 @@ githubId = 19580458; name = "Max Niederman"; keys = [{ - longkeyid = "rsa3072/0x9AED881481D8444E"; fingerprint = "1DE4 424D BF77 1192 5DC4 CF5E 9AED 8814 81D8 444E"; }]; }; @@ -8245,7 +8166,6 @@ githubId = 13689192; name = "Nguyễn Gia Phong"; keys = [{ - longkeyid = "rsa3072/0x27148B2C06A2224B"; fingerprint = "E90E 11B8 0493 343B 6132 E394 2714 8B2C 06A2 224B"; }]; }; @@ -8279,7 +8199,6 @@ githubId = 1926905; name = "Matt Layher"; keys = [{ - longkeyid = "rsa2048/0x77BFE531397EDE94"; fingerprint = "D709 03C8 0BE9 ACDC 14F0 3BFB 77BF E531 397E DE94"; }]; }; @@ -8409,7 +8328,6 @@ 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"; }]; }; @@ -8462,7 +8380,6 @@ githubId = 7343721; name = "midchildan"; keys = [{ - longkeyid = "rsa4096/0x186A1EDAC5C63F83"; fingerprint = "FEF0 AE2D 5449 3482 5F06 40AA 186A 1EDA C5C6 3F83"; }]; }; @@ -8496,7 +8413,6 @@ githubId = 3490861; name = "Mark Vainomaa"; keys = [{ - longkeyid = "rsa4096/0xDA015B05B5A11B22"; fingerprint = "DB43 2895 CF68 F0CE D4B7 EF60 DA01 5B05 B5A1 1B22"; }]; }; @@ -8552,7 +8468,6 @@ githubId = 1200507; name = "Rémi Nicole"; keys = [{ - longkeyid = "rsa2048/0xFEA888C9F5D64F62"; fingerprint = "3196 83D3 9A1B 4DE1 3DC2 51FD FEA8 88C9 F5D6 4F62"; }]; }; @@ -8563,7 +8478,6 @@ github = "Minion3665"; githubId = 34243578; keys = [{ - longkeyid = "rsa4096/0x1AFD10256B3C714D"; fingerprint = "D520 AC8D 7C96 9212 5B2B BD3A 1AFD 1025 6B3C 714D"; }]; }; @@ -8592,7 +8506,6 @@ matrix = "@misterio:matrix.org"; name = "Gabriel Fontes"; keys = [{ - longkeyid = "rsa3072/0x245CAB70B4C225E9"; fingerprint = "7088 C742 1873 E0DB 97FF 17C2 245C AB70 B4C2 25E9"; }]; }; @@ -8632,7 +8545,6 @@ githubId = 7753506; name = "Michał Krzysztof Feiler"; keys = [{ - longkeyid = "rsa4096/0xE35C2D7C2C6AC724"; fingerprint = "1E36 9940 CC7E 01C4 CFE8 F20A E35C 2D7C 2C6A C724"; }]; }; @@ -8649,7 +8561,6 @@ githubId = 7735145; name = "Maciej Krüger"; keys = [{ - longkeyid = "rsa4096/0x0D948CE19CF49C5F"; fingerprint = "E90C BA34 55B3 6236 740C 038F 0D94 8CE1 9CF4 9C5F"; }]; }; @@ -8732,7 +8643,6 @@ github = "mohe2015"; githubId = 13287984; keys = [{ - longkeyid = "rsa4096/0x6794D45A488C2EDE"; fingerprint = "1248 D3E1 1D11 4A85 75C9 8934 6794 D45A 488C 2EDE"; }]; }; @@ -8760,7 +8670,6 @@ githubId = 100848; name = "André-Patrick Bubel"; keys = [{ - longkeyid = "rsa8192/0x118CE7C424B45728"; fingerprint = "4412 38AD CAD3 228D 876C 5455 118C E7C4 24B4 5728"; }]; }; @@ -8886,7 +8795,6 @@ name = "Harsh Shandilya"; email = "nixos@msfjarvis.dev"; keys = [{ - longkeyid = "rsa4096/0xB7843F823355E9B9"; fingerprint = "8F87 050B 0F9C B841 1515 7399 B784 3F82 3355 E9B9"; }]; }; @@ -8993,7 +8901,6 @@ github = "mvisonneau"; githubId = 1761583; keys = [{ - longkeyid = "rsa4096/0x150D6F0AE9198D24"; fingerprint = "EC63 0CEA E8BC 5EE5 5C58 F2E3 150D 6F0A E919 8D24"; }]; }; @@ -9052,7 +8959,6 @@ githubId = 35005234; name = "Nasir Hussain"; keys = [{ - longkeyid = "rsa4096/0xD8126E559CE7C35D"; fingerprint = "7A10 AB8E 0BEC 566B 090C 9BE3 D812 6E55 9CE7 C35D"; }]; }; @@ -9091,7 +8997,6 @@ github = "nazarewk"; githubId = 3494992; keys = [{ - longkeyid = "rsa4096/0x916D8B67241892AE"; fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE"; }]; }; @@ -9114,8 +9019,7 @@ githubId = 4323933; name = "Naïm Favier"; keys = [{ - longkeyid = "rsa2048/0x49B07322580B7EE2"; - fingerprint = "51A0 705E 7DD2 3CBC 5EAA B43E 49B0 7322 580B 7EE2"; + fingerprint = "F3EB 4BBB 4E71 99BC 299C D4E9 95AF CE82 1190 8325"; }]; }; nckx = { @@ -9254,7 +9158,6 @@ githubId = 77309427; name = "Nicolás Kennedy"; keys = [{ - longkeyid = "rsa4096/0xC061089EFEBF7A35"; fingerprint = "7BC1 77D9 C222 B1DC FB2F 0484 C061 089E FEBF 7A35"; }]; }; @@ -9300,7 +9203,6 @@ githubId = 23580910; name = "Jakub Kądziołka"; keys = [{ - longkeyid = "rsa4096/0xE315A75846131564"; fingerprint = "E576 BFB2 CF6E B13D F571 33B9 E315 A758 4613 1564"; }]; }; @@ -9341,7 +9243,6 @@ githubId = 354934; name = "Pontus Stenetorp"; keys = [{ - longkeyid = "rsa4096/0xD430287500E6483C"; fingerprint = "0966 2F9F 3FDA C22B C22E 4CE1 D430 2875 00E6 483C"; }]; }; @@ -9357,7 +9258,6 @@ github = "NKJe"; githubId = 1102306; keys = [{ - longkeyid = "nistp256/0xDE3BADFECD31A89D"; fingerprint = "B956 C6A4 22AF 86A0 8F77 A8CA DE3B ADFE CD31 A89D"; }]; }; @@ -9379,7 +9279,6 @@ githubId = 45737139; name = "nixbitcoindev"; keys = [{ - longkeyid = "rsa4096/0xDD11F9AD5308B3BA"; fingerprint = "577A 3452 7F3E 2A85 E80F E164 DD11 F9AD 5308 B3BA"; }]; }; @@ -9560,7 +9459,6 @@ name = "nzbr"; matrix = "@nzbr:nzbr.de"; keys = [{ - longkeyid = "rsa2048/0x6C78B50B97A42F8A"; fingerprint = "BF3A 3EE6 3144 2C5F C9FB 39A7 6C78 B50B 97A4 2F8A"; }]; }; @@ -9589,7 +9487,6 @@ githubId = 1260687; name = "Felix C. Stegerman"; keys = [{ - longkeyid = "rsa4096/0x2F9607F09B360F2D"; fingerprint = "D5E4 A51D F8D2 55B9 FAC6 A9BB 2F96 07F0 9B36 0F2D"; }]; }; @@ -9759,7 +9656,6 @@ githubId = 14816024; name = "oxalica"; keys = [{ - longkeyid = "ed25519/0x7571654CF88E31C2"; fingerprint = "F90F FD6D 585C 2BA1 F13D E8A9 7571 654C F88E 31C2"; }]; }; @@ -9769,7 +9665,6 @@ githubId = 391919; name = "Jan Malakhovski"; keys = [{ - longkeyid = "rsa2048/0x0E6CA66E5C557AA8"; fingerprint = "514B B966 B46E 3565 0508 86E8 0E6C A66E 5C55 7AA8"; }]; }; @@ -9779,7 +9674,6 @@ githubId = 8402811; name = "Alvar Penning"; keys = [{ - longkeyid = "rsa4096/0xF32A45637FA25E31"; fingerprint = "EB14 4E67 E57D 27E2 B5A4 CD8C F32A 4563 7FA2 5E31"; }]; }; @@ -9918,7 +9812,6 @@ githubId = 3395477; name = "Patryk Wychowaniec"; keys = [{ - longkeyid = "rsa4096/0xF62547D075E09767"; fingerprint = "196A BFEC 6A1D D1EC 7594 F8D1 F625 47D0 75E0 9767"; }]; }; @@ -10141,7 +10034,6 @@ githubId = 1576660; name = "Jelle Besseling"; keys = [{ - longkeyid = "rsa4096/0x9712452E8BE3372E"; fingerprint = "A3A3 65AE 16ED A7A0 C29C 88F1 9712 452E 8BE3 372E"; }]; }; @@ -10151,7 +10043,6 @@ githubId = 1719781; name = "Pablo Ovelleiro Corral"; keys = [{ - longkeyid = "rsa4096/0x823A6154426408D3"; fingerprint = "D03B 218C AE77 1F77 D7F9 20D9 823A 6154 4264 08D3"; }]; }; @@ -10189,7 +10080,6 @@ github = "plabadens"; githubId = 4303706; keys = [{ - longkeyid = "rsa2048/0xF55814E4D6874375"; fingerprint = "B00F E582 FD3F 0732 EA48 3937 F558 14E4 D687 4375"; }]; }; @@ -10229,7 +10119,6 @@ githubId = 898922; name = "Philipp Menke"; keys = [{ - longkeyid = "rsa4096/0xEB7F2D4CCBE23B69"; fingerprint = "ED54 5EFD 64B6 B5AA EC61 8C16 EB7F 2D4C CBE2 3B69"; }]; }; @@ -10281,7 +10170,6 @@ githubId = 46154511; name = "Kevin Mullins"; keys = [{ - longkeyid = "rsa4096/361820A45DB41E9A"; fingerprint = "2CD2 B030 BD22 32EF DF5A 008A 3618 20A4 5DB4 1E9A"; }]; }; @@ -10345,7 +10233,6 @@ githubId = 53291983; name = "Poscat Tarski"; keys = [{ - longkeyid = "rsa4096/2D2595A00D08ACE0"; fingerprint = "48AD DE10 F27B AFB4 7BB0 CCAF 2D25 95A0 0D08 ACE0"; }]; }; @@ -10373,7 +10260,6 @@ githubId = 9904569; name = "Pradyuman Vig"; keys = [{ - longkeyid = "rsa4096/4F74D5361C4CA31E"; fingerprint = "240B 57DE 4271 2480 7CE3 EAC8 4F74 D536 1C4C A31E"; }]; }; @@ -10403,11 +10289,11 @@ name = "Michael Weiss"; keys = [ { - longkeyid = "ed25519/0x130826A6C2A389FD"; # Git only + # Git only fingerprint = "86A7 4A55 07D0 58D1 322E 37FD 1308 26A6 C2A3 89FD"; } { - longkeyid = "rsa3072/0xBCA9943DD1DF4C04"; # Email, etc. + # Email, etc. fingerprint = "AF85 991C C950 49A2 4205 1933 BCA9 943D D1DF 4C04"; } ]; @@ -10448,7 +10334,6 @@ githubId = 42201; name = "Pavol Rusnak"; keys = [{ - longkeyid = "rsa4096/0x91F3B339B9A02A3D"; fingerprint = "86E6 792F C27B FD47 8860 C110 91F3 B339 B9A0 2A3D"; }]; }; @@ -10592,7 +10477,6 @@ githubId = 2768870; name = "Alyssa Ross"; keys = [{ - longkeyid = "rsa4096/736CCDF9EF51BD97"; fingerprint = "7573 56D7 79BB B888 773E 415E 736C CDF9 EF51 BD97"; }]; }; @@ -10723,7 +10607,6 @@ github = "rbreslow"; githubId = 1774125; keys = [{ - longkeyid = "ed25519/0xA0D32ACCA38B88ED"; fingerprint = "B5B7 BCA0 EE6F F31E 263A 69E3 A0D3 2ACC A38B 88ED"; }]; }; @@ -10754,7 +10637,6 @@ keys = [ # compare with https://keybase.io/reckenrode { - longkeyid = "ed25519/0xFBF19A982CCE0048"; fingerprint = "01D7 5486 3A6D 64EA AC77 0D26 FBF1 9A98 2CCE 0048"; } ]; @@ -10837,7 +10719,6 @@ github = "revol-xut"; githubId = 32239737; keys = [{ - longkeyid = "rsa4096/B966009D57E69CC6"; fingerprint = "91EB E870 1639 1323 642A 6803 B966 009D 57E6 9CC6"; }]; }; @@ -10965,11 +10846,9 @@ 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"; } ]; @@ -11024,7 +10903,6 @@ githubId = 2817565; name = "Michele Guerini Rocco"; keys = [{ - longkeyid = "ed25519/0xBFBAF4C975F76450"; fingerprint = "92B2 904F D293 C94D C4C9 3E6B BFBA F4C9 75F7 6450"; }]; }; @@ -11126,7 +11004,6 @@ githubId = 3621083; name = "Roosembert (Roosemberth) Palacios"; keys = [{ - longkeyid = "rsa2048/0xCAAAECE5C2242BB7"; fingerprint = "78D9 1871 D059 663B 6117 7532 CAAA ECE5 C224 2BB7"; }]; }; @@ -11136,7 +11013,6 @@ github = "rople380"; githubId = 55679162; keys = [{ - longkeyid = "rsa2048/0x8526B7574A536236"; fingerprint = "1401 1B63 393D 16C1 AA9C C521 8526 B757 4A53 6236"; }]; }; @@ -11297,7 +11173,6 @@ githubId = 798147; name = "Robert Helgesson"; keys = [{ - longkeyid = "rsa4096/0x3573356C25C424D4"; fingerprint = "36CA CF52 D098 CC0E 78FB 0CB1 3573 356C 25C4 24D4"; }]; }; @@ -11313,7 +11188,6 @@ githubId = 8082305; name = "Maxwell Beck"; keys = [{ - longkeyid = "rsa2048/0xBB3EFA303760A0DB"; fingerprint = "D260 79E3 C2BC 2E43 905B D057 BB3E FA30 3760 A0DB"; }]; }; @@ -11337,7 +11211,6 @@ github = "sagikazarmark"; githubId = 1226384; keys = [{ - longkeyid = "rsa4096/0xF251ADDC9D041C7E"; fingerprint = "E628 C811 6FB8 1657 F706 4EA4 F251 ADDC 9D04 1C7E"; }]; }; @@ -11371,7 +11244,6 @@ githubId = 1349989; name = "samlich"; keys = [{ - longkeyid = "rsa4096/B1568953B1939F1C"; fingerprint = "AE8C 0836 FDF6 3FFC 9580 C588 B156 8953 B193 9F1C"; }]; }; @@ -11406,7 +11278,6 @@ github = "Samyak2"; githubId = 34161949; keys = [{ - longkeyid = "rsa4096/0x365873F2F0C6153B"; fingerprint = "155C F413 0129 C058 9A5F 5524 3658 73F2 F0C6 153B"; }]; }; @@ -11522,7 +11393,6 @@ github = "Sciencentistguy"; githubId = 4983935; keys = [{ - longkeyid = "rsa2048/0x8E8FF66E2AE8D970"; fingerprint = "30BB FF3F AB0B BB3E 0435 F83C 8E8F F66E 2AE8 D970"; }]; }; @@ -11660,7 +11530,6 @@ githubId = 51969817; name = "Serval"; keys = [{ - longkeyid = "rsa4096/0x4A2AAAA382F8294C"; fingerprint = "A317 37B3 693C 921B 480C C629 4A2A AAA3 82F8 294C"; }]; }; @@ -11670,7 +11539,6 @@ github = "seylerius"; githubId = 1145981; keys = [{ - longkeyid = "rsa4096/0xDC26B921A9E9DBDE"; fingerprint = "7246 B6E1 ABB9 9A48 4395 FD11 DC26 B921 A9E9 DBDE"; }]; }; @@ -11727,7 +11595,6 @@ github = "shanesveller"; githubId = 831; keys = [{ - longkeyid = "rsa4096/0x9210C218023C15CD"; fingerprint = "F83C 407C ADC4 5A0F 1F2F 44E8 9210 C218 023C 15CD"; }]; name = "Shane Sveller"; @@ -11786,7 +11653,6 @@ github = "shiryel"; githubId = 35617139; keys = [{ - longkeyid = "ed25519/0xC4041EA6B32633DE"; fingerprint = "AB63 4CD9 3322 BD42 6231 F764 C404 1EA6 B326 33DE"; }]; }; @@ -11826,7 +11692,6 @@ github = "Shrimpram"; githubId = 67710369; keys = [{ - longkeyid = "rsa4096/0x163B16EE76ED24CE"; fingerprint = "EA88 EA07 26E9 6CBF 6365 3966 163B 16EE 76ED 24CE"; }]; }; @@ -11866,7 +11731,6 @@ githubId = 688044; name = "Nikolay Korotkiy"; keys = [{ - longkeyid = "rsa2048/0xD1DE6D7F693663A5"; fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5"; }]; }; @@ -11919,7 +11783,6 @@ githubId = 23038812; name = "Sirio Balmelli"; keys = [{ - longkeyid = "ed25519/0xF72C4A887F9A24CA"; fingerprint = "B234 EFD4 2B42 FE81 EE4D 7627 F72C 4A88 7F9A 24CA"; }]; }; @@ -11998,7 +11861,6 @@ githubId = 12733495; name = "Sergey Makarov"; keys = [{ - longkeyid = "rsa2048/6AA23A1193B7064B"; fingerprint = "6F8A 18AE 4101 103F 3C54 24B9 6AA2 3A11 93B7 064B"; }]; }; @@ -12014,7 +11876,6 @@ githubId = 95471; name = "Sébastien Maret"; keys = [{ - longkeyid = "rsa4096/0x86E30E5A0F5FC59C"; fingerprint = "4242 834C D401 86EF 8281 4093 86E3 0E5A 0F5F C59C"; }]; }; @@ -12099,7 +11960,6 @@ githubId = 2280539; name = "Sondre Nilsen"; keys = [{ - longkeyid = "ed25519/0x25676BCBFFAD76B1"; fingerprint = "0EC3 FA89 EFBA B421 F82E 40B0 2567 6BCB FFAD 76B1"; }]; }; @@ -12244,7 +12104,6 @@ github = "steinybot"; githubId = 4659562; keys = [{ - longkeyid = "ed25519/0x21DE1CAE59762A0F"; fingerprint = "2709 1DEC CC42 4635 4299 569C 21DE 1CAE 5976 2A0F"; }]; }; @@ -12291,7 +12150,6 @@ github = "steshaw"; githubId = 45735; keys = [{ - longkeyid = "rsa4096/0x1D9A17DFD23DCB91"; fingerprint = "0AFE 77F7 474D 1596 EE55 7A29 1D9A 17DF D23D CB91"; }]; }; @@ -12550,7 +12408,6 @@ githubId = 4098453; name = "Tadeo Kondrak"; keys = [{ - longkeyid = "ed25519/0xFBE607FCC49516D3"; fingerprint = "0F2B C0C7 E77C 5B42 AC5B 4C18 FBE6 07FC C495 16D3"; }]; }; @@ -12584,7 +12441,6 @@ githubId = 94917129; name = "taikx4"; keys = [{ - longkeyid = "ed25519/0xCCD52C7B37BB837E"; fingerprint = "6B02 8103 C4E5 F68C D77C 9E54 CCD5 2C7B 37BB 837E"; }]; }; @@ -12680,7 +12536,6 @@ github = "tchekda"; githubId = 23559888; keys = [{ - longkeyid = "rsa4096/0xD0A007EDA4EADA0F"; fingerprint = "44CE A8DD 3B31 49CD 6246 9D8F D0A0 07ED A4EA DA0F"; }]; name = "David Tchekachev"; @@ -12819,7 +12674,6 @@ github = "thblt"; githubId = 2453136; keys = [{ - longkeyid = "rsa4096/0x63A44817A52EAB7B"; fingerprint = "D2A2 F0A1 E7A8 5E6F B711 DEE5 63A4 4817 A52E AB7B"; }]; }; @@ -12854,7 +12708,6 @@ github = "ModdedGamers"; githubId = 35778371; keys = [{ - longkeyid = "rsa4096/0x7D5107866B1C6752"; fingerprint = "38A0 29B0 4A7E 4C13 A4BB 86C8 7D51 0786 6B1C 6752"; }]; }; @@ -12875,7 +12728,6 @@ github = "thesola10"; githubId = 7287268; keys = [{ - longkeyid = "rsa4096/0x89245619BEBB95BA"; fingerprint = "1D05 13A6 1AC4 0D8D C6D6 5F2C 8924 5619 BEBB 95BA"; }]; name = "Karim Vergnes"; @@ -12953,7 +12805,6 @@ githubId = 11243138; name = "Chinmay D. Pai"; keys = [{ - longkeyid = "rsa4096/0x75507BE256F40CED"; fingerprint = "7F3E EEAA EE66 93CC 8782 042A 7550 7BE2 56F4 0CED"; }]; }; @@ -13030,7 +12881,6 @@ githubId = 5722198; name = "Thomas Kerber"; keys = [{ - longkeyid = "rsa4096/0x8489B911F9ED617B"; fingerprint = "556A 403F B0A2 D423 F656 3424 8489 B911 F9ED 617B"; }]; }; @@ -13072,7 +12922,6 @@ githubId = 561087; name = "toastal"; keys = [{ - longkeyid = "ed25519/5CCE6F1466D47C9E"; fingerprint = "7944 74B7 D236 DAB9 C9EF E7F9 5CCE 6F14 66D4 7C9E"; }]; }; @@ -13263,7 +13112,6 @@ githubId = 722482; name = "Denny Schäfer"; keys = [{ - longkeyid = "rsa4096/0xB057455D1E567270"; fingerprint = "C752 0E49 4D92 1740 D263 C467 B057 455D 1E56 7270"; }]; }; @@ -13309,7 +13157,6 @@ github = "twhitehead"; githubId = 787843; keys = [{ - longkeyid = "rsa2048/0x594258F0389D2802"; fingerprint = "E631 8869 586F 99B4 F6E6 D785 5942 58F0 389D 2802"; }]; }; @@ -13349,7 +13196,6 @@ github = "unclechu"; githubId = 799353; keys = [{ - longkeyid = "rsa4096/0xD276FF7467007335"; fingerprint = "EE59 5E29 BB5B F2B3 5ED2 3F1C D276 FF74 6700 7335"; }]; }; @@ -13465,7 +13311,6 @@ githubId = 25173827; name = "Vanilla"; keys = [{ - longkeyid = "rsa4096/0x3750028ED04FA42E"; fingerprint = "2649 340C C909 F821 D251 6714 3750 028E D04F A42E"; }]; }; @@ -13513,7 +13358,6 @@ github = "vcunat"; githubId = 1785925; keys = [{ - longkeyid = "rsa4096/0xE747DF1F9575A3AA"; fingerprint = "B600 6460 B60A 80E7 8206 2449 E747 DF1F 9575 A3AA"; }]; }; @@ -13529,7 +13373,6 @@ github = "veehaitch"; githubId = 15069839; keys = [{ - longkeyid = "rsa4096/0x874BD6F916FAA742"; fingerprint = "4D23 ECDF 880D CADF 5ECA 4458 874B D6F9 16FA A742"; }]; }; @@ -13575,7 +13418,6 @@ githubId = 7953163; name = "Vika Shleina"; keys = [{ - longkeyid = "rsa2048/0x4F62CD07CE64796A"; fingerprint = "B3C0 DA1A C18B 82E8 CA8B B1D1 4F62 CD07 CE64 796A"; }]; }; @@ -13585,7 +13427,6 @@ githubId = 631446; name = "Vincent Bernat"; keys = [{ - longkeyid = "rsa4096/0x95A42FE8353525F9"; fingerprint = "AEF2 3487 66F3 71C6 89A7 3600 95A4 2FE8 3535 25F9"; }]; }; @@ -13732,7 +13573,6 @@ github = "wackbyte"; githubId = 29505620; keys = [{ - longkeyid = "rsa4096/0x937F2AE5CCEFBF59"; fingerprint = "E595 7FE4 FEF6 714B 1AD3 1483 937F 2AE5 CCEF BF59"; }]; }; @@ -13742,7 +13582,6 @@ github = "wakira"; githubId = 2338339; keys = [{ - longkeyid = "rsa4096/0x8C9B0A8FC0C0D862"; fingerprint = "47F7 009E 3AE3 1DA7 988E 12E1 8C9B 0A8F C0C0 D862"; }]; }; @@ -13781,7 +13620,6 @@ github = "WeebSorceress"; githubId = 106774777; keys = [{ - longkeyid = "rsa4096/0x7F57344317F0FA43"; fingerprint = "659A 9BC3 F904 EC24 1461 2EFE 7F57 3443 17F0 FA43"; }]; }; @@ -13803,7 +13641,6 @@ githubId = 16267532; name = "Han Verstraete"; keys = [{ - longkeyid = "rsa4096/0x11F7BAEA856743FF"; fingerprint = "2145 955E 3F5E 0C95 3458 41B5 11F7 BAEA 8567 43FF"; }]; }; @@ -13837,7 +13674,6 @@ github = "wildsebastian"; githubId = 1215623; keys = [{ - longkeyid = "rsa4096/0x366A2940479A06FC"; fingerprint = "DA03 D6C6 3F58 E796 AD26 E99B 366A 2940 479A 06FC"; }]; }; @@ -14104,6 +13940,12 @@ githubId = 1962985; name = "Vincenzo Mantova"; }; + xyenon = { + name = "XYenon"; + email = "i@xyenon.bid"; + github = "xyenon"; + githubId = 20698483; + }; xzfc = { email = "xzfcpw@gmail.com"; github = "xzfc"; @@ -14220,6 +14062,12 @@ githubId = 687198; name = "Yuri Aisaka"; }; + yurkobb = { + name = "Yury Bulka"; + email = "setthemfree@privacyrequired.com"; + github = "yurkobb"; + githubId = 479389; + }; yurrriq = { email = "eric@ericb.me"; github = "yurrriq"; @@ -14232,7 +14080,6 @@ githubId = 24368641; name = "Guillaume Pagnoux"; keys = [{ - longkeyid = "rsa4096/0xEC5065899AEAAF4C"; fingerprint = "85F8 E850 F8F2 F823 F934 535B EC50 6589 9AEA AF4C"; }]; }; @@ -14250,7 +14097,6 @@ githubId = 19897088; name = "Yusuf Bera Ertan"; keys = [{ - longkeyid = "rsa2048/0x61807181F60EFCB2"; fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2"; }]; }; @@ -14260,7 +14106,6 @@ githubId = 86538850; name = "Yuu Yin"; keys = [{ - longkeyid = "rsa4096/0x416F303B43C20AC3"; fingerprint = "9F19 3AE8 AA25 647F FC31 46B5 416F 303B 43C2 0AC3"; }]; }; @@ -14347,7 +14192,6 @@ githubId = 5024958; name = "Jona Abdinghoff"; keys = [{ - longkeyid = "rsa4096/0x8333735E784DF9D4"; fingerprint = "44F7 B797 9D3A 27B1 89E0 841E 8333 735E 784D F9D4"; }]; }; @@ -14532,7 +14376,6 @@ github = "ymatsiuk"; githubId = 24990891; keys = [{ - longkeyid = "rsa4096/0x61302290298601AA"; fingerprint = "7BB8 84B5 74DA FDB1 E194 ED21 6130 2290 2986 01AA"; }]; }; @@ -14604,7 +14447,6 @@ github = "hmenke"; githubId = 1903556; keys = [{ - longkeyid = "rsa4096/0xD65C9AFB4C224DA3"; fingerprint = "F1C5 760E 45B9 9A44 72E9 6BFB D65C 9AFB 4C22 4DA3"; }]; }; @@ -14614,7 +14456,6 @@ github = "berbiche"; githubId = 20448408; keys = [{ - longkeyid = "rsa4096/0xB461292445C6E696"; fingerprint = "D446 E58D 87A0 31C7 EC15 88D7 B461 2924 45C6 E696"; }]; }; @@ -14636,7 +14477,6 @@ github = "starcraft66"; githubId = 1858154; keys = [{ - longkeyid = "rsa4096/0x9D98CDACFF04FD78"; fingerprint = "8597 4506 EC69 5392 0443 0805 9D98 CDAC FF04 FD78"; }]; }; @@ -14671,7 +14511,6 @@ github = "princemachiavelli"; githubId = 2730968; keys = [{ - longkeyid = "ed25519/0x83124F97A318EA18"; fingerprint = "DD54 130B ABEC B65C 1F6B 2A38 8312 4F97 A318 EA18"; }]; }; @@ -14681,7 +14520,6 @@ github = "ydlr"; githubId = 58453832; keys = [{ - longkeyid = "rsa4096/0x43AB44130A29AD9D"; fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4"; }]; }; @@ -14691,7 +14529,6 @@ github = "vs49688"; githubId = 4423262; keys = [{ - longkeyid = "rsa4096/0x68616B2D8AC4DCC5"; fingerprint = "61AE D40F 368B 6F26 9DAE 3892 6861 6B2D 8AC4 DCC5"; }]; }; @@ -14713,7 +14550,6 @@ github = "ZenithalHourlyRate"; githubId = 19512674; keys = [{ - longkeyid = "rsa4096/0x87E17EEF9B18B6C9"; fingerprint = "1127 F188 280A E312 3619 3329 87E1 7EEF 9B18 B6C9"; }]; }; @@ -14730,7 +14566,6 @@ name = "Zoey de Souza Pessanha"; email = "zoey.spessanha@outlook.com"; keys = [{ - longkeyid = "rsa4096/0x1E1E889CDBD6A315"; fingerprint = "EAA1 51DB 472B 0122 109A CB17 1E1E 889C DBD6 A315"; }]; }; @@ -14746,7 +14581,6 @@ github = "zseri"; githubId = 1618343; keys = [{ - longkeyid = "rsa4096/0x229E63AE5644A96D"; fingerprint = "7AFB C595 0D3A 77BD B00F 947B 229E 63AE 5644 A96D"; }]; }; @@ -14799,7 +14633,6 @@ githubId = 68368; matrix = "@qbit:tapenet.org"; keys = [{ - longkeyid = "rsa4096/0x1F81112D62A9ADCE"; fingerprint = "3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE"; }]; }; @@ -14847,7 +14680,6 @@ name = "Bryan Bennett"; keys = [{ # compare with https://keybase.io/bbenne10 - longkeyid = "rsa2048/0xEF90E3E98B8F5C0B"; fingerprint = "41EA 00B4 00F9 6970 1CB2 D3AF EF90 E3E9 8B8F 5C0B"; }]; }; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 2ea345a652d2..413a6f9b1d7a 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -19,7 +19,10 @@ More fields may be added in the future. - Please keep the list alphabetically sorted. + When editing this file: + * keep the list alphabetically sorted + * test the validity of the format with: + nix-build lib/tests/teams.nix */ { lib }: @@ -91,6 +94,16 @@ with lib.maintainers; { enableFeatureFreezePing = true; }; + c3d2 = { + members = [ + astro + SuperSandro2000 + ]; + scope = "Maintain packages used in the C3D2 hackspace"; + shortName = "c3d2"; + enableFeatureFreezePing = true; + }; + cinnamon = { members = [ mkg20001 @@ -139,6 +152,7 @@ with lib.maintainers; { tomberek ]; scope = "Maintain the Cosmopolitan LibC and related programs."; + shortName = "Cosmopolitan"; }; deshaw = { diff --git a/nixos/doc/manual/development/option-declarations.section.md b/nixos/doc/manual/development/option-declarations.section.md index ef7255557a10..79914f2cb6ca 100644 --- a/nixos/doc/manual/development/option-declarations.section.md +++ b/nixos/doc/manual/development/option-declarations.section.md @@ -56,7 +56,14 @@ The function `mkOption` accepts the following arguments. `description` : A textual description of the option, in DocBook format, that will be - included in the NixOS manual. + included in the NixOS manual. During the migration process from DocBook + to CommonMark the description may also be written in CommonMark, but has + to be wrapped in `lib.mdDoc` to differentiate it from DocBook. See + the nixpkgs manual for [the list of CommonMark extensions]( + https://nixos.org/nixpkgs/manual/#sec-contributing-markup) + supported by NixOS documentation. + + New documentation should preferably be written as CommonMark. ## Utility functions for common option patterns {#sec-option-declarations-util} diff --git a/nixos/doc/manual/from_md/development/option-declarations.section.xml b/nixos/doc/manual/from_md/development/option-declarations.section.xml index 381163dd7c74..03ec48f35fd7 100644 --- a/nixos/doc/manual/from_md/development/option-declarations.section.xml +++ b/nixos/doc/manual/from_md/development/option-declarations.section.xml @@ -94,7 +94,17 @@ options = { A textual description of the option, in DocBook format, that - will be included in the NixOS manual. + will be included in the NixOS manual. During the migration + process from DocBook to CommonMark the description may also be + written in CommonMark, but has to be wrapped in + lib.mdDoc to differentiate it from DocBook. + See the nixpkgs manual for + the + list of CommonMark extensions supported by NixOS + documentation. + + + New documentation should preferably be written as CommonMark. diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml index 5208671e4dab..8ef398e25fd0 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml @@ -146,6 +146,14 @@ a kernel module for mounting the Apple File System (APFS). + + + argonone, + a replacement daemon for the Raspberry Pi Argon One power + button and cooler. Available at + services.hardware.argonone. + + ArchiSteamFarm, diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml index 54b69b0bb314..492df2d828a0 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml @@ -31,6 +31,65 @@ stdenv.buildPlatform.canExecute stdenv.hostPlatform. + + + The nixpkgs.hostPlatform and + nixpkgs.buildPlatform options have been + added. These cover and override the + nixpkgs.{system,localSystem,crossSystem} + options. + + + + + hostPlatform is the platform or + system string of the + NixOS system described by the configuration. + + + + + buildPlatform is the platform that is + responsible for building the NixOS configuration. It + defaults to the hostPlatform, for a + non-cross build configuration. To cross compile, set + buildPlatform to a different value. + + + + + The new options convey the same information, but with fewer + options, and following the Nixpkgs terminology. + + + The existing options + nixpkgs.{system,localSystem,crossSystem} + have not been formally deprecated, to allow for evaluation of + the change and to allow for a transition period so that in + time the ecosystem can switch without breaking compatibility + with any supported NixOS release. + + + + + nixos-generate-config now generates + configurations that can be built in pure mode. This is + achieved by setting the new + nixpkgs.hostPlatform option. + + + You may have to unset the system parameter + in lib.nixosSystem, or similarly remove + definitions of the + nixpkgs.{system,localSystem,crossSystem} + options. + + + Alternatively, you can remove the + hostPlatform line and use NixOS like you + would in NixOS 22.05 and earlier. + + PHP now defaults to PHP 8.1, updated from 8.0. @@ -83,6 +142,13 @@ services.persistent-evdev. + + + schleuder, a + mailing list manager with PGP support. Enable using + services.schleuder. + + expressvpn, @@ -123,6 +189,16 @@ changed and support for single hypen arguments was dropped. + + + i18n.supportedLocales is now by default + only generated with the default locale set in + i18n.defaultLocale. This got copied over + from the minimal profile and reduces the final system size by + 200MB. If you require all locales installed set the option to + [ "all" ]. + + The isPowerPC predicate, found on @@ -146,12 +222,32 @@ and next. + + + The Barco ClickShare driver/client package + pkgs.clickshare-csc1 and the option + programs.clickshare-csc1.enable have been + removed, as it requires qt4, which reached + its end-of-life 2015 and will no longer be supported by + nixpkgs. + According + to Barco many of their base unit models can be used + with Google Chrome and the Google Cast extension. + + PHP 7.4 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 22.11 release. + + + riak package removed along with + services.riak module, due to lack of + maintainer to update the package. + + (Neo)Vim can not be configured with @@ -171,6 +267,14 @@
Other Notable Changes + + + The xplr package has been updated from + 0.18.0 to 0.19.0, which brings some breaking changes. See the + upstream + release notes for more details. + + A new module was added for the Saleae Logic device family, @@ -190,6 +294,12 @@ and require manual remediation. + + + zfs was updated from 2.1.4 to 2.1.5, + enabling it to be used with Linux kernel 5.18. + + memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md index faf941f56996..d83eb18f5141 100644 --- a/nixos/doc/manual/release-notes/rl-2205.section.md +++ b/nixos/doc/manual/release-notes/rl-2205.section.md @@ -61,6 +61,8 @@ In addition to numerous new and upgraded packages, this release has the followin - [apfs](https://github.com/linux-apfs/linux-apfs-rw), a kernel module for mounting the Apple File System (APFS). +- [argonone](https://gitlab.com/DarkElvenAngel/argononed), a replacement daemon for the Raspberry Pi Argon One power button and cooler. Available at [services.hardware.argonone](options.html#opt-services.hardware.argonone.enable). + - [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm), a C# application with primary purpose of idling Steam cards from multiple accounts simultaneously. Available as [services.archisteamfarm](#opt-services.archisteamfarm.enable). - [BaGet](https://loic-sharma.github.io/BaGet/), a lightweight NuGet and symbol server. Available at [services.baget](#opt-services.baget.enable). diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index 19fd3e35c223..0c5342f729af 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -17,6 +17,33 @@ In addition to numerous new and upgraded packages, this release has the followin built for `stdenv.hostPlatform` (i.e. produced by `stdenv.cc`) by evaluating `stdenv.buildPlatform.canExecute stdenv.hostPlatform`. +- The `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options have been added. + These cover and override the `nixpkgs.{system,localSystem,crossSystem}` options. + + - `hostPlatform` is the platform or "`system`" string of the NixOS system + described by the configuration. + - `buildPlatform` is the platform that is responsible for building the NixOS + configuration. It defaults to the `hostPlatform`, for a non-cross + build configuration. To cross compile, set `buildPlatform` to a different + value. + + The new options convey the same information, but with fewer options, and + following the Nixpkgs terminology. + + The existing options `nixpkgs.{system,localSystem,crossSystem}` have not + been formally deprecated, to allow for evaluation of the change and to allow + for a transition period so that in time the ecosystem can switch without + breaking compatibility with any supported NixOS release. + +- `nixos-generate-config` now generates configurations that can be built in pure + mode. This is achieved by setting the new `nixpkgs.hostPlatform` option. + + You may have to unset the `system` parameter in `lib.nixosSystem`, or similarly + remove definitions of the `nixpkgs.{system,localSystem,crossSystem}` options. + + Alternatively, you can remove the `hostPlatform` line and use NixOS like you + would in NixOS 22.05 and earlier. + - PHP now defaults to PHP 8.1, updated from 8.0. - `hardware.nvidia` has a new option `open` that can be used to opt in the opensource version of NVIDIA kernel driver. Note that the driver's support for GeForce and Workstation GPUs is still alpha quality, see [NVIDIA Releases Open-Source GPU Kernel Modules](https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/) for the official announcement. @@ -33,6 +60,8 @@ In addition to numerous new and upgraded packages, this release has the followin Available as [services.infnoise](options.html#opt-services.infnoise.enable). - [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable). +- [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable). + - [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable). @@ -51,13 +80,23 @@ In addition to numerous new and upgraded packages, this release has the followin and [changelog](https://ngrok.com/docs/ngrok-agent/changelog). Notably, breaking changes are that the config file format has changed and support for single hypen arguments was dropped. +- `i18n.supportedLocales` is now by default only generated with the default locale set in `i18n.defaultLocale`. + This got copied over from the minimal profile and reduces the final system size by 200MB. + If you require all locales installed set the option to ``[ "all" ]``. + - The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion. The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems. If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`. - `bsp-layout` no longer uses the command `cycle` to switch to other window layouts, as it got replaced by the commands `previous` and `next`. +- The Barco ClickShare driver/client package `pkgs.clickshare-csc1` and the option `programs.clickshare-csc1.enable` have been removed, + as it requires `qt4`, which reached its end-of-life 2015 and will no longer be supported by nixpkgs. + [According to Barco](https://www.barco.com/de/support/knowledge-base/4380-can-i-use-linux-os-with-clickshare-base-units) many of their base unit models can be used with Google Chrome and the Google Cast extension. + - PHP 7.4 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 22.11 release. +- riak package removed along with `services.riak` module, due to lack of maintainer to update the package. + - (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden. Use `configure.packages` instead. @@ -67,10 +106,14 @@ Use `configure.packages` instead. ## Other Notable Changes {#sec-release-22.11-notable-changes} +- The `xplr` package has been updated from 0.18.0 to 0.19.0, which brings some breaking changes. See the [upstream release notes](https://github.com/sayanarijit/xplr/releases/tag/v0.19.0) for more details. + - A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`. - Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation. +- `zfs` was updated from 2.1.4 to 2.1.5, enabling it to be used with Linux kernel 5.18. + - memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available. diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix index 416beeb32f2f..b8e1b8d24c48 100644 --- a/nixos/lib/make-ext4-fs.nix +++ b/nixos/lib/make-ext4-fs.nix @@ -78,6 +78,15 @@ pkgs.stdenv.mkDerivation { # get rid of the unnecessary slack here--but see # https://github.com/NixOS/nixpkgs/issues/125121 for caveats. + # shrink to fit + resize2fs -M $img + + # Add 16 MebiByte to the current_size + new_size=$(dumpe2fs -h $img | awk -F: \ + '/Block count/{count=$2} /Block size/{size=$2} END{print (count*size+16*2**20)/size}') + + resize2fs $img $new_size + if [ ${builtins.toString compressImage} ]; then echo "Compressing image" zstd -v --no-progress ./$img -o $out diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix index 3324ef7fcd6f..282b3e7397c4 100644 --- a/nixos/lib/make-options-doc/default.nix +++ b/nixos/lib/make-options-doc/default.nix @@ -112,7 +112,15 @@ in rec { optionsJSON = pkgs.runCommand "options.json" { meta.description = "List of NixOS options in JSON format"; - buildInputs = [ pkgs.brotli ]; + buildInputs = [ + pkgs.brotli + (let + self = (pkgs.python3Minimal.override { + inherit self; + includeSiteCustomize = true; + }); + in self.withPackages (p: [ p.mistune_2_0 ])) + ]; options = builtins.toFile "options.json" (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)); } @@ -123,9 +131,13 @@ in rec { ${ if baseOptionsJSON == null - then "cp $options $dst/options.json" + then '' + # `cp $options $dst/options.json`, but with temporary + # markdown processing + python ${./mergeJSON.py} $options <(echo '{}') > $dst/options.json + '' else '' - ${pkgs.python3Minimal}/bin/python ${./mergeJSON.py} \ + python ${./mergeJSON.py} \ ${lib.optionalString warningsAreErrors "--warnings-are-errors"} \ ${baseOptionsJSON} $options \ > $dst/options.json diff --git a/nixos/lib/make-options-doc/mergeJSON.py b/nixos/lib/make-options-doc/mergeJSON.py index 44a188a08c99..9510b1e59a20 100644 --- a/nixos/lib/make-options-doc/mergeJSON.py +++ b/nixos/lib/make-options-doc/mergeJSON.py @@ -41,6 +41,150 @@ def unpivot(options: Dict[Key, Option]) -> Dict[str, JSON]: result[opt.name] = opt.value return result +# converts in-place! +def convertMD(options: Dict[str, Any]) -> str: + import mistune + import re + from xml.sax.saxutils import escape, quoteattr + + admonitions = { + '.warning': 'warning', + '.important': 'important', + '.note': 'note' + } + class Renderer(mistune.renderers.BaseRenderer): + def _get_method(self, name): + try: + return super(Renderer, self)._get_method(name) + except AttributeError: + def not_supported(children, **kwargs): + raise NotImplementedError("md node not supported yet", name, children, **kwargs) + return not_supported + + def text(self, text): + return escape(text) + def paragraph(self, text): + return text + "\n\n" + def codespan(self, text): + return f"{text}" + def block_code(self, text, info=None): + info = f" language={quoteattr(info)}" if info is not None else "" + return f"\n{text}" + def link(self, link, text=None, title=None): + if link[0:1] == '#': + attr = "linkend" + link = quoteattr(link[1:]) + else: + # try to faithfully reproduce links that were of the form + # in docbook format + if text == link: + text = "" + attr = "xlink:href" + link = quoteattr(link) + return f"{text}" + def list(self, text, ordered, level, start=None): + if ordered: + raise NotImplementedError("ordered lists not supported yet") + return f"\n{text}\n" + def list_item(self, text, level): + return f"{text}\n" + def block_text(self, text): + return text + def emphasis(self, text): + return f"{text}" + def strong(self, text): + return f"{text}" + def admonition(self, text, kind): + if kind not in admonitions: + raise NotImplementedError(f"admonition {kind} not supported yet") + tag = admonitions[kind] + # we don't keep whitespace here because usually we'll contain only + # a single paragraph and the original docbook string is no longer + # available to restore the trailer. + return f"<{tag}>{text.rstrip()}" + def command(self, text): + return f"{escape(text)}" + def option(self, text): + return f"" + def file(self, text): + return f"{escape(text)}" + def manpage(self, page, section): + title = f"{escape(page)}" + vol = f"{escape(section)}" + return f"{title}{vol}" + + def finalize(self, data): + return "".join(data) + + plugins = [] + + COMMAND_PATTERN = r'\{command\}`(.*?)`' + def command(md): + def parse(self, m, state): + return ('command', m.group(1)) + md.inline.register_rule('command', COMMAND_PATTERN, parse) + md.inline.rules.append('command') + plugins.append(command) + + FILE_PATTERN = r'\{file\}`(.*?)`' + def file(md): + def parse(self, m, state): + return ('file', m.group(1)) + md.inline.register_rule('file', FILE_PATTERN, parse) + md.inline.rules.append('file') + plugins.append(file) + + OPTION_PATTERN = r'\{option\}`(.*?)`' + def option(md): + def parse(self, m, state): + return ('option', m.group(1)) + md.inline.register_rule('option', OPTION_PATTERN, parse) + md.inline.rules.append('option') + plugins.append(option) + + MANPAGE_PATTERN = r'\{manpage\}`(.*?)\((.+?)\)`' + def manpage(md): + def parse(self, m, state): + return ('manpage', m.group(1), m.group(2)) + md.inline.register_rule('manpage', MANPAGE_PATTERN, parse) + md.inline.rules.append('manpage') + plugins.append(manpage) + + ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::\n', flags=re.MULTILINE|re.DOTALL) + def admonition(md): + def parse(self, m, state): + return { + 'type': 'admonition', + 'children': self.parse(m.group(2), state), + 'params': [ m.group(1) ], + } + md.block.register_rule('admonition', ADMONITION_PATTERN, parse) + md.block.rules.append('admonition') + plugins.append(admonition) + + def convertString(text: str) -> str: + rendered = mistune.markdown(text, renderer=Renderer(), plugins=plugins) + # keep trailing spaces so we can diff the generated XML to check for conversion bugs. + return rendered.rstrip() + text[len(text.rstrip()):] + + def optionIs(option: Dict[str, Any], key: str, typ: str) -> bool: + if key not in option: return False + if type(option[key]) != dict: return False + if '_type' not in option[key]: return False + return option[key]['_type'] == typ + + for (name, option) in options.items(): + if optionIs(option, 'description', 'mdDoc'): + option['description'] = convertString(option['description']['text']) + if optionIs(option, 'example', 'literalMD'): + docbook = convertString(option['example']['text']) + option['example'] = { '_type': 'literalDocBook', 'text': docbook } + if optionIs(option, 'default', 'literalMD'): + docbook = convertString(option['default']['text']) + option['default'] = { '_type': 'literalDocBook', 'text': docbook } + + return options + warningsAreErrors = sys.argv[1] == "--warnings-are-errors" optOffset = 1 if warningsAreErrors else 0 options = pivot(json.load(open(sys.argv[1 + optOffset], 'r'))) @@ -92,4 +236,4 @@ if hasWarnings and warningsAreErrors: file=sys.stderr) sys.exit(1) -json.dump(unpivot(options), fp=sys.stdout) +json.dump(convertMD(unpivot(options)), fp=sys.stdout) diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl index 03e14365cda9..07d69649523f 100644 --- a/nixos/lib/make-options-doc/options-to-docbook.xsl +++ b/nixos/lib/make-options-doc/options-to-docbook.xsl @@ -213,6 +213,23 @@ + + + + + + + + + + +