Re: [PATCH] test-lib.sh: set PERL5LIB instead of GITPERLLIB
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 2, 2008, 05:17 UTC
- Message-ID
- <7vfxrwa008.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <1212358587-15948-1-git-send-email-LeWiemann@gmail.com>
Lea Wiemann <lewiemann@gmail.com> writes:
Show 6 quoted lines
>>> How about [setting PERL5LIB in] test-lib.sh? >> >> Sure, I think that would be sensible. > > Actually, GITPERLLIB becomes redundant in that case, so I've simply > replaced it with PERL5LIB in test-lib.sh.
Sorry, but now you mention it, it comes back to me why we have GITPERLLIB, why the setting of GITPERLLIB in t/test-lib.sh we already have did not work, and why my "this on top of yours" was a mere workaround and not a real fix.
The fact is that Git.pm can be installed in a private path outside of where people usually install site-perl modules, and the primary Makefile has this rule to munge our perl scripts:
$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
$(QUIET_GEN)$(RM) $@ $@+ && \
INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
sed -e '1{' \
-e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
-e ' h' \
-e ' s=.*=use lib (split(/:/, $$ENV{GITPERLLIB} || "@@INSTLIBDIR@@"));=' \
-e ' H' \
-e ' x' \
-e '}' \
-e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
$@.perl >$@+ && \
chmod +x $@+ && \
mv $@+ $@so that people do not have to have that path on PERL5LIB in their environment when they use git (namely, git-send-email and other scripts that do "use Git").
The real fix to the issue, which is consistent with what 6fcca93 (Use $GITPERLLIB instead of $RUNNING_GIT_TESTS and centralize @INC munging, 2006-07-03) did, is not touch any of the t/* files (neither my "this on top of yours", nor the patch I am responding to), but to fix the build procedure of gitweb/gitweb.perl so that the above script rewriting is also applied to it.