Bug#681026: perl-modules: Installation of modules via CPAN fails due to broken dependency logic

Vincent Lefevre vincent at vinc17.net
Tue Jul 10 01:44:17 UTC 2012


Package: perl-modules
Version: 5.14.2-12
Severity: normal

When I try to install Sys::Info::Driver::Linux under my home directory
via CPAN while nothing is installed yet there, I get a failure saying
that some dependency is not OK, even though the module in question has
just been installed with success. A second try succeeds, though.

To reproduce the problem, remove the ~/perl5 directory if there is one,
and run the following script:

------------------------------------------------------------
#!/bin/sh

if [ -d $HOME/perl5 ]; then
  echo "Remove the perl5 directory for the test" >&2
  exit 1
fi

build()
{
  cpan -i Sys::Info::Driver::Linux 2>&1
  echo "Exit status: $?"
}

build > cpan1
build > cpan2
------------------------------------------------------------

The first build fails, complaining that

  Tests succeeded but one dependency not OK (Unix::Processors)

even though Unix::Processors has been installed with success (as seen
in the cpan1 file). The error messages come from:

  /usr/share/perl/5.14.2/CPAN/Distribution.pm

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.4-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=POSIX, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages perl-modules depends on:
ii  libclass-isa-perl  0.36-3
ii  libswitch-perl     2.16-2
ii  perl               5.14.2-12

perl-modules recommends no packages.

Versions of packages perl-modules suggests:
ii  libpod-plainer-perl  1.03-1

-- no debconf information
-------------- next part --------------
Going to read '/home/vinc17/.cpan/Metadata'
  Database was generated on Sun, 08 Jul 2012 23:58:03 GMT
Running install for module 'Sys::Info::Driver::Linux'
Running make for B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
Checksum for /home/vinc17/.cpan/sources/authors/id/B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz ok

  CPAN.pm: Going to build B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz

Checking prerequisites...
  requires:
    !  Sys::Info::Base is not installed
    !  Unix::Processors is not installed
  build_requires:
    !  Test::Sys::Info is not installed

ERRORS/WARNINGS FOUND IN PREREQUISITES.  You may wish to install the versions
of the modules indicated above before proceeding with this installation

Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Sys-Info-Driver-Linux' version '0.7900'
----  Unsatisfied dependencies detected during ----
---- BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz ----
    Test::Sys::Info [build_requires]
    Unix::Processors [requires]
    Sys::Info::Base [requires]
Running Build test
  Delayed until after prerequisites
Running Build install
  Delayed until after prerequisites
Running install for module 'Test::Sys::Info'
Running make for B/BU/BURAK/Test-Sys-Info-0.20.tar.gz
Checksum for /home/vinc17/.cpan/sources/authors/id/B/BU/BURAK/Test-Sys-Info-0.20.tar.gz ok

  CPAN.pm: Going to build B/BU/BURAK/Test-Sys-Info-0.20.tar.gz

Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Test-Sys-Info' version '0.20'
Building Test-Sys-Info
  BURAK/Test-Sys-Info-0.20.tar.gz
  ./Build -- OK
'YAML' not installed, will not store persistent state
Running Build test
t/03-basic.t .......... ok
t/201-pod.t ........... skipped: Errors detected: Test::Pod is required for testing POD
t/202-pod-coverage.t .. skipped: Test::Pod::Coverage required for testing pod coverage
All tests successful.
Files=3, Tests=1,  0 wallclock secs ( 0.02 usr  0.02 sys +  0.08 cusr  0.01 csys =  0.13 CPU)
Result: PASS
  BURAK/Test-Sys-Info-0.20.tar.gz
  ./Build test -- OK
Running Build install
Building Test-Sys-Info
Installing /home/vinc17/perl5/lib/perl5/Test/Sys/Info.pm
Installing /home/vinc17/perl5/lib/perl5/Test/Sys/Info/Driver.pm
Installing /home/vinc17/perl5/man/man3/Test::Sys::Info::Driver.3pm
Installing /home/vinc17/perl5/man/man3/Test::Sys::Info.3pm
  BURAK/Test-Sys-Info-0.20.tar.gz
  ./Build install  -- OK
Running install for module 'Unix::Processors'
Running make for W/WS/WSNYDER/Unix-Processors-2.042.tar.gz
Checksum for /home/vinc17/.cpan/sources/authors/id/W/WS/WSNYDER/Unix-Processors-2.042.tar.gz ok

  CPAN.pm: Going to build W/WS/WSNYDER/Unix-Processors-2.042.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for Unix::Processors
Writing MYMETA.yml
/usr/bin/perl /usr/share/perl/5.14/ExtUtils/xsubpp  -typemap /usr/share/perl/5.14/ExtUtils/typemap -typemap typemap  Processors.xs > Processors.xsc && mv Processors.xsc Processors.c
cp Processors.pm blib/lib/Unix/Processors.pm
cp Processors/Info.pm blib/lib/Unix/Processors/Info.pm
Running Mkbootstrap for Unix::Processors ()
chmod 644 Processors.bs
cp Processors.bs blib/arch/auto/Unix/Processors/Processors.bs
chmod 644 blib/arch/auto/Unix/Processors/Processors.bs
cc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"2.042\" -DXS_VERSION=\"2.042\" -fPIC "-I/usr/lib/perl/5.14/CORE"   Processors.c
rm -f blib/arch/auto/Unix/Processors/Processors.so
cc  -shared -L/usr/local/lib -fstack-protector Processors.o  -o blib/arch/auto/Unix/Processors/Processors.so 	\
	     	\
	  
