diff options
author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2018-03-03 15:38:17 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-05 10:52:28 -0800 |
commit | 1aca69c0195bd4ac671e7a36cf9b967d2bcbe200 (patch) | |
tree | ede2fdd0f125402715cb472f70f0a588c8053356 /INSTALL | |
parent | 075321c0075b1ef86b98facc88bcaeefeb9584d1 (diff) |
perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
Before my 20d2a30f8f ("Makefile: replace perl/Makefile.PL with simple make rules", 2017-12-10) on an OS package that removed the private-Error.pm copy we carried around manually removing the OS's Error.pm would yield: $ git add -p Can't locate Error.pm in @INC (you may need to install the Error module) [...] Now, before this change we'll instead emit this more cryptic error: $ git add -p BUG: '/usr/share/perl5/Git/FromCPAN' should be a directory! at /usr/share/perl5/Git/Error.pm line 36. This is a confusing error. Now if the new NO_PERL_CPAN_FALLBACKS option is specified and we can't find the module we'll instead emit: $ /tmp/git/bin/git add -p BUG: The 'Error' module is not here, but NO_PERL_CPAN_FALLBACKS was set! [...] Where [...] is the lengthy explanation seen in the change below, which explains what the potential breakage is, and how to fix it. The reason for checking @@NO_PERL_CPAN_FALLBACKS@@] against the empty string in Perl is as opposed to checking for a boolean value is that that's (as far as I can tell) make's idea of a string that's set, and e.g. NO_PERL_CPAN_FALLBACKS=0 is enough to set NO_PERL_CPAN_FALLBACKS. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'INSTALL')
-rw-r--r-- | INSTALL | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/INSTALL b/INSTALL index 808e07b659..60e515eaf7 100644 --- a/INSTALL +++ b/INSTALL @@ -88,9 +88,9 @@ Issues of note: export GIT_EXEC_PATH PATH GITPERLLIB - By default (unless NO_PERL is provided) Git will ship various perl - scripts & libraries it needs. However, for simplicity it doesn't - use the ExtUtils::MakeMaker toolchain to decide where to place the - perl libraries. Depending on the system this can result in the perl + scripts. However, for simplicity it doesn't use the + ExtUtils::MakeMaker toolchain to decide where to place the perl + libraries. Depending on the system this can result in the perl libraries not being where you'd like them if they're expected to be used by things other than Git itself. @@ -102,6 +102,11 @@ Issues of note: Will result in e.g. perllibdir=/usr/share/perl/5.26.1 on Debian, perllibdir=/usr/share/perl5 (which we'd use by default) on CentOS. + - Unless NO_PERL is provided Git will ship various perl libraries it + needs. Distributors of Git will usually want to set + NO_PERL_CPAN_FALLBACKS if NO_PERL is not provided to use their own + copies of the CPAN modules Git needs. + - Git is reasonably self-sufficient, but does depend on a few external programs and libraries. Git can be used without most of them by adding the approriate "NO_<LIBRARY>=YesPlease" to the make command line or |