git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] RelNotes: add details on Perl module changes

From
Todd Zullinger <tmz@pobox.com>
Date
Mar 16, 2018, 22:07 UTC
Message-ID
<20180316220748.4279-1-tmz@pobox.com>
In-Reply-To
<xmqq7eqb3nct.fsf@gitster-ct.c.googlers.com>

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

Show 8 quoted lines
>> 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
Previous: Junio C HamanoNext: Todd Zullinger
Message 5 of 7 in “[ANNOUNCE] Git v2.17.0-rc0”
  1. Junio C HamanoMar 16, 2018
  2. Ævar Arnfjörð BjarmasonMar 16, 2018
  3. Junio C HamanoMar 16, 2018
  4. Junio C HamanoMar 16, 2018
  5. RelNotes: add details on Perl module changesTodd Zullinger, Mar 16, 2018
  6. Todd ZullingerMar 16, 2018
  7. Junio C HamanoMar 16, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.