In preparation for the deprecation of `stdenv.isX`. These shorthands are not conducive to cross-compilation because they hide the platforms. Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way One example of why this is bad and especially affects compiler packages https://www.github.com/NixOS/nixpkgs/pull/343059 There are too many files to go through manually but a treewide should get users thinking when they see a `hostPlatform.isX` in a place where it doesn't make sense. ``` fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is" fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is" fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is" ``` |
||
|---|---|---|
| .. | ||
| bootstrap-files | ||
| convert-to-import-cargo-lock | ||
| doc | ||
| haskell | ||
| kde | ||
| pluginupdate-py | ||
| __init__.py | ||
| all-tarballs.nix | ||
| build.nix | ||
| check-by-name.sh | ||
| check-cherry-picks.sh | ||
| check-hydra-by-maintainer.nix | ||
| check-maintainer-github-handles.sh | ||
| check-maintainers-sorted.nix | ||
| convert-to-import-cargo-lock.sh | ||
| copy-tarballs.pl | ||
| db-to-md.sh | ||
| debian-patches.sh | ||
| dep-licenses.sh | ||
| eval-release.nix | ||
| eval-release.sh | ||
| feature-freeze-teams.pl | ||
| fetch-kde-qt.sh | ||
| find-tarballs.nix | ||
| fix-maintainers.pl | ||
| get-maintainer.sh | ||
| hydra-eval-failures.py | ||
| hydra_eval_check | ||
| luarocks-config.lua | ||
| luarocks-packages.csv | ||
| nix-call-package | ||
| nix-diff.sh | ||
| nix-generate-from-cpan.nix | ||
| nix-generate-from-cpan.pl | ||
| nixpkgs-lint.nix | ||
| nixpkgs-lint.pl | ||
| patchelf-hints.sh | ||
| README.md | ||
| rebuild-amount.sh | ||
| remove-old-aliases.py | ||
| sha-to-sri.py | ||
| update-channel-branches.sh | ||
| update-dotnet-lockfiles.nix | ||
| update-octave-packages | ||
| update-octave-shell.nix | ||
| update-python-libraries | ||
| update-redirected-urls.sh | ||
| update-ruby-packages | ||
| update.nix | ||
| update.py | ||
| vanity-manual-equalities.txt | ||
| vanity.sh | ||
Maintainer scripts
This folder contains various executable scripts for nixpkgs maintainers, and supporting data or nixlang files as needed. These scripts generally aren't a stable interface and may changed or be removed.
What follows is a (very incomplete) overview of available scripts.
Metadata
get-maintainer.sh
get-maintainer.sh [selector] value returns a JSON object describing
a given nixpkgs maintainer, equivalent to lib.maintainers.${x} // { handle = x; }.
This allows looking up a maintainer's attrset (including GitHub and Matrix
handles, email address etc.) based on any of their handles, more correctly and
robustly than text search through maintainers-list.nix.
❯ ./get-maintainer.sh nicoo
{
"email": "nicoo@debian.org",
"github": "nbraud",
"githubId": 1155801,
"keys": [
{
"fingerprint": "E44E 9EA5 4B8E 256A FB73 49D3 EC9D 3708 72BC 7A8C"
}
],
"name": "nicoo",
"handle": "nicoo"
}
❯ ./get-maintainer.sh name 'Silvan Mosberger'
{
"email": "contact@infinisil.com",
"github": "infinisil",
"githubId": 20525370,
"keys": [
{
"fingerprint": "6C2B 55D4 4E04 8266 6B7D DA1A 422E 9EDA E015 7170"
}
],
"matrix": "@infinisil:matrix.org",
"name": "Silvan Mosberger",
"handle": "infinisil"
}
The maintainer is designated by a selector which must be one of:
handle(default): the maintainer's attribute name inlib.maintainers;email,name,github,githubId,matrix,name: attributes of the maintainer's object, matched exactly; seemaintainer-list.nixfor the fields' definition.
Conventions
sha-to-sri.py
sha-to-sri.py path ... (atomically) rewrites hash attributes (named hash or sha(1|256|512))
into the SRI format: hash = "{hash name}-{base64 encoded value}".
path must point to either a nix file, or a directory which will be automatically traversed.
sha-to-sri.py automatically skips files whose first non-empty line contains generated by or do not edit.
Moreover, when walking a directory tree, the script will skip files whose name is yarn.nix or contains generated.