-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Run 'make installcheck' again #8005
Conversation
This was failing because the check for the existence of the 'installcheck' target failed silently, so the whole phase got skipped. It works by running 'make -n installcheck 2> /dev/null', which however barfs with /nix/store/039g378vc3pc3dvi9dzdlrd0i4q93qwf-binutils-2.39/bin/ld.gold: error: cannot open tests/plugins/plugintest.o: No such file or directory Fixes NixOS#8004.
8e9a1cd
to
693b1be
Compare
Wow, and I thought this was just some weirdness on my local machine. |
@@ -383,6 +383,7 @@ | |||
|
|||
doInstallCheck = finalAttrs.doCheck; | |||
installCheckFlags = "sysconfdir=$(out)/etc"; | |||
installCheckTarget = "installcheck"; # work around buggy detection in stdenv |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a Nixpkgs issue for this stdenv buggy detection?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question, FWIW I had trouble reproducing it locally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not answering your question, but I suspect from past discussions that it's from this +
which breaks make -n
(because that's magic for “recursive make” and make executes these rules regardless of -n
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it's indeed the +
that forces make -n
to execute the command anyway. I don't understand why it's there in the first place...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh huh. Good eye. That's very spooky magic...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds like some future work may be to remove the +
and see what breaks, since it's unknown and can cause subtle breakage itself 👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick blame shows it was introduced (and discussed) here: 2799fe4
(#5813)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or we just NixOS/rfcs#132 😀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh that's very interesting. And arguably Ninja and the LTO stuff should use same jobserver things too so my Meson joke is not the full story.
I wonder if the variable can just expand to put in the +
or that doesn't work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if the variable can just expand to put in the
+
or that doesn't work.
Google tells me that we might be able to hack our way out. But that's quite nasty.
Successfully created backport PR for |
Motivation
This happened because the check for the existence of the 'installcheck' target failed silently, so the whole phase got skipped. It works by running 'make -n installcheck 2> /dev/null', which however barfs with
Fixes #8004.
Context
Checklist for maintainers
Maintainers: tick if completed or explain if not relevant
tests/**.sh
src/*/tests
tests/nixos/*
Priorities
Add 👍 to pull requests you find important.