Package: git
Version: 1:2.38.1-1
Severity: normal

Dear Maintainer,

git commit 29fb2ec384a867ca577335a12f4b45c184e7b642, present in 2.38.0
and later, introduced a function that gets the number of cores from
/proc/cpuinfo. It essentially does this:

    do { local @ARGV='/proc/cpuinfo'; return
scalar(grep(/^processor\s*:/, <>)); } if -r '/proc/cpuinfo';

On s390x, the ^processor lines are like this:

processor 0: version = FF, identification = 148F67, machine = 2964

In other arches (I checked amd64, armhf and arm64), they are like this instead:

processor : 0

As a result, that function is returning 0 on s390x, and that value is
used for the number of jobs the script should execute. Since it's
zero, it exits without doing anything, and that breaks the test and
the build[3] on s390x.

The failure can also be seen in debian's s390x build[4].

I suggest this simple regexp change in t/chainlint.pl:

- do { local @ARGV='/proc/cpuinfo'; return
scalar(grep(/^processor\s*:/, <>)); } if -r '/proc/cpuinfo';
+ do { local @ARGV='/proc/cpuinfo'; return
scalar(grep(/^processor[\s\d]*:/, <>)); } if -r '/proc/cpuinfo';


1. https://github.com/git/git/commit/29fb2ec384a867ca577335a12f4b45c184e7b642
2. 
https://github.com/git/git/commit/29fb2ec384a867ca577335a12f4b45c184e7b642#diff-e7042d714d4be11a06d153e6f2daeb3c3a9766b972522baab8ba113b962086cfR574
3. 
https://launchpadlibrarian.net/635348769/buildlog_ubuntu-lunar-s390x.git_1%3A2.38.1-1ubuntu1_BUILDING.txt.gz
4. 
https://buildd.debian.org/status/fetch.php?pkg=git&arch=s390x&ver=1%3A2.38.1-1&stamp=1668068969&raw=0

Reply via email to