Skip Menu |

This queue is for tickets about the Devel-PatchPerl CPAN distribution.

Report information
The Basics
Id: 108689
Status: resolved
Worked: 30 min
Priority: 0/
Queue: Devel-PatchPerl

People
Owner: BINGOS [...] cpan.org
Requestors: Mohammed_ElAfifi [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.38
Fixed in: (no value)



Subject: patchlevel.h modified when no changes are made to perl sources
I ran into this problem while trying to build perl blead sources using perlbrew. - https://metacpan.org/pod/distribution/App-perlbrew/bin/perlbrew - http://perlbrew.pl/ During building perl, perlbrew calls/invokes some functionality from Devel::PatchPerl which in turn modifies patchlevel.h in the top directory of perl blead sources(although no other source files are ever touched). This causes two tests to fail in porting/authors.t and porting/pending-author.t. Mohammed El-Afifi <mohammed_elafifi@yahoo.com> not found in AUTHORS porting/authors.t ................................................. Failed 1/991 subtests Mohammed El-Afifi <mohammed_elafifi@yahoo.com> not found in AUTHORS porting/pending-author.t .......................................... Failed 1/1 subtests The user name and email used are those reflected from my git user.name and user.email configuration attributes. First-time contributors and people who just want to build perl from sources are expected to get these failures as their names won't typically exist in AUTHORS file(in the top-level directory of perl sources). After a short discussion on #p5p IRC channel, I was led to believe that the problem lies partly in Devel::PatchPerl which modified patchlevel.h without a real need and partly in perlbrew calling Devel::PatchPerl in the first place. I'm going to open an issue for the latter on perlbrew issue tracker. The problem doesn't occur if I build perl blead sources manually as described at http://www.cpan.org/src/README.html. I may be wrong about my conclusion but I'd like to know if this can be handled in Devel::PatchPerl or if it's solely the caller's responsibility(perlbrew here). steps to reproduce: 1- Checkout perl blead sources. git clone git://perl5.git.perl.org/perl.git 2- Make sure perlbrew is installed. In my case I used my linux distro package manager. sudo dnf install perl-Devel-REPL 3- Prepare perlbrew environment. perlbrew init 4- Build and install perl from checked-out blead sources. perlbrew install <path-to-perl-checkout> 5- While waiting for perl build and installation to finish, inspect changes in perl checkout. chdir <path-to-perl-checkout> git status You should see perllevel.h marked as modified. Inspect its changes; it should look like: diff --git a/patchlevel.h b/patchlevel.h index dd28c67..d9ce11e 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -137,6 +137,7 @@ static const char * const local_patches[] = { ,"uncommitted-changes" #endif PERL_GIT_UNPUSHED_COMMITS /* do not remove this line */ + ,"Devel::PatchPerl 1.38" ,NULL }; 6- Later when perbrew finishes, it'll display a message about build not successful pointing to a log that can be consulted. Inspecting the log will show the failing tests shown earlier. information related to the environment: - Distribution name and version: Devel-PatchPerl-1.38 - Perl version: perl 5, version 23, subversion 5 (v5.23.5 (v5.23.4-92-ge4b57cf*)) - Operating System vendor and version: Linux dhcppc 4.2.3-200.fc22.x86_64 #1 SMP Thu Oct 8 03:23:55 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
I have just released version 1.42 of Devel::PatchPerl. It will skip amending the patchlevel.h and Configure files if it detects that the perl source tree it is working on is a Git repository. This should resolve the issues you have been experiencing. Many thanks.