Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#9096 closed defect (invalid)

Without a CPAN Config.pm p5-class-autouse goes into infinite-configuration-loop

Reported by: deric@… Owned by: danielluke (Daniel J. Luke)
Priority: Normal Milestone:
Component: ports Version: 1.2
Keywords: Cc: danielluke (Daniel J. Luke)
Port:

Description

I guessed that I had to enter perl -MCPAN -e shell first to create a system-wide Config.pm. Unfortunately I lost my verbose debug output but basically it just printed:

"(1) Africa (2) Asia (3) Central America (4) Europe (5) North America (6) Oceania (7) South America Select your continent (or several nearby continents) [] Sorry! since you don't have any existing picks, you must make a geographic selection."

Over and over again as "ENTER" isn't a valid input to the question. This was with verbose debug output. To a normal user the configuration step just "hangs".

Change History (11)

comment:1 Changed 18 years ago by danielluke (Daniel J. Luke)

Owner: changed from darwinports-bugs@… to dluke@…

comment:2 Changed 18 years ago by danielluke (Daniel J. Luke)

Status: newassigned

That would probably be because of a missing dependency, I'll take a look.

Can you tell me which perl version you have installed, and if you know which other perl module p5-class-autouse was trying to install from CPAN for you?

Thanks.

comment:3 Changed 18 years ago by danielluke (Daniel J. Luke)

It looks like p5-class-autouse requires File::Spec, List::Util and Test::More, all of which are provided by the perl5.8 port.

comment:4 Changed 18 years ago by deric@…

I found the output. This was after I first tried installing svk and that seemingly just hanged at "configuring p5-class-autouse ..." as I said above. It still took a lot of CPU-time so to see what it was doing I flipped debug and verbose as below. A Google search[1] led me to an AFP548.com article[2] which explained how to get into the CPAN shell to get the site-wide configuration done.

[1] http://www.google.com/search?q=cpan%20continent%20mirrors&sourceid=mozilla2&ie=utf-8&oe=utf-8 [2] http://www.afp548.com/articles/unix/cpan2.html

sudo port -d -v install p5-class-autouse

DEBUG: Found port in file:///Users/Shared/darwinports/dports/perl/p5-class-autouse DEBUG: Changing to port directory: /Users/Shared/darwinports/dports/perl/p5-class-autouse DEBUG: Requested variant powerpc is not provided by port p5-class-autouse. DEBUG: Requested variant darwin is not provided by port p5-class-autouse. DEBUG: Requested variant macosx is not provided by port p5-class-autouse. DEBUG: Found port in file:///Users/Shared/darwinports/dports/lang/perl5.8 DEBUG: Changing to port directory: /Users/Shared/darwinports/dports/lang/perl5.8 DEBUG: Searching for dependency: perl5.8 DEBUG: Found Dependency: receipt exists for perl5.8 DEBUG: Skipping completed com.apple.main (p5-class-autouse) DEBUG: Skipping completed com.apple.unarchive (p5-class-autouse) DEBUG: Skipping completed com.apple.fetch (p5-class-autouse) DEBUG: Skipping completed com.apple.checksum (p5-class-autouse) DEBUG: Skipping completed com.apple.extract (p5-class-autouse) DEBUG: Skipping completed com.apple.patch (p5-class-autouse) ---> Configuring p5-class-autouse DEBUG: Executing com.apple.configure (p5-class-autouse) DEBUG: Assembled command: 'cd "/opt/local/var/db/dports/build/_Users_Shared_darwinports_dports_perl_p5-class-autouse/work/Class-Autouse-1.26" && /opt/local/bin/perl Makefile.PL INSTALLDIRS=vendor' * Module::AutoInstall version 1.02 * Checking for Perl dependencies... [Core Features]

  • Test::More ...loaded. (0.54 >= 0.47)
  • Carp ...loaded. (1.04)
  • base ...loaded. (2.07)
  • File::Spec ...loaded. (3.05 >= 0.80)
  • List::Util ...missing. (would need 1.18)

==> Auto-install the 1 mandatory module(s) from CPAN? [Y/n] y We have to reconfigure CPAN.pm due to following uninitialized parameters:

cpan_home, keep_source_where, build_dir, build_cache, scan_cache, index_expire, gzip, tar, unzip, make, pager, makepl_arg, make_arg, make_install_arg, urllist, inhibit_startup_message, ftp_proxy, http_proxy, no_proxy, prerequisites_policy, cache_metadata

