Re: [PATCH] RelNotes: add details on Perl module changes

2018-03-16 Thread Junio C Hamano
Todd Zullinger  writes:

> Document changes to core and non-core Perl module handling in 2.17.
> ...
> Maybe something like this?  I had intended to suggest a note about
> NO_PERL_CPAN_FALLBACKS as well, so that's included too.

Thanks.  A help like this in individual areas from people more
familiar than I am is greatly appreciated.



Re: [PATCH] RelNotes: add details on Perl module changes

2018-03-16 Thread Todd Zullinger
I wrote:
> Document changes to core and non-core Perl module handling in 2.17.

This should have:

Signed-off-by: Todd Zullinger 

And perhaps also:

Helped-by: Junio C Hamano 

since I borrowed liberally from your initial text. :)

> ---
> Junio C Hamano  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 <> }"; 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

-- 
Todd
~~
The secret of life is honesty and fair dealing. If you can fake that,
you've got it made.
-- Groucho Marx



[PATCH] RelNotes: add details on Perl module changes

2018-03-16 Thread Todd Zullinger
Document changes to core and non-core Perl module handling in 2.17.
---
Junio C Hamano  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 <> }"; 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