diff --git a/flake.nix b/flake.nix index bcc064cd..b789f70c 100644 --- a/flake.nix +++ b/flake.nix @@ -48,7 +48,9 @@ }; checks = lib.filterAttrs (k: v: v != null) - (exposed.checks // exposed-stable.checks); + (exposed.checks + // (lib.mapAttrs' (name: value: lib.nameValuePair "stable-${name}" value) + exposed-stable.checks)); lib = { inherit (exposed) run; }; } diff --git a/modules/hooks.nix b/modules/hooks.nix index 021a5f4e..37df4e95 100644 --- a/modules/hooks.nix +++ b/modules/hooks.nix @@ -1580,6 +1580,7 @@ in { name = "ansible-lint"; description = "Ansible linter"; + package = tools.ansible-lint; entry = let cmdArgs = @@ -1587,7 +1588,7 @@ in [ (hooks.ansible-lint.settings.configPath != "") "-c ${hooks.ansible-lint.settings.configPath}" ] ]; in - "${tools.ansible-lint}/bin/ansible-lint ${cmdArgs}"; + "${hooks.ansible-lint.package}/bin/ansible-lint ${cmdArgs}"; files = if hooks.ansible-lint.settings.subdir != "" then "${hooks.ansible-lint.settings.subdir}/" else ""; }; autoflake = diff --git a/nix/default.nix b/nix/default.nix index edbb0924..b4d08614 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -7,13 +7,14 @@ let overlay = self: pkgs: let + inherit (pkgs) lib; tools = import ./call-tools.nix pkgs; run = pkgs.callPackage ./run.nix { inherit pkgs tools isFlakes gitignore-nix-src; }; in { inherit tools run; # Flake style attributes - packages = tools // { + packages = (lib.filterAttrs (_name: value: value != null) tools) // { inherit (pkgs) pre-commit; }; checks = self.packages // { @@ -27,7 +28,7 @@ let }; all-tools-eval = let - config = pkgs.lib.evalModules { + config = lib.evalModules { modules = [ ../modules/all-modules.nix { @@ -37,7 +38,10 @@ let specialArgs = { inherit pkgs; }; }; allHooks = config.config.hooks; - allEntryPoints = pkgs.lib.mapAttrsToList (_: v: v.entry) allHooks; + allEntryPoints = lib.pipe allHooks [ + (lib.filterAttrs (_name: value: value.package != null)) + (lib.mapAttrsToList (_: value: value.entry)) + ]; in pkgs.runCommand "all-tools-eval" { @@ -47,7 +51,6 @@ let ''; doc-check = let - inherit (pkgs) lib; # We might add that it keeps rendering fast and robust, # and we want to teach `defaultText` which is more broadly applicable, # but the message is long enough. @@ -64,7 +67,7 @@ let If necessary, you can also find the offending option by evaluating with `--show-trace` and then look for occurrences of `option`. ''; pkgsStub = lib.mapAttrs failPkgAttr pkgs; - configuration = pkgs.lib.evalModules { + configuration = lib.evalModules { modules = [ ../modules/all-modules.nix { diff --git a/nix/headache/default.nix b/nix/headache/default.nix index 014832da..d7a4c1cd 100644 --- a/nix/headache/default.nix +++ b/nix/headache/default.nix @@ -1,9 +1,16 @@ -{ stdenv, lib, headache ? null, ocamlPackages }: +{ stdenv, lib, darwin, headache ? null, ocamlPackages }: ## NOTE: `headache` moved from `ocamlPackages.headache` to top-level on 8 June ## 2023. Once this gets into a NixOS release, the following code will be ## useless. -let the-headache = if headache != null then headache else ocamlPackages.headache; in +let + the-headache = + (if headache != null then headache else ocamlPackages.headache).overrideAttrs (drv: { + nativeBuildInputs = (drv.nativeBuildInputs or [ ]) ++ lib.optionals stdenv.isDarwin [ + darwin.sigtool + ]; + }); +in ## NOTE: The following derivation seems rather trivial, but it is used here to ## get rid of a runtime dependency in the whole OCaml compiler (~420M). diff --git a/nix/tools.nix b/nix/tools.nix index a84af0df..b8346115 100644 --- a/nix/tools.nix +++ b/nix/tools.nix @@ -1,4 +1,5 @@ { stdenv +, lib , actionlint , alejandra @@ -26,18 +27,14 @@ , elixir , elmPackages , fprettify -, git , git-annex -, gitAndTools , gptcommit ? null , hadolint -, haskell , haskellPackages , hindent , hlint , hpack , html-tidy -, hunspell , luaPackages , lua-language-server , lychee @@ -57,7 +54,6 @@ , php82Packages , ripsecrets ? null , ruff ? null -, runCommand , rustfmt , shellcheck , bats @@ -69,15 +65,12 @@ , tagref , taplo , texlive -, tflint , topiary ? null ## Added in nixpkgs on Dec 2, 2022 , treefmt , typos , typstfmt , zprint , yamllint -, writeScript -, writeText , go , go-tools , golangci-lint @@ -115,7 +108,6 @@ in editorconfig-checker elixir fprettify - git-annex go go-tools golangci-lint @@ -132,7 +124,6 @@ in nil nixfmt nixpkgs-fmt - opam ormolu pre-commit-hook-ensure-sops revive @@ -183,6 +174,9 @@ in chktex = tex; commitizen = commitizen.overrideAttrs (_: _: { doCheck = false; }); bats = if bats ? withLibraries then (bats.withLibraries (p: [ p.bats-support p.bats-assert p.bats-file ])) else bats; + git-annex = if stdenv.isDarwin then null else git-annex; + # Note: Only broken in stable nixpkgs, works fine on latest master. + opam = if stdenv.isDarwin then null else opam; ## NOTE: `checkmake` 0.2.2 landed in nixpkgs on 12 April 2023. Once this gets ## into a NixOS release, the following code will be useless.