jib / cpanplus-devel

11 stars 10 forks source link

cpan2dist Infinite Recursive Dependencies, EU::MM & Encode & Carp & Test::Simple etc. #14

Open wbraswell opened 6 years ago

wbraswell commented 6 years ago

I am unable to use cpan2dist for even simple cases, because it gets caught in a seemingly infinite loop of recursive dependencies between a relatively small set of core packages. Please help!

cpan2dist --format CPANPLUS::Dist::Fedora --verbose --keepsource --force --nobuildprereq ExtUtils::MakeMaker > ~/cpan2dist_fedora_eumm.log 2>&1

cpan2dist_fedora_eumm.log

I let it run overnight and it generated a 44MB log file w/out ever getting anywhere, for obvious reasons I have NOT attached the huge log.

For example, if you search for the test name "662-tbt-no-plan.t" in the attached log file, you will see it appear 11 times. In the huge overnight log, this particular test was run 778 times!

There are a number of other errors as well, not sure if related...

Line 694:

[ERROR] Failed to create Fedora package for 'Carp': error: Failed build dependencies:
    perl(IPC::Open3) >= 1.0103 is needed by perl-Carp-1.38-1.el7.centos.noarch
[ERROR] Unable to create a new distribution object for 'Carp::Heavy' -- cannot continue
[ERROR] Failed to install 'Carp::Heavy' as prerequisite for 'File::Temp'
[ERROR] Unable to satisfy prerequisites for 'File::Temp' -- aborting install

Line 1243:

RPM build errors:
    File not found by glob: /home/wbraswell/rpmbuild/BUILDROOT/perl-XSLoader-0.24-1.el7.centos.x86_64/usr/share/perl5/vendor_perl/*
[ERROR] Failed to create Fedora package for 'XSLoader': Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Li2NKP

Line 2416:

error: Failed build dependencies:
    perl(IPC::Open3) >= 1.0103 is needed by perl-Carp-1.38-1.el7.centos.noarch
[ERROR] Failed to create Fedora package for 'Carp': error: Failed build dependencies:
    perl(IPC::Open3) >= 1.0103 is needed by perl-Carp-1.38-1.el7.centos.noarch
[ERROR] Unable to create a new distribution object for 'Carp' -- cannot continue
[ERROR] Failed to install 'Carp' as prerequisite for 'Exporter'
[ERROR] Unable to satisfy prerequisites for 'Exporter' -- aborting install

etc...

wbraswell commented 6 years ago

More info on the machine being used:

[wbraswell@machine ~]$ cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

[wbraswell@machine ~]$ uname -a
Linux machine.foo.com 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

[wbraswell@machine ~]$ perl -V
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:

  Platform:
    osname=linux, osvers=3.10.0-514.16.1.el7.x86_64, archname=x86_64-linux-thread-multi
    uname='linux c1bm.rdu2.centos.org 3.10.0-514.16.1.el7.x86_64 #1 smp wed apr 12 15:04:24 utc 2017 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Dccdlflags=-Wl,--enable-new-dtags -Dlddlflags=-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wl,-z,relro  -DDEBUGGING=-g -Dversion=5.16.3 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5 -Dvendorarch=/usr/lib64/perl5/vendor_perl -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin -Dusesitecustomize'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.8.5 20150623 (Red Hat 4.8.5-16)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -fstack-protector'
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.17'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wl,-z,relro '

Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API USE_SITECUSTOMIZE
  Locally applied patches:
    Fedora Patch1: Removes date check, Fedora/RHEL specific
    Fedora Patch3: support for libdir64
    Fedora Patch4: use libresolv instead of libbind
    Fedora Patch5: USE_MM_LD_RUN_PATH
    Fedora Patch6: Skip hostname tests, due to builders not being network capable
    Fedora Patch7: Dont run one io test due to random builder failures
    Fedora Patch9: Fix find2perl to translate ? glob properly (RT#113054)
    Fedora Patch10: Fix broken atof (RT#109318)
    Fedora Patch13: Clear $@ before "do" I/O error (RT#113730)
    Fedora Patch14: Do not truncate syscall() return value to 32 bits (RT#113980)
    Fedora Patch15: Override the Pod::Simple::parse_file (CPANRT#77530)
    Fedora Patch16: Do not leak with attribute on my variable (RT#114764)
    Fedora Patch17: Allow operator after numeric keyword argument (RT#105924)
    Fedora Patch18: Extend stack in File::Glob::glob, (RT#114984)
    Fedora Patch19: Do not crash when vivifying $|
    Fedora Patch20: Fix misparsing of maketext strings (CVE-2012-6329)
    Fedora Patch21: Add NAME headings to CPAN modules (CPANRT#73396)
    Fedora Patch22: Fix leaking tied hashes (RT#107000) [1]
    Fedora Patch23: Fix leaking tied hashes (RT#107000) [2]
    Fedora Patch24: Fix leaking tied hashes (RT#107000) [3]
    Fedora Patch25: Fix dead lock in PerlIO after fork from thread (RT#106212)
    Fedora Patch26: Make regexp safe in a signal handler (RT#114878)
    Fedora Patch27: Update h2ph(1) documentation (RT#117647)
    Fedora Patch28: Update pod2html(1) documentation (RT#117623)
    Fedora Patch29: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)
    RHEL Patch30: Use stronger algorithm needed for FIPS in t/op/crypt.t (RT#121591)
    RHEL Patch31: Make *DBM_File desctructors thread-safe (RT#61912)
    RHEL Patch32: Use stronger algorithm needed for FIPS in t/op/taint.t (RT#123338)
    RHEL Patch33: Remove CPU-speed-sensitive test in Benchmark test
    RHEL Patch34: Make File::Glob work with threads again
    RHEL Patch35: Fix CRLF conversion in ASCII FTP upload (CPAN RT#41642)
    RHEL Patch36: Do not leak the temp utf8 copy of namepv (CPAN RT#123786)
    RHEL Patch37: Fix duplicating PerlIO::encoding when spawning threads (RT#31923)
  Built under linux
  Compiled at Aug  2 2017 17:45:03
  @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .
wbraswell commented 6 years ago

@shlomif @bingos @jib Also posted here: https://bitbucket.org/shlomif/cpanplus-dist-backends/issues/1/cpan2dist-format-cpanplus-dist-fedora

shlomif commented 6 years ago

On Sat, 30 Jun 2018 07:03:46 -0700 "William N. Braswell, Jr." notifications@github.com wrote:

@shlomif @bingos @jib Also posted here: https://bitbucket.org/shlomif/cpanplus-dist-backends/issues/1/cpan2dist-format-cpanplus-dist-fedora

Hi William!

Please see version 0.2.0 from hg default tip in bitbucket. It may fix the problem.

--

Shlomi Fish http://www.shlomifish.org/ https://github.com/sindresorhus/awesome - curated list of lists

Yesterday I asked one of my students if she knew what an encyclopedia is, and she said: “Is it something like Wikipedia?”. — http://twitter.com/alisonclement/status/8421314259

Please reply to list if it's a mailing list post - http://shlom.in/reply .

shlomif commented 6 years ago

@wbraswell : hi! I uploaded it to cpan now that the *.perl.org outage is over.

wbraswell commented 6 years ago

@shlomif I have upgraded to v0.2.0:

$ pm_version.pl CPANPLUS::Dist::Fedora
[[[ METHOD 1 ]]]
$CPANPLUS::Dist::Fedora::VERSION = 0.2.0

[[[ METHOD 2 ]]]
CPANPLUS::Dist::Fedora version 999 required--this is only version 0.2.0

Unfortunately, the problem still appears to be present, repetitive log file attached.

cpan2dist_fedora_eumm.log

As before, grepping for "662-tbt-no-plan.t" in this particular log file shows 14 times the test was run within only about 5 or 10 minutes of execution time before I killed it.

shlomif commented 6 years ago

On Sun, 01 Jul 2018 08:34:26 -0700 "William N. Braswell, Jr." notifications@github.com wrote:

@shlomif I have upgraded to v0.2.0 and the problem still appears to be present, repetitive log file attached.

cpan2dist_fedora_eumm.log

As before, grepping for "662-tbt-no-plan.t" in this particular log file shows 14 times the test was run within only about 5 or 10 minutes of execution time before I killed it.

thanks, I'll investigate further.

--

Shlomi Fish http://www.shlomifish.org/ List of Portability Libraries - http://shlom.in/port-libs

The Knights Who Say “Ni” once said “Ni” to Chuck Norris. They are now no longer The Knights Who Say “Ni”. — http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/

Please reply to list if it's a mailing list post - http://shlom.in/reply .

shlomif commented 6 years ago

@wbraswell : hi! A similar cpan2dist --format CPANPLUS::Dist::Fedora --verbose Class::Accessor command appears to succeed, but the same one with Digest::SHA fails.

wbraswell commented 6 years ago

@shlomif Thanks for the update, although I assume this does not yet affect me, so I will look for further updates from you with instructions on how to proceed.

shlomif commented 6 years ago

@wbraswell : I've now tried a similar command for EU::MM on Mageia v7 using https://metacpan.org/pod/CPANPLUS::Dist::Mageia and it worked perfectly.

wbraswell commented 6 years ago

@shlomif Okay great but how does that help me with this bug?

shlomif commented 6 years ago

On Mon, 02 Jul 2018 10:32:04 -0700 "William N. Braswell, Jr." notifications@github.com wrote:

@shlomif Okay great but how does that help me with this bug?

C-D-Fedora was forked from C-D-Mageia and we may be able to forward port the fixes or changes from it.

--

Shlomi Fish http://www.shlomifish.org/ https://github.com/sindresorhus/awesome - curated list of lists

The reward for a job well done will generally just be another, probably harder, job. — Anthony Towns

Please reply to list if it's a mailing list post - http://shlom.in/reply .

wbraswell commented 6 years ago

@shlomif Okay great, I will test it when you are ready.