/opt/local/lib/perl5/5.8.7/CPAN/Config.pm initialized.

CPAN is the world-wide archive of perl resources. It consists of about 100 sites that all replicate the same contents all around the globe. Many countries have at least one CPAN site already. The resources found on CPAN are easily accessible with the CPAN.pm module. If you want to use CPAN.pm, you have to configure it properly.

If you do not want to enter a dialog now, you can answer 'no' to this question and I'll try to autoconfigure. (Note: you can revisit this dialog anytime later by typing 'o conf init' at the cpan prompt.)

Are you ready for manual configuration? [yes] yes

The following questions are intended to help you with the configuration. The CPAN module needs a directory of its own to cache important index files and maybe keep a temporary mirror of CPAN files. This may be a site-wide directory or a personal directory.

I see you already have a directory

/Users/deric/.cpan

Shall we use it as the general CPAN build and cache directory?

CPAN build and cache directory? Users/deric/.cpan /Users/deric/.cpan

If you want, I can keep the source files after a build in the cpan home directory. If you choose so then future builds will take the files from there. If you don't want to keep them, answer 0 to the next question.

How big should the disk cache be for keeping the build directories with all the intermediate files?

Cache size for build directory (in MB)? [10] 10

By default, each time the CPAN module is started, cache scanning is performed to keep the cache size in sync. To prevent from this, disable the cache scanning with 'never'.

Perform cache scanning (atstart or never)? [atstart] atstart

To considerably speed up the initial CPAN shell startup, it is possible to use Storable to create a cache of metadata. If Storable is not available, the normal index mechanism will be used.

Cache metadata (yes/no)? [yes] yes

The next option deals with the charset your terminal supports. In general CPAN is English speaking territory, thus the charset does not matter much, but some of the aliens out there who upload their software to CPAN bear names that are outside the ASCII range. If your terminal supports UTF-8, you say no to the next question, if it supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it supports neither nor, your answer does not matter, you will not be able to read the names of some authors anyway. If you answer no, names will be output in UTF-8.

Your terminal expects ISO-8859-1 (yes/no)? [yes] yes

