noxxi / p5-io-socket-ssl

IO::Socket::SSL Perl Module
36 stars 60 forks source link

Can't Build IO::Socket::SSL In Darwin #50

Closed wbraswell closed 7 years ago

wbraswell commented 7 years ago

A failure to build IO::Socket::SSL on Darwin causes Alien::Base::ModuleBuild to fail to download the Artistic Style source tarball, which causes Alien::astyle to fail to build, which causes RPerl to fail to build.

http://www.cpantesters.org/cpan/report/b8ef9f4a-d8ed-11e6-b252-0c7aa522188b

Below is the (not exactly intuitive) error message from Alien::Base::ModuleBuild which tells us it has experienced a network failure, in this case the lack of IO::Socket::SSL...

Internal Exception at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.
Could not find any matching files at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.
Can't call method "version" on an undefined value at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 391.
noxxi commented 7 years ago

Sorry, but the information in this report do not help at all. If there is a problem to build IO::Socket::SSL I would need the build report (including all test runs) from IO::Socket::SSL and not a cpantesters report of some other module trying to use it. Apart from that I cannot even see from the cpantesters file that the problem is related to IO::Socket::SSL and I don't know how you came to this conclusion.

wbraswell commented 7 years ago

@noxxi This issue is in no way resolved, and should definitely not be marked as "closed"; usually Perl developers don't close GitHub issues before a reply is received or a fix is attempted? ... Yes, I am well aware that my original post was lacking in-depth debugging information, I am not the person with the Darwin machine, and thus I am not the person who can provide that info. The correct person is Nigel Horne, I already asked him to come over to this issue and post more information, presumably we just need to wait a little while and hopefully he will do so.

https://github.com/wbraswell/alien-astyle/issues/7

Meanwhile, here's the full raw dump from CPAN testers:

http://www.cpantesters.org/cpan/report/b8ef9f4a-d8ed-11e6-b252-0c7aa522188b?raw=1

From: "Nigel Horne " <njh [at] bandsman [dot] co [dot] uk>
Subject: UNKNOWN Alien-astyle-0.006000 v5.25.7 Mac OS X
Date: 2017-01-12T17:37:00Z

This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org

--
Dear William N. Braswell, Jr.,

This is a computer-generated report for Alien-astyle-0.006000
on perl 5.25.7, created by CPAN-Reporter-1.2018.

Thank you for uploading your work to CPAN.  However, attempting to
test your distribution gave an inconclusive result.

This could be because your distribution had an error during the make/build
stage, did not define tests, tests could not be found, because your tests were
interrupted before they finished, or because the results of the tests could not
be parsed.  You may wish to consult the CPAN Testers Wiki:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from './Build':

Building Alien-astyle
compilet-fdz3P.c:1:5: warning: no previous prototype for function 'boot_compilet' [-Wmissing-prototypes]
int boot_compilet() { return 1; }
    ^
1 warning generated.
ld: warning: object file (compilet-fdz3P.o) was built for newer OSX version (10.11) than being linked (10.4)
Internal Exception at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.
Could not find any matching files at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.
Can't call method "version" on an undefined value at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 391.

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module                   Need   Have    
    ------------------------ ------ --------
    Alien::Base              0      0.030   
    File::ShareDir           1.03   1.102   
    parent                   0      0.236   
    perl                     v5.8.0 5.025007

build_requires:

    Module                   Need   Have    
    ------------------------ ------ --------
    Alien::gmake             0.11   0.14    
    perl                     5.006  5.025007
    Test::More               0.94   1.302073

configure_requires:

    Module                   Need   Have    
    ------------------------ ------ --------
    Alien::Base::ModuleBuild 0.020  0.030   
    ExtUtils::MakeMaker      0      7.24    
    File::ShareDir           1.03   1.102   

