Opened 3 years ago

Last modified 3 years ago

#64928 assigned defect

upt @0.12: The package List::Util could not be found by frontend cpan

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: Korusuke (Karan Sheth)
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc: reneeotten (Renee Otten)
Port: upt

Description

I am trying to create a port for App::ccdiff. Some of its dependencies like Test::More and List::Util are not yet in MacPorts but I'm not able to get upt to create Portfiles for them. Am I doing something wrong? It's also confusing that I get a different error each time I run it.

$ upt package -f cpan -b macports --debug App::ccdiff -r -o out/
[INFO    ] [Backend] Creating MacPorts package for App::ccdiff
[INFO    ] [Backend] Dist file found at usual location
[INFO    ] [Backend] Found license Apache-2.0
[INFO    ] [Backend] Creating the directory structure in out/
[INFO    ] [Backend] Created out/perl/p5-app-ccdiff
[INFO    ] [Backend] Creating the Portfile
[INFO    ] [Backend] Checking MacPorts tree for port p5-getopt-long
[INFO    ] [Backend] Current MacPorts Version for p5-getopt-long is 2.520.0
[INFO    ] [Backend] Dependency Getopt::Long (): currently packaged, no specific version is required. Not packaging it.
[INFO    ] [Backend] Checking MacPorts tree for port p5-term-ansicolor
[INFO    ] [Backend] Current MacPorts Version for p5-term-ansicolor is 5.10.0
[INFO    ] [Backend] Dependency Term::ANSIColor (): currently packaged, no specific version is required. Not packaging it.
[INFO    ] [Backend] Checking MacPorts tree for port p5-algorithm-diff
[INFO    ] [Backend] Current MacPorts Version for p5-algorithm-diff is 1.201.0
[INFO    ] [Backend] Dependency Algorithm::Diff (>=1.190.100): at least one compatible version found in ['1.201.0']. Not packaging it.
[INFO    ] [Backend] Checking MacPorts tree for port p5-list-util
[INFO    ] [Backend] p5-list-util not found in MacPorts tree
[INFO    ] [Backend] Dependency List::Util (): currently not packaged. Packaging it.
The package List::Util could not be found by frontend cpan
$ upt package -f cpan -b macports --debug App::ccdiff -r -o out/
[INFO    ] [Backend] Creating MacPorts package for App::ccdiff
[INFO    ] [Backend] Dist file found at usual location
[INFO    ] [Backend] Found license Apache-2.0
[INFO    ] [Backend] Creating the directory structure in out/
[INFO    ] [Backend] Created out/perl/p5-app-ccdiff
[INFO    ] [Backend] Creating the Portfile
[INFO    ] [Backend] Checking MacPorts tree for port p5-capture-tiny
[INFO    ] [Backend] Current MacPorts Version for p5-capture-tiny is 0.480.0
[INFO    ] [Backend] Dependency Capture::Tiny (): currently packaged, no specific version is required. Not packaging it.
[INFO    ] [Backend] Checking MacPorts tree for port p5-test-more
[INFO    ] [Backend] p5-test-more not found in MacPorts tree
[INFO    ] [Backend] Dependency Test::More (): currently not packaged. Packaging it.
The package Test::More could not be found by frontend cpan
$ upt package -f cpan -b macports --debug App::ccdiff -r -o out/
[INFO    ] [Backend] Creating MacPorts package for App::ccdiff
[INFO    ] [Backend] Dist file found at usual location
[INFO    ] [Backend] Found license Apache-2.0
[INFO    ] [Backend] Creating the directory structure in out/
[INFO    ] [Backend] Created out/perl/p5-app-ccdiff
[INFO    ] [Backend] Creating the Portfile
[INFO    ] [Backend] Checking MacPorts tree for port p5-config
[INFO    ] [Backend] p5-config not found in MacPorts tree
[INFO    ] [Backend] Dependency Config (): currently not packaged. Packaging it.
The package Config could not be found by frontend cpan
$ upt package -f cpan -b macports --debug App::ccdiff -r -o out/
[INFO    ] [Backend] Creating MacPorts package for App::ccdiff
[INFO    ] [Backend] Dist file found at usual location
[INFO    ] [Backend] Found license Apache-2.0
[INFO    ] [Backend] Creating the directory structure in out/
[INFO    ] [Backend] Created out/perl/p5-app-ccdiff
[INFO    ] [Backend] Creating the Portfile
[INFO    ] [Backend] Checking MacPorts tree for port p5-extutils-makemaker
[INFO    ] [Backend] Current MacPorts Version for p5-extutils-makemaker is 7.640.0
[INFO    ] [Backend] Dependency ExtUtils::MakeMaker (): currently packaged, no specific version is required. Not packaging it.
[INFO    ] [Backend] Checking MacPorts tree for port p5-charnames
[INFO    ] [Backend] p5-charnames not found in MacPorts tree
[INFO    ] [Backend] Dependency charnames (): currently not packaged. Packaging it.
The package charnames could not be found by frontend cpan

Change History (4)

comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

I think I've understood that "Config" and "charnames" are things bundled with perl already so I don't need to worry about making ports for those. So it's just List::Util and Test::More. But I don't understand why upt says it can't find them when they're right there on metacpan. Is upt looking at a different web site?

comment:2 in reply to:  1 ; Changed 3 years ago by reneeotten (Renee Otten)

Replying to ryandesign:

I think I've understood that "Config" and "charnames" are things bundled with perl already so I don't need to worry about making ports for those. So it's just List::Util and Test::More. But I don't understand why upt says it can't find them when they're right there on metacpan. Is upt looking at a different web site?

upt is looking at https://fastapi.metacpan.org/v1/release/<name>, where name is the package name that has the :: replaced by -. I'm by no means a Perl expert, but it seems to me the issue here is that List::Utils is not the actual package name, but a module provided by Scalar-List-Utils; so that's likely what you'll need to package. Similarly, Test::More is a module provided by Test-Simple.

[edit: both these ports are already present in MacPorts: `p5-scalar-list-utils` and `p5-test-simple`]

Regarding the varying error message - I cannot really remember anymore from a few summers ago, but the recursive option might not be deterministic (i.e., it appears to check the dependencies in a semi-random order). One could look into that to find out if that's indeed true and fix it.

Last edited 3 years ago by reneeotten (Renee Otten) (previous) (diff)

comment:3 Changed 3 years ago by reneeotten (Renee Otten)

Cc: reneeotten added

comment:4 in reply to:  2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to reneeotten:

it seems to me the issue here is that List::Utils is not the actual package name, but a module provided by Scalar-List-Utils; so that's likely what you'll need to package. Similarly, Test::More is a module provided by Test-Simple.

[edit: both these ports are already present in MacPorts: `p5-scalar-list-utils` and `p5-test-simple`]

Thanks! That must be it.

So, should upt be able to recognize and handle this situation?

Or is App::ccdiff at fault for specifying a "nonexistent" dependency?

Note: See TracTickets for help on using tickets.