chmod 755 blib/arch/auto/Unix/Processors/Processors.so
Manifying blib/man3/Unix::Processors.3pm
Manifying blib/man3/Unix::Processors::Info.3pm
  WSNYDER/Unix-Processors-2.042.tar.gz
  /usr/bin/make -j2 -j2 -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_pod.t ....... ok
t/01_manifest.t .. ok
t/20_test.t ...... ok
All tests successful.
Files=3, Tests=11,  1 wallclock secs ( 0.03 usr  0.00 sys +  0.06 cusr  0.00 csys =  0.09 CPU)
Result: PASS
  WSNYDER/Unix-Processors-2.042.tar.gz
  /usr/bin/make test -- OK
Running make install
Manifying blib/man3/Unix::Processors.3pm
Manifying blib/man3/Unix::Processors::Info.3pm
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/vinc17/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Unix/Processors/Processors.bs
Installing /home/vinc17/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Unix/Processors/Processors.so
Installing /home/vinc17/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/Unix/Processors.pm
Installing /home/vinc17/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/Unix/Processors/Info.pm
Installing /home/vinc17/perl5/man/man3/Unix::Processors.3pm
Installing /home/vinc17/perl5/man/man3/Unix::Processors::Info.3pm
Appending installation info to /home/vinc17/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod
  WSNYDER/Unix-Processors-2.042.tar.gz
  /usr/bin/make install  -- OK
Running install for module 'Sys::Info::Base'
Running make for B/BU/BURAK/Sys-Info-Base-0.7802.tar.gz
Checksum for /home/vinc17/.cpan/sources/authors/id/B/BU/BURAK/Sys-Info-Base-0.7802.tar.gz ok

  CPAN.pm: Going to build B/BU/BURAK/Sys-Info-Base-0.7802.tar.gz

Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Sys-Info-Base' version '0.7802'
Building Sys-Info-Base
  BURAK/Sys-Info-Base-0.7802.tar.gz
  ./Build -- OK
Running Build test
t/03-basic.t .......... ok
t/201-pod.t ........... skipped: Errors detected: Test::Pod is required for testing POD
t/202-pod-coverage.t .. skipped: Test::Pod::Coverage required for testing pod coverage
All tests successful.
Files=3, Tests=8,  1 wallclock secs ( 0.03 usr  0.01 sys +  0.09 cusr  0.02 csys =  0.15 CPU)
Result: PASS
  BURAK/Sys-Info-Base-0.7802.tar.gz
  ./Build test -- OK
Running Build install
Building Sys-Info-Base
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Base.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Constants.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Device.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/OS.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Device/CPU.pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Device::CPU.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Constants.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Device.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::OS.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Base.3pm
  BURAK/Sys-Info-Base-0.7802.tar.gz
  ./Build install  -- OK
Running Build for B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  Has already been unwrapped into directory /home/vinc17/.cpan/build/Sys-Info-Driver-Linux-0.7900-xETUnx

  CPAN.pm: Going to build B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz

Warning: Prerequisite 'Unix::Processors => 0' for 'BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz' already built but the result looks suspicious. Skipping another build attempt, to prevent looping endlessly.
Building Sys-Info-Driver-Linux
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  ./Build -- OK
Running Build test
UNAME: Linux xvii 3.4-trunk-amd64 #1 SMP Tue Jun 26 17:23:03 UTC 2012 x86_64 GNU/Linux

t/03-basic.t .......... ok
t/201-pod.t ........... skipped: Errors detected: Test::Pod is required for testing POD
t/202-pod-coverage.t .. skipped: Test::Pod::Coverage required for testing pod coverage
All tests successful.
Files=3, Tests=66,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.13 cusr  0.03 csys =  0.18 CPU)
Result: PASS
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
Tests succeeded but one dependency not OK (Unix::Processors)
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  [dependencies] -- NA
Running Build install
  make test had returned bad status, won't install without force
Exit status: 1
-------------- next part --------------
Going to read '/home/vinc17/.cpan/Metadata'
  Database was generated on Sun, 08 Jul 2012 23:58:03 GMT
Running install for module 'Sys::Info::Driver::Linux'
Running make for B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
Checksum for /home/vinc17/.cpan/sources/authors/id/B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz ok

  CPAN.pm: Going to build B/BU/BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz

Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'Sys-Info-Driver-Linux' version '0.7900'
Building Sys-Info-Driver-Linux
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  ./Build -- OK
'YAML' not installed, will not store persistent state
Running Build test
UNAME: Linux xvii 3.4-trunk-amd64 #1 SMP Tue Jun 26 17:23:03 UTC 2012 x86_64 GNU/Linux

t/03-basic.t .......... ok
t/201-pod.t ........... skipped: Errors detected: Test::Pod is required for testing POD
t/202-pod-coverage.t .. skipped: Test::Pod::Coverage required for testing pod coverage
All tests successful.
Files=3, Tests=66,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.15 cusr  0.02 csys =  0.20 CPU)
Result: PASS
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  ./Build test -- OK
Running Build install
Building Sys-Info-Driver-Linux
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/Constants.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/Device.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/OS.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/Device/CPU.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/OS/Distribution.pm
Installing /home/vinc17/perl5/lib/perl5/Sys/Info/Driver/Linux/OS/Distribution/Conf.pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::OS::Distribution::Conf.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::Device::CPU.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::Constants.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::OS::Distribution.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::OS.3pm
Installing /home/vinc17/perl5/man/man3/Sys::Info::Driver::Linux::Device.3pm
  BURAK/Sys-Info-Driver-Linux-0.7900.tar.gz
  ./Build install  -- OK
Exit status: 0


More information about the Perl-maintainers mailing list