On Tue, Nov 18, 2014 at 12:22:31PM -0500, Jeff King wrote: > The add-interactive system is built in perl. If you build > with NO_PERL, running "git commit --interactive" will exit > with an error and the test will fail. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > Noticed by Michael while working around gitweb failures by setting > NO_PERL. :) > > It didn't reproduce for me in my existing build directory, presumably > because I had an old git-add--interactive build product lying around. > But running the tests in a clean clone with NO_PERL set reproduces > easily. I don't think fixing this is really a high priority. You can't ever be free of odd interactions with previous build artifacts. After all, you might have a built "git-foo" from a previous version of git (or one from the future, or even an alternate reality from another branch), and our Makefile should not have to know about every previous version you may have built in the path. That is what "git clean" is for (or just using a clean build directory). But fixing this one in particular is pretty easy (and we _do_ know about the wrongly-built file; our dependencies are just incomplete): -- >8 -- Subject: Makefile: have perl scripts depend on NO_PERL setting If NO_PERL is not set, our perl scripts are built as usual. If it is set, then we build "dummy" versions that tell you git was built without perl support and exit gracefully. However, if you switch to NO_PERL in a directory with existing build artifacts, we do not notice that the files need rebuilt. We see only that they are newer than the "unimplemented.sh" wrapper and assume they are done. So doing: make make NO_PERL=Nope would result in a git-add--interactive script that uses perl (and running the test suite would make use of it). Instead, we should trigger a rebuild of the perl scripts anytime NO_PERL changes. Signed-off-by: Jeff King <peff@xxxxxxxx> --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 827006b..0fa02ff 100644 --- a/Makefile +++ b/Makefile @@ -1676,6 +1676,9 @@ git.res: git.rc GIT-VERSION-FILE $(join -DMAJOR= -DMINOR=, $(wordlist 1,2,$(subst -, ,$(subst ., ,$(GIT_VERSION))))) \ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" $< -o $@ +# This makes sure we depend on the NO_PERL setting itself. +$(patsubst %.perl,%,$(SCRIPT_PERL)): GIT-BUILD-OPTIONS + ifndef NO_PERL $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak -- 2.1.2.596.g7379948 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html