Petr Baudis <pasky@xxxxxxx> writes: > (This is also why I was a bit confused by your make test patch - it does > not "fix" anything per se since no tests directly use Git.pm.) You are right. You do not want to be testing installed version, but the one freshly built, so the patch does not have any effect, except for one case: testing before installing Git.pm for the first time anywhere yet. -I prepends the directory to the search path, so we are not testing the freshly built copy at all. Is there a way from the environment to override this behaviour, so that we can run the tests properly? I think PERL5LIB and PERLLIB are defeated by having -I there (that's why I said I liked what Fredrik did with his Python script, which appends the final installed location to the search path). I think unshift into @INC by hand (i.e. without even using use lib "$path") would do what we want, but I feel that is a bit too ugly just for the testing X-<. I suspect we would need to think this a bit more... sigh. > ...because well, they do: > > $(patsubst %.perl,%,$(SCRIPT_PERL)) : % : %.perl > rm -f $@ $@+ > sed -e '1s|#!.*perl\(.*\)|#!$(PERL_PATH_SQ)\1 -I'"$$(make -s -C perl instlibdir)"'|' \ > -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ > $@.perl >$@+ > chmod +x $@+ > mv $@+ $@ I'll need to look at why it fails for me, but the above seems to be doing the right thing, from a superficial look at least. git-fmt-merge-msg substituted like the above begins with: #!/usr/bin/perl -w -I/home/junio/git-pu/share/perl/5.8.8 because my $(prefix) is /home/junio/git-pu/ when building from "pu" branch. Then it goes on to create ~/git-pu/{lib,share}/perl/5.8.8 and does this: make -C perl install make[1]: Entering directory `/opt/git/git.git/perl' Installing /home/junio/git-pu/lib/perl/5.8.8/auto/Git/Git.so Installing /home/junio/git-pu/lib/perl/5.8.8/auto/Git/Git.bs Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /home/junio/git-pu/lib/perl/5.8.8/Git.pm Installing /home/junio/git-pu/lib/perl/5.8.8/Error.pm Installing /home/junio/git-pu/man/man3/Error.3pm Installing /home/junio/git-pu/man/man3/Git.3pm Writing /home/junio/git-pu/lib/perl/5.8.8/auto/Git/.packlist Appending installation info to /home/junio/git-pu/lib/perl/5.8.8/perllocal.pod It appears that this is needed perhaps? diff --git a/perl/Makefile.PL b/perl/Makefile.PL index 54e8b20..92c140d 100644 --- a/perl/Makefile.PL +++ b/perl/Makefile.PL @@ -3,7 +3,7 @@ use ExtUtils::MakeMaker; sub MY::postamble { return <<'MAKE_FRAG'; instlibdir: - @echo $(INSTALLSITELIB) + @echo $(INSTALLSITEARCH) MAKE_FRAG } - : 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