Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix nix flake check on macOS #421

Merged
merged 1 commit into from
Mar 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Comment on lines +51 to +53
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two sets had the same names, so only the checks from the second set (exposed-stable) were being built. This led to a confusing situation where nix flake check would fail but building the corresponding package with nix build .#opam would succeed.


lib = { inherit (exposed) run; };
}
Expand Down
3 changes: 2 additions & 1 deletion modules/hooks.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1580,14 +1580,15 @@ in
{
name = "ansible-lint";
description = "Ansible linter";
package = tools.ansible-lint;
entry =
let
cmdArgs =
mkCmdArgs [
[ (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 =
Expand Down
13 changes: 8 additions & 5 deletions nix/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -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) // {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nix flake check complains if non-derivation values are present in packages.

inherit (pkgs) pre-commit;
};
checks = self.packages // {
Expand All @@ -27,7 +28,7 @@ let
};
all-tools-eval =
let
config = pkgs.lib.evalModules {
config = lib.evalModules {
modules = [
../modules/all-modules.nix
{
Expand All @@ -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))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't coerce null to a string.

(lib.mapAttrsToList (_: value: value.entry))
];
in
pkgs.runCommand "all-tools-eval"
{
Expand All @@ -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.
Expand All @@ -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
{
Expand Down
11 changes: 9 additions & 2 deletions nix/headache/default.nix
Original file line number Diff line number Diff line change
@@ -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
];
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing codesign on nixpkgs-stable.

});
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).
Expand Down
14 changes: 4 additions & 10 deletions nix/tools.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{ stdenv
, lib

, actionlint
, alejandra
Expand Down Expand Up @@ -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
Expand All @@ -57,7 +54,6 @@
, php82Packages
, ripsecrets ? null
, ruff ? null
, runCommand
, rustfmt
, shellcheck
, bats
Expand All @@ -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
Expand Down Expand Up @@ -115,7 +108,6 @@ in
editorconfig-checker
elixir
fprettify
git-annex
go
go-tools
golangci-lint
Expand All @@ -132,7 +124,6 @@ in
nil
nixfmt
nixpkgs-fmt
opam
ormolu
pre-commit-hook-ensure-sops
revive
Expand Down Expand Up @@ -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;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Setting these to null is kinda sketchy (meta.broken would be better) but it's what the other derivations in this file do so I left it as-is.

# 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.
Expand Down
Loading