------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_US.UTF-8
    LC_ALL = POSIX
    LDFLAGS = 
    PATH = /Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin:/Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/bin:/sw/lib/perl5/ExtUtils:/sw/bin:/am/ncbiapdata/bin:/usr/bin:/bin:/usr/X11R6/bin:/netopt/ncbi_tools/bin:/usr/local/ncbi/blast/bin:/net/traces01.be-md.ncbi.nlm.nih.gov/trace_software/vdb/mac/release/x86_64/bin
    PERL = /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin/perl5.25.7
    PERL5LIB = /Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/arch:/Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/lib:/Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/arch:/Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib:/Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/arch:/Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/lib:/Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/arch:/Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/lib:/Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/arch:/Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/lib:/Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/arch:/Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/lib:/Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/arch:/Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/lib
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 54290
    PERL5_CPAN_IS_RUNNING = 54290
    PERL5_MINISMOKEBOX = 0.58
    PERLBREW_BASHRC_VERSION = 0.77
    PERLBREW_HOME = /Users/hornenj/.perlbrew
    PERLBREW_LIB = 
    PERLBREW_MANPATH = /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/man
    PERLBREW_PATH = /Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin
    PERLBREW_PERL = perl-5.25.7
    PERLBREW_ROOT = /Users/hornenj/perl5/perlbrew
    PERLBREW_VERSION = 0.77
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_LOCAL_LIB_ROOT = 
    PERL_MM_USE_DEFAULT = 1
    SHELL = /bin/bash
    TERM = xterm-256color
    TMPDIR = /var/folders/pz/pd7y1qjs6s3cbk170cw50fjc000c61/T/
    ac_cv_path_INTLTOOL_PERL = /usr/bin/perl

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin/perl5.25.7
    $UID/$EUID = 12481 / 12481
    $GID = 14 14 5344 37191 527 37223 241
    $EGID = 14 14 5344 37191 527 37223 241

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.14    
    CPAN::Meta          2.150010
    Cwd                 3.66    
    ExtUtils::CBuilder  0.280225
    ExtUtils::Command   7.24    
    ExtUtils::Install   2.04    
    ExtUtils::MakeMaker 7.24    
    ExtUtils::Manifest  1.70    
    ExtUtils::ParseXS   3.33    
    File::Spec          3.66    
    JSON                2.90    
    JSON::PP            2.27400 
    Module::Build       0.4220  
    Module::Signature   n/a     
    Parse::CPAN::Meta   2.150010
    Test::Harness       3.36_01 
    Test::More          1.302073
    YAML                1.21    
    YAML::Syck          1.29    
    version             0.9917  

--

Summary of my perl5 (revision 5 version 25 subversion 7) configuration:

  Platform:
    osname=darwin
    osvers=15.6.0
    archname=darwin-thread-multi-2level
    uname='darwin ncbimac2027 15.6.0 darwin kernel version 15.6.0: wed nov 2 20:30:56 pdt 2016; root:xnu-3248.60.11.1.2~2release_x86_64 x86_64 '
    config_args='-de -Dprefix=/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7 -Duseithreads -Dusemultiplicity -Dusedevel -Dusedevel -Accflags=-O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -Acc=cc -Aeval:scriptdir=/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    bincompat5005=undef
  Compiler:
    cc=' cc'
    ccflags ='-fno-common -DPERL_DARWIN -O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -fno-strict-aliasing -fstack-protector-strong -I/usr/local/include'
    optimize='-O3'
    cppflags='-fno-common -DPERL_DARWIN -O2 -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -mtune=native -march=native -fomit-frame-pointer -msse2 -msse -mmmx -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fassociative-math -fno-strict-aliasing -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib /usr/lib
    libs=-lpthread -ldbm -ldl -lm -lutil -lc
    perllibs=-lpthread -ldl -lm -lutil -lc
    libc=
    so=dylib
    useshrplib=false
    libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=bundle
    d_dlsymun=undef
    ccdlflags=' '
    cccdlflags=' '
    lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl): 
  Compile-time options:
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
    PERL_IMPLICIT_CONTEXT
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    PERL_USE_DEVEL
    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_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
  Locally applied patches:
    Devel::PatchPerl 1.30
  Built under darwin
  Compiled at Dec 23 2016 07:28:31
  %ENV:
    PERL="/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin/perl5.25.7"
    PERL5LIB="/Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/arch:/Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/lib:/Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/arch:/Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib:/Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/arch:/Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/lib:/Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/arch:/Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/lib:/Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/arch:/Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/lib:/Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/arch:/Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/lib:/Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/arch:/Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/lib"
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="54290"
    PERL5_CPAN_IS_RUNNING="54290"
    PERL5_MINISMOKEBOX="0.58"
    PERLBREW_BASHRC_VERSION="0.77"
    PERLBREW_HOME="/Users/hornenj/.perlbrew"
    PERLBREW_LIB=""
    PERLBREW_MANPATH="/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/man"
    PERLBREW_PATH="/Users/hornenj/perl5/perlbrew/bin:/Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/bin"
    PERLBREW_PERL="perl-5.25.7"
    PERLBREW_ROOT="/Users/hornenj/perl5/perlbrew"
    PERLBREW_VERSION="0.77"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_LOCAL_LIB_ROOT=""
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/arch
    /Users/hornenj/.cpan/build/Alien-gmake-0.14-3/blib/lib
    /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/arch
    /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib
    /Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/arch
    /Users/hornenj/.cpan/build/Shell-Config-Generate-0.25-5/blib/lib
    /Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/arch
    /Users/hornenj/.cpan/build/Shell-Guess-0.06-5/blib/lib
    /Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/arch
    /Users/hornenj/.cpan/build/Unix-Process-1.3101-5/blib/lib
    /Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/arch
    /Users/hornenj/.cpan/build/File-chdir-0.1010-21/blib/lib
    /Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/arch
    /Users/hornenj/.cpan/build/FFI-CheckLib-0.15-5/blib/lib
    /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/lib/site_perl/5.25.7/darwin-thread-multi-2level
    /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/lib/site_perl/5.25.7
    /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/lib/5.25.7/darwin-thread-multi-2level
    /Users/hornenj/perl5/perlbrew/perls/perl-5.25.7/lib/5.25.7
    .
wbraswell commented 7 years ago

The reason I know this is an IO::Socket::SSL failure is because I have been debugging this exact issue on a large number of CPAN testers machines with the aid of the Alien team. The following (non-intuitive) Alien error message means the network connection failed:

Internal Exception at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.
Could not find any matching files at /Users/hornenj/.cpan/build/Alien-Base-0.030-5/blib/lib/Alien/Base/ModuleBuild.pm line 382.

With some amount of sleuthing, it was discovered that this error is mostly caused by a lack of IO::Socket::SSL, and has been confirmed by Nigel Horne on his Darwin machine:

nigelhorne commented a day ago
Try as I might I can't get IO::Socket::SSL to build on later Darwins.
noxxi commented 7 years ago

This issue was closed because the information needed to properly deal with the issue were lacking as described in my comment. The information are still lacking at the moment but once these information arrive I have no problem to reopen the issue.

usually Perl developers don't close GitHub issues before a reply is received or a fix is attempted?

If you really want to argue this way: I don't know what other Perl developers do with such a lack of any usable information and no obvious relation to their package as in your problem report which effectively described problems in Alien::Base but not in IO::Socket::SSL. I for myself expect the report to at least be obviously related to my package so that I can ask specific questions for more information. But please keep it on a technical level instead and provide the information which are needed to help you.

Try as I might I can't get IO::Socket::SSL to build on later Darwins.

Since you did the debugging on a large number of machines and already assume that a missing IO::Socket::SSL is the problem you should be able to provide more information about the build problems of IO::Socket::SSL (instead of Alien::Base). Please understand that I can't really help without such information since I don't have the necessary system for trying such a build myself.