skaji/cpm

Fail to install ABI

Closed this issue · 3 comments

Note that I can also notice the same issue using App::cpanminus reported as miyagawa/cpanminus#609

I'm not sure how to enable some extra debug output from cpm.
It seems that installing ABI using the -g option does not install the ABI.pm file
when installing it locally we can see that only one install.json is processed...

╰─> cpm --version
cpm 0.991 (/usr/local/perl/perls/perl-5.30.1/bin/cpm)

╰─> cpm install -v --no-show-progress -g ABI
27088 DONE resolve   (0.202sec) ABI -> ABI-1.0 (from MetaDB)
27088 DONE fetch     (0.005sec) ABI-1.0 (using prebuilt)
27088 DONE install   (0.022sec) ABI-1.0 (using prebuilt)
1 distribution installed.

╰─> perldoc -lm ABI
No module found for "ABI".

Installing locally shows that there is no ABI.pm installed

╰─> cpm install -v --no-show-progress ABI
25832 DONE resolve   (0.273sec) ABI -> ABI-1.0 (from MetaDB)
25832 DONE fetch     (0.005sec) ABI-1.0 (using prebuilt)
25832 DONE resolve   (0.051sec) Module::Build -> Module-Build-0.4231 (from MetaDB)
25832 DONE fetch     (0.034sec) Module-Build-0.4231 (using prebuilt)
25832 DONE install   (0.075sec) Module-Build-0.4231 (using prebuilt)
25832 DONE install   (0.013sec) ABI-1.0 (using prebuilt)
2 distributions installed.

╰─> find local
local
local/bin
local/bin/config_data
local/lib
local/lib/perl5
local/lib/perl5/Module
local/lib/perl5/Module/Build.pm
local/lib/perl5/Module/Build
local/lib/perl5/Module/Build/Authoring.pod
local/lib/perl5/Module/Build/ConfigData.pm
local/lib/perl5/Module/Build/Config.pm
local/lib/perl5/Module/Build/Compat.pm
local/lib/perl5/Module/Build/Platform
local/lib/perl5/Module/Build/Platform/MacOS.pm
local/lib/perl5/Module/Build/Platform/Unix.pm
local/lib/perl5/Module/Build/Platform/VOS.pm
local/lib/perl5/Module/Build/Platform/VMS.pm
local/lib/perl5/Module/Build/Platform/Default.pm
local/lib/perl5/Module/Build/Platform/cygwin.pm
local/lib/perl5/Module/Build/Platform/os2.pm
local/lib/perl5/Module/Build/Platform/aix.pm
local/lib/perl5/Module/Build/Platform/darwin.pm
local/lib/perl5/Module/Build/Platform/Windows.pm
local/lib/perl5/Module/Build/Cookbook.pm
local/lib/perl5/Module/Build/Notes.pm
local/lib/perl5/Module/Build/Dumper.pm
local/lib/perl5/Module/Build/PPMMaker.pm
local/lib/perl5/Module/Build/API.pod
local/lib/perl5/Module/Build/Bundling.pod
local/lib/perl5/Module/Build/PodParser.pm
local/lib/perl5/Module/Build/Base.pm
local/lib/perl5/5.30.1
local/lib/perl5/5.30.1/darwin-2level
local/lib/perl5/darwin-2level
local/lib/perl5/darwin-2level/.meta
local/lib/perl5/darwin-2level/.meta/ABI-1.0
local/lib/perl5/darwin-2level/.meta/ABI-1.0/MYMETA.json
local/lib/perl5/darwin-2level/.meta/ABI-1.0/install.json
local/lib/perl5/darwin-2level/.meta/Module-Build-0.4231
local/lib/perl5/darwin-2level/.meta/Module-Build-0.4231/MYMETA.json
local/lib/perl5/darwin-2level/.meta/Module-Build-0.4231/install.json
local/lib/perl5/darwin-2level/auto
local/lib/perl5/darwin-2level/auto/Module
local/lib/perl5/darwin-2level/auto/Module/Build
local/lib/perl5/darwin-2level/auto/Module/Build/.packlist
local/lib/perl5/darwin-2level/auto/ABI
local/lib/perl5/darwin-2level/auto/ABI/.packlist

When running the traditional perl Makefile.PL && make && make install invocation it seems to do the right job

╰─> perl Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for ABI
Writing MYMETA.yml and MYMETA.json

╰─> makefile
cp ABI.pm blib/lib/ABI.pm
Manifying 1 pod document

╰─> make install
Manifying 1 pod document
Installing /usr/local/perl/perls/perl-5.30.1/lib/site_perl/5.30.1/ABI.pm
Installing /usr/local/perl/perls/perl-5.30.1/man/man3/ABI.3
Appending installation info to /usr/local/perl/perls/perl-5.30.1/lib/5.30.1/darwin-2level/perllocal.pod
skaji commented

https://metacpan.org/release/ABI has both Build.PL and Makefile.PL.
cpm (and also cpanm) prefers Build.PL.

It seems that Build.PL in ABI is "broken".

❯ wget https://cpan.metacpan.org/authors/id/M/MA/MALAY/ABI-1.0.tar.gz
❯ tar xzf ABI-1.0.tar.gz
❯ perl Build.PL
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'ABI' version '1.0'
❯ ./Build
Building ABI
❯ find blib
blib
blib/arch

thanks for your feedback, that explains the issue and this seems an ABI bug
I'm going to report it to ABI and we can probably close this case here
thanks

I reported it there https://rt.cpan.org/Ticket/Display.html?id=132409
but I doubt that any action is going to be taken regarding the fact that the last module upload was a few years old...