[PATCH] RelNotes: add details on Perl module changes

From: Todd Zullinger
Date: Fri Mar 16 2018 - 18:07:56 EST


Document changes to core and non-core Perl module handling in 2.17.
---
Junio C Hamano <gitster@xxxxxxxxx> writes:

>> I haven't wordsmithed it fully, but it should say something along
>> the lines of ...
>>
>> Documentation/RelNotes/2.16.0.txt | 10 ++++++++++
>> 1 file changed, 10 insertions(+)
>
> Eh, of course the addition should go to 2.17 release notes ;-) I
> just happened to be reviewing a topic forked earlier.

Maybe something like this? I had intended to suggest a note about
NO_PERL_CPAN_FALLBACKS as well, so that's included too. I don't know if that
should be expanded to provide more of a hint to users/packagers on platforms
where these modules are harder to install, letting them know that we now have
fallbacks to Error and Mail::Address. That might allow scripts which were
previously excluded to be included on their platforms.

Documentation/RelNotes/2.17.0.txt | 14 ++++++++++++++
INSTALL | 3 ++-
2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/Documentation/RelNotes/2.17.0.txt b/Documentation/RelNotes/2.17.0.txt
index c828d37345..085bf1dba1 100644
--- a/Documentation/RelNotes/2.17.0.txt
+++ b/Documentation/RelNotes/2.17.0.txt
@@ -75,6 +75,20 @@ Performance, Internal Implementation, Development Support etc.
* The build procedure for perl/ part has been greatly simplified by
weaning ourselves off of MakeMaker.

+ * Perl 5.8 or greater has been required since Git 1.7.4 released in
+ 2010, but we continued to assume some core modules may not exist and
+ used a conditional "eval { require <<module>> }"; we no longer do
+ this. Some platforms (Fedora/RedHat/CentOS, for example) ship Perl
+ without all core modules by default (e.g. Digest::MD5, File::Temp,
+ File::Spec, Net::Domain, Net::SMTP). Users on such platforms may
+ need to install these additional modules.
+
+ * As a convenience, we install copies of Perl modules we require which
+ are not part of the core Perl distribution (e.g. Error and
+ Mail::Address). Users and packagers whose operating system provides
+ these modules can set NO_PERL_CPAN_FALLBACKS to avoid installing the
+ bundled modules.
+
* In preparation for implementing narrow/partial clone, the machinery
for checking object connectivity used by gc and fsck has been
taught that a missing object is OK when it is referenced by a
diff --git a/INSTALL b/INSTALL
index 60e515eaf7..c39006e8e7 100644
--- a/INSTALL
+++ b/INSTALL
@@ -126,7 +126,8 @@ Issues of note:
Redhat/Fedora are reported to ship Perl binary package with some
core modules stripped away (see http://lwn.net/Articles/477234/),
so you might need to install additional packages other than Perl
- itself, e.g. Time::HiRes.
+ itself, e.g. Digest::MD5, File::Spec, File::Temp, Net::Domain,
+ Net::SMTP, and Time::HiRes.

- git-imap-send needs the OpenSSL library to talk IMAP over SSL if
you are using libcurl older than 7.34.0. Otherwise you can use
--
2.17.0.rc0