···48indent_size = 2
49indent_style = space
5051-# Match package.json, which are generally pulled from upstream and accept them as they are
52-[package.json]
53indent_style = unset
05455# Disable file types or individual files
56# some of these files may be auto-generated and/or require significant changes
···85[eggs.nix]
86trim_trailing_whitespace = unset
8788-[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
89-trim_trailing_whitespace = unset
90-91-[pkgs/build-support/dotnetenv/Wrapper/**]
92-end_of_line = unset
93-indent_style = unset
94-insert_final_newline = unset
95-trim_trailing_whitespace = unset
96-97[registry.dat]
98end_of_line = unset
99insert_final_newline = unset
100101-[pkgs/development/haskell-modules/hackage-packages.nix]
102-indent_style = unset
103-trim_trailing_whitespace = unset
104-105-[pkgs/misc/documentation-highlighter/**]
106-insert_final_newline = unset
107-108-[pkgs/servers/dict/wordnet_structures.py]
109-trim_trailing_whitespace = unset
110-111-[pkgs/by-name/ti/timidity/timidity.cfg]
112-trim_trailing_whitespace = unset
113-114-[pkgs/tools/security/qdigidoc/vendor/*]
115-end_of_line = unset
116-insert_final_newline = unset
117-trim_trailing_whitespace = unset
118-119-[pkgs/tools/virtualization/ovftool/*.ova]
120-end_of_line = unset
121-insert_final_newline = unset
122-trim_trailing_whitespace = unset
123-charset = unset
124-125-[lib/tests/*.plist]
126-indent_style = tab
127-insert_final_newline = unset
128-129-[pkgs/kde/generated/**]
130-insert_final_newline = unset
131-end_of_line = unset
···48indent_size = 2
49indent_style = space
5051+# Match package.json and package-lock.json, which are generally pulled from upstream and accept them as they are
52+[package{,-lock}.json]
53indent_style = unset
54+insert_final_newline = unset
5556# Disable file types or individual files
57# some of these files may be auto-generated and/or require significant changes
···86[eggs.nix]
87trim_trailing_whitespace = unset
8800000000089[registry.dat]
90end_of_line = unset
91insert_final_newline = unset
9293+# Keep this hint at the bottom:
94+# Please don't add entries for subfolders here.
95+# Create <subfolder>/.editorconfig instead.
0000000000000000000000000000
···32 with:
33 ref: ${{ needs.get-merge-commit.outputs.mergedSha }}
3435+ - name: Get Nixpkgs revision for editorconfig-checker
36+ run: |
37+ # Pin to a commit from nixpkgs-unstable to avoid building from e.g. staging.
38+ # This should not be a URL, because it would allow PRs to run arbitrary code in CI!
39+ rev=$(jq -r .rev ci/pinned-nixpkgs.json)
40+ echo "url=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz" >> "$GITHUB_ENV"
41+42 - uses: cachix/install-nix-action@526118121621777ccd86f79b04685a9319637641 # v31
43 with:
44+ nix_path: nixpkgs=${{ env.url }}
004546 - name: Checking EditorConfig
47 run: |
+1-1
.github/workflows/no-channel.yml
···12 if: |
13 startsWith(github.event.pull_request.base.ref, 'nixos-') ||
14 startsWith(github.event.pull_request.base.ref, 'nixpkgs-')
15- name: "This PR is is targeting a channel branch"
16 runs-on: ubuntu-24.04
17 steps:
18 - run: |
···53 // {
54 # TODO: Refactor this so we can ping entire teams instead of the individual members.
55 # Note that this will require keeping track of GH team IDs in "maintainers/teams.nix".
56- maintainers =
57- meta.maintainers or [ ]
58- ++ lib.flatten (map (team: team.members or [ ]) (meta.teams or [ ]));
59 }
60 ) attrsWithPackages;
61···64 (lib.lists.unique (
65 builtins.map (pos: lib.strings.removePrefix (toString ../..) pos.file) (
66 builtins.filter (x: x != null) [
67- (builtins.unsafeGetAttrPos "maintainers" (drv.meta or { }))
068 (builtins.unsafeGetAttrPos "src" drv)
69 # broken because name is always set by stdenv:
70 # # A hack to make `nix-env -qa` and `nix search` ignore broken packages.
···53 // {
54 # TODO: Refactor this so we can ping entire teams instead of the individual members.
55 # Note that this will require keeping track of GH team IDs in "maintainers/teams.nix".
56+ maintainers = meta.maintainers or [ ];
0057 }
58 ) attrsWithPackages;
59···62 (lib.lists.unique (
63 builtins.map (pos: lib.strings.removePrefix (toString ../..) pos.file) (
64 builtins.filter (x: x != null) [
65+ ((drv.meta or { }).maintainersPosition or null)
66+ ((drv.meta or { }).teamsPosition or null)
67 (builtins.unsafeGetAttrPos "src" drv)
68 # broken because name is always set by stdenv:
69 # # A hack to make `nix-env -qa` and `nix search` ignore broken packages.
···1#!/bin/sh
23# The file from which to extract *.ico files or a particular *.ico file.
4-# (e.g.: './KeePass.exe', './myLibrary.dll', './my/path/to/app.ico').
5# As you notived, the utility can extract icons from a windows executable or
6# dll.
7rscFile=$1
···28# fancy, it will usually be '\1'.
29nameReplaceExp=$5
3031-# The
32# out=./myOut
33out=$6
34···52else
53 wrestool -x --output=$tmp/ico -t14 $rscFile
54fi
55-56icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico
5758mkdir -p $out
···1#!/bin/sh
23# The file from which to extract *.ico files or a particular *.ico file.
4+# (e.g.: './KeePass.exe', './myLibrary.dll', './my/path/to/app.ico').
5# As you notived, the utility can extract icons from a windows executable or
6# dll.
7rscFile=$1
···28# fancy, it will usually be '\1'.
29nameReplaceExp=$5
3031+# The
32# out=./myOut
33out=$6
34···52else
53 wrestool -x --output=$tmp/ico -t14 $rscFile
54fi
55+56icotool --icon -x --palette-size=0 -o $tmp/png $tmp/ico/*.ico
5758mkdir -p $out
···59 ];
6061 disabledTests = [
62+ # Disable this test because on Python >= 3.12 it fails due to argparse changes https://github.com/python/cpython/pull/124578
63+ "test_add_arguments"
64 # Network tests: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/234
65 "test_arg_from_file"
66 "test_arg_from_stdin"
···1+# Exposed as cudaPackages.backendStdenv.
2+# This is what nvcc uses as a backend,
3+# and it has to be an officially supported one (e.g. gcc11 for cuda11).
4+#
5+# It, however, propagates current stdenv's libstdc++ to avoid "GLIBCXX_* not found errors"
6+# when linked with other C++ libraries.
7+# E.g. for cudaPackages_11_8 we use gcc11 with gcc12's libstdc++
8+# Cf. https://github.com/NixOS/nixpkgs/pull/218265 for context
9{
10 cudaVersion,
11 lib,
···1+# autoAddCudaCompatRunpath hook must be added AFTER `setupCudaHook`. Both
2+# hooks prepend a path with `libcuda.so` to the `DT_RUNPATH` section of
3+# patched elf files, but `cuda_compat` path must take precedence (otherwise,
4+# it doesn't have any effect) and thus appear first. Meaning this hook must be
5+# executed last.
6+{
7+ autoFixElfFiles,
8+ cuda_compat ? null,
9+ makeSetupHook,
10+}:
11+makeSetupHook {
12+ name = "auto-add-cuda-compat-runpath-hook";
13+ propagatedBuildInputs = [ autoFixElfFiles ];
14+15+ substitutions = {
16+ libcudaPath = "${cuda_compat}/compat";
17+ };
18+19+ meta =
20+ let
21+ # Handle `null`s in pre-`cuda_compat` releases,
22+ # and `badPlatform`s for `!isJetsonBuild`.
23+ platforms = cuda_compat.meta.platforms or [ ];
24+ badPlatforms = cuda_compat.meta.badPlatforms or platforms;
25+ in
26+ {
27+ inherit badPlatforms platforms;
28+ };
29+} ./auto-add-cuda-compat-runpath.sh
···1+# Internal hook, used by cudatoolkit and cuda redist packages
2+# to accommodate automatic CUDAToolkit_ROOT construction
3+{ makeSetupHook }:
4+makeSetupHook { name = "mark-for-cudatoolkit-root-hook"; } ./mark-for-cudatoolkit-root-hook.sh
···1+# Currently propagated by cuda_nvcc or cudatoolkit, rather than used directly
2+{ makeSetupHook, backendStdenv }:
3+makeSetupHook {
4+ name = "setup-cuda-hook";
5+6+ substitutions.setupCudaHook = placeholder "out";
7+8+ # Point NVCC at a compatible compiler
9+ substitutions.ccRoot = "${backendStdenv.cc}";
10+11+ # Required in addition to ccRoot as otherwise bin/gcc is looked up
12+ # when building CMakeCUDACompilerId.cu
13+ substitutions.ccFullPath = "${backendStdenv.cc}/bin/${backendStdenv.cc.targetPrefix}c++";
14+} ./setup-cuda-hook.sh
···1/path/to/write-nix-expression.sh Group::Module::Submodule
23-It will output Nix assignment formatted for placing into
4all-packages.nix amongst all the perl packages, like perlAlgorithmDiff.
5Actually it will grab distribution unit Group-Module-Submodule via
6search.cpan.org, and make some effort to write correct dependencies.
7-If among requirements there are some that have empty META.yml, or if
8any of requirements acannot be installed by just getting distribution
9unit whose name can be guessed by replacing :: with -, manual editing
10-will be needed.
···1/path/to/write-nix-expression.sh Group::Module::Submodule
23+It will output Nix assignment formatted for placing into
4all-packages.nix amongst all the perl packages, like perlAlgorithmDiff.
5Actually it will grab distribution unit Group-Module-Submodule via
6search.cpan.org, and make some effort to write correct dependencies.
7+If among requirements there are some that have empty META.yml, or if
8any of requirements acannot be installed by just getting distribution
9unit whose name can be guessed by replacing :: with -, manual editing
10+will be needed.
···93 disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
94 # Issue with creating a temp file in the sandbox
95 "tests/wids/test_wids_mmtar.py"
0096 ];
9798 meta = {
···93 disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
94 # Issue with creating a temp file in the sandbox
95 "tests/wids/test_wids_mmtar.py"
96+ # hangs the build *after* the tests
97+ "tests/webdataset/test_loaders.py"
98 ];
99100 meta = {
···411 isFcitxEngine = bool;
412 isIbusEngine = bool;
413 isGutenprint = bool;
0000414 };
415416 checkMetaAttr =
···589 )
590 ] ++ optional (hasOutput "man") "man";
591 }
00000592 // attrs.meta or { }
593 # Fill `meta.position` to identify the source location of the package.
594 // optionalAttrs (pos != null) {
595 position = pos.file + ":" + toString pos.line;
00000000596 }
597 // {
598 # Expose the result of the checks for everyone to see.
···411 isFcitxEngine = bool;
412 isIbusEngine = bool;
413 isGutenprint = bool;
414+415+ # Used for the original location of the maintainer and team attributes to assist with pings.
416+ maintainersPosition = any;
417+ teamsPosition = any;
418 };
419420 checkMetaAttr =
···593 )
594 ] ++ optional (hasOutput "man") "man";
595 }
596+ // {
597+ # CI scripts look at these to determine pings.
598+ maintainersPosition = builtins.unsafeGetAttrPos "maintainers" (attrs.meta or { });
599+ teamsPosition = builtins.unsafeGetAttrPos "teams" (attrs.meta or { });
600+ }
601 // attrs.meta or { }
602 # Fill `meta.position` to identify the source location of the package.
603 // optionalAttrs (pos != null) {
604 position = pos.file + ":" + toString pos.line;
605+ }
606+ // {
607+ # Maintainers should be inclusive of teams.
608+ # Note that there may be external consumers of this API (repology, for instance) -
609+ # if you add a new maintainer or team attribute please ensure that this expectation is still met.
610+ maintainers =
611+ attrs.meta.maintainers or [ ]
612+ ++ concatMap (team: team.members or [ ]) attrs.meta.teams or [ ];
613 }
614 // {
615 # Expose the result of the checks for everyone to see.
···18 my $relPath = $ARGV[$n + 1];
19 my $parents = 0;
20 foreach my $comp (split /\//, $relPath) {
21- $parents++ if ($comp eq "..")
22 }
23 $maxParents = $parents if $parents > $maxParents;
24}
···36 my $relPath = $ARGV[$n + 1];
3738 createDirs $relPath;
39-40 symlink $fullPath, $relPath or die "cannot create symlink `$relPath'";
41}
42
···18 my $relPath = $ARGV[$n + 1];
19 my $parents = 0;
20 foreach my $comp (split /\//, $relPath) {
21+ $parents++ if ($comp eq "..")
22 }
23 $maxParents = $parents if $parents > $maxParents;
24}
···36 my $relPath = $ARGV[$n + 1];
3738 createDirs $relPath;
39+40 symlink $fullPath, $relPath or die "cannot create symlink `$relPath'";
41}
42
+1-1
pkgs/tools/typesetting/tex/nix/find-includes.pl
···14 my ($type, $name) = @_;
15 print OUT "{ type = \"$type\"; name = \"$name\"; }\n";
16}
17-18while (<FILE>) {
19 if (/\\input\{(.*)\}/) {
20 my $fn2 = $1;
···14 my ($type, $name) = @_;
15 print OUT "{ type = \"$type\"; name = \"$name\"; }\n";
16}
17+18while (<FILE>) {
19 if (/\\input\{(.*)\}/) {
20 my $fn2 = $1;
+2
pkgs/top-level/aliases.nix
···1106 loc = throw "'loc' has been removed due to lack of upstream maintenance. Consider 'tokei' as an alternative."; # Added 2025-01-25
1107 loco-cli = loco; # Added 2025-02-24
1108 loop = throw "'loop' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
01109 luna-icons = throw "luna-icons has been removed as it was removed upstream"; # Added 2024-10-29
1110 lucene = throw "lucene has been removed since it was both wildly out of date and was not even built properly for 4 years"; # Added 2025-04-10
01111 lv_img_conv = throw "'lv_img_conv' has been removed from nixpkgs as it is broken"; # Added 2024-06-18
1112 lxd = lib.warnOnInstantiate "lxd has been renamed to lxd-lts" lxd-lts; # Added 2024-04-01
1113 lxd-unwrapped = lib.warnOnInstantiate "lxd-unwrapped has been renamed to lxd-unwrapped-lts" lxd-unwrapped-lts; # Added 2024-04-01
···1106 loc = throw "'loc' has been removed due to lack of upstream maintenance. Consider 'tokei' as an alternative."; # Added 2025-01-25
1107 loco-cli = loco; # Added 2025-02-24
1108 loop = throw "'loop' has been removed due to lack of upstream maintenance"; # Added 2025-01-25
1109+ ltwheelconf = throw "'ltwheelconf' has been removed because it is obsolete"; # Added 2025-05-07
1110 luna-icons = throw "luna-icons has been removed as it was removed upstream"; # Added 2024-10-29
1111 lucene = throw "lucene has been removed since it was both wildly out of date and was not even built properly for 4 years"; # Added 2025-04-10
1112+ lumail = throw "'lumail' has been removed since its upstream is unavailable"; # Added 2025-05-07
1113 lv_img_conv = throw "'lv_img_conv' has been removed from nixpkgs as it is broken"; # Added 2024-06-18
1114 lxd = lib.warnOnInstantiate "lxd has been renamed to lxd-lts" lxd-lts; # Added 2024-04-01
1115 lxd-unwrapped = lib.warnOnInstantiate "lxd-unwrapped has been renamed to lxd-unwrapped-lts" lxd-unwrapped-lts; # Added 2024-04-01