If you have one of the readline packages (Term::ReadLine::Perl, Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN shell will have history support. The next two questions deal with the filename of the history file and with its size. If you do not want to set this variable, please hit SPACE RETURN to the following question.

File to save your history? Users/deric/.cpan/histfile /Users/deric/.cpan/histfile Number of lines to save? [100] 100

The CPAN module can detect when a module that which you are trying to build depends on prerequisites. If this happens, it can build the prerequisites for you automatically ('follow'), ask you for confirmation ('ask'), or just ignore them ('ignore'). Please set your policy to one of the three values.

Policy on building prerequisites (follow, ask or ignore)? [ask] ask

The CPAN module will need a few external programs to work properly. Please correct me, if I guess the wrong path for a program. Don't panic if you do not have some of them, just press ENTER for those. To disable the use of a download program, you can type a space followed by ENTER.

Where is your gzip program? usr/bin/gzip /usr/bin/gzip Where is your tar program? usr/bin/tar /usr/bin/tar Where is your unzip program? usr/bin/unzip /usr/bin/unzip Where is your make program? usr/bin/make /usr/bin/make Warning: lynx not found in PATH Where is your lynx program? [] Warning: wget not found in PATH Where is your wget program? [] Warning: ncftpget not found in PATH Where is your ncftpget program? [] Warning: ncftp not found in PATH Where is your ncftp program? [] Where is your ftp program? usr/bin/ftp /usr/bin/ftp Warning: gpg not found in PATH Where is your gpg program? [] What is your favorite pager program? usr/bin/less /usr/bin/less What is your favorite shell?

Every Makefile.PL is run by perl in a separate process. Likewise we run 'make' and 'make install' in processes. If you have any parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass to the calls, please specify them here.

If you don't understand this question, just press ENTER.

Parameters for the 'perl Makefile.PL' command? Typical frequently used settings:

PREFIX=~/perl non-root users (please see manual for more hints)

Your choice: [] Parameters for the 'make' command? Typical frequently used setting:

-j3 dual processor system

Your choice: [] Parameters for the 'make install' command? Typical frequently used setting:

UNINST=1 to always uninstall potentially conflicting files

Your choice: []

Sometimes you may wish to leave the processes run by CPAN alone without caring about them. As sometimes the Makefile.PL contains question you're expected to answer, you can set a timer that will kill a 'perl Makefile.PL' process after the specified time in seconds.

If you set this value to 0, these processes will wait forever. This is the default and recommended setting.

Timeout for inactivity during Makefile.PL? [0] 0

If you're accessing the net via proxies, you can specify them in the CPAN configuration or via environment variables. The variable in the $CPAN::Config takes precedence.

Your ftp_proxy? Your http_proxy? Your no_proxy? Found /Users/deric/.cpan/sources/MIRRORED.BY as of Wed May 24 16:43:30 2006

I'd use that as a database of CPAN sites. If that is OK for you, please answer 'y', but if you want me to get a new database now, please answer 'n' to the following question.

Shall I use the local database in /Users/deric/.cpan/sources/MIRRORED.BY? [y] y

Now we need to know where your favorite CPAN sites are located. Push a few sites onto the array (just in case the first on the array won't work). If you are mirroring CPAN to your local workstation, specify a file: URL.

First, pick a nearby continent and country (you can pick several of each, separated by spaces, or none if you just want to keep your existing selections). Then, you will be presented with a list of URLs of CPAN mirrors in the countries you selected, along with previously selected URLs. Select some of those URLs, or just keep the old list. Finally, you will be prompted for any extra URLs -- file:, ftp:, or http: -- that host a CPAN mirror.

(1) Africa (2) Asia (3) Central America (4) Europe (5) North America (6) Oceania (7) South America Select your continent (or several nearby continents) [] Sorry! since you don't have any existing picks, you must make a geographic selection.

(1) Africa (2) Asia (3) Central America (4) Europe (5) North America (6) Oceania (7) South America Select your continent (or several nearby continents) [] Sorry! since you don't have any existing picks, you must make a geographic selection.

etc. etc.

comment:5 Changed 18 years ago by deric@…

List::Util of course is the dependency it was trying to fill.

comment:6 Changed 18 years ago by danielluke (Daniel J. Luke)

(In reply to comment #3)

  • List::Util ...missing. (would need 1.18)

Ok, well this is the problem.

Of course on my system dp provided perl includes List::Util 1.18:

% /opt/local/bin/perl -e 'use List::Util; print $List::Util::VERSION."\n";' 1.18 % port provides /opt/local/lib/perl5/5.8.8/List/Util.pm /opt/local/lib/perl5/5.8.8/List/Util.pm is provided by: perl5.8

Do you have perl 5.8.8 from darwinports installed, or do you have an older perl installed?

comment:7 Changed 18 years ago by deric@…

.1 off

port installed | grep perl5

perl5.8 @5.8.7_0 (active)

comment:8 Changed 18 years ago by deric@…

/opt/local/bin/perl -e 'use List::Util; print $List::Util::VERSION."\n";'

1.14 deric@iceage:~> port provides /opt/local/lib/perl5/5.8.7/List/Util.pm /opt/local/lib/perl5/5.8.7/List/Util.pm is provided by: perl5.8

comment:9 Changed 18 years ago by danielluke (Daniel J. Luke)

Resolution: invalid
Status: assignedclosed

(In reply to comment #6)

.1 off

port installed | grep perl5

perl5.8 @5.8.7_0 (active)

Oh, I bet 5.8.7 shipped with an older List::Util version :-\

I'm going to mark this as INVALID (as it shouldn't happen to someone running the current perl5.8 port version)

Your workaround to setup Config.pm is probably correct, though (alternatively, you could have installed a later version of List::Util by hand).

comment:10 Changed 18 years ago by deric@…

OK. Weird thing is I still haven't got >=1.18 of List::Util installed (as seen in comment #7) but the dependency was solved when CPAN got it's mirrors somehow. Perl and CPAN is certainly not my territory but what would be bad with DP installing a CPAN::Config with all or at least some default mirrors in it?

comment:11 Changed 18 years ago by danielluke (Daniel J. Luke)

(In reply to comment #9)

OK. Weird thing is I still haven't got >=1.18 of List::Util installed (as seen in comment #7) but the dependency was solved when CPAN got it's mirrors somehow.

The p5-class-autouse installer probably installed a >= 1.18 version of List::Util (but it would be in a different directory) for you.

Perl and CPAN is certainly not my territory but what would be bad with DP installing a CPAN::Config with all or at least some default mirrors in it?

I don't know, that might be a good enhancement for the perl5.8 port.

Of course, normally we don't want a port to pull in other stuff from cpan (it's better if it uses DP for its dependencies).

Note: See TracTickets for help on using tickets.