dsully / perl-crypt-openssl-x509

Perl interface to OpenSSL's X509 module.
Other
25 stars 33 forks source link

1.904 errors out on CentOS 7(at least) #84

Closed vague666 closed 3 years ago

vague666 commented 3 years ago

Description

Can't install 1.904 on CentOS 7

Expected behaviour

Dist installs successfully

Actual behaviour

1.904 errors out with cc1: error: -Werror=pointer-bool-conversion: no option -Wpointer-bool-conversion 1.903 installs successfully

Operating system and version

[root@localhost ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:        7.9.2009
Codename:       Core

Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Perl version

Summary of my perl5 (revision 5 version 30 subversion 3) configuration:

  Platform:
    osname=linux
    osvers=3.10.0-1160.el7.x86_64
    archname=x86_64-linux
    uname='linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 smp mon oct 19 16:18:59 utc 2020 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/opt/perlbrew/perls/perl-5.30.3 -Aeval:scriptdir=/opt/perlbrew/perls/perl-5.30.3/bin'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=undef
    usemultiplicity=undef
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O2'
    cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
    ccversion=''
    gccversion='4.8.5 20150623 (Red Hat 4.8.5-44)'
    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='cc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.17.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.17'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_TIMES
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    PERL_PRESERVE_IVUV
    USE_64_BIT_ALL
    USE_64_BIT_INT
    USE_LARGE_FILES
    USE_LOCALE
    USE_LOCALE_COLLATE
    USE_LOCALE_CTYPE
    USE_LOCALE_NUMERIC
    USE_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
  Locally applied patches:
    Devel::PatchPerl 2.08
  Built under linux
  Compiled at Apr 21 2021 14:38:56
  %ENV:
    PERLBREW_HOME="/root/.perlbrew"
    PERLBREW_MANPATH="/opt/perlbrew/perls/perl-5.30.3/man"
    PERLBREW_PATH="/opt/perlbrew/bin:/opt/perlbrew/perls/perl-5.30.3/bin"
    PERLBREW_PERL="perl-5.30.3"
    PERLBREW_ROOT="/opt/perlbrew"
    PERLBREW_SHELLRC_VERSION="0.92"
    PERLBREW_VERSION="0.92"
  @INC:
    /opt/perlbrew/perls/perl-5.30.3/lib/site_perl/5.30.3/x86_64-linux
    /opt/perlbrew/perls/perl-5.30.3/lib/site_perl/5.30.3
    /opt/perlbrew/perls/perl-5.30.3/lib/5.30.3/x86_64-linux
    /opt/perlbrew/perls/perl-5.30.3/lib/5.30.3

OpenSSL version

OpenSSL 1.0.2k-fips 26 Jan 2017

Output, if available

cpanm (App::cpanminus) 1.7044 on perl 5.030003 built for x86_64-linux
Work directory is /root/.cpanm/work/1619011272.44182
You have make /usr/bin/make
You have LWP 6.53
You have /usr/bin/tar: tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /usr/bin/unzip
Searching Crypt::OpenSSL::X509 (== 1.904) on cpanmetadb ...
-> FAIL Finding Crypt::OpenSSL::X509 (== 1.904) on cpanmetadb failed.
--> Working on Crypt::OpenSSL::X509
Fetching http://cpan.metacpan.org/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.904.tar.gz
-> OK
Unpacking Crypt-OpenSSL-X509-1.904.tar.gz
Entering Crypt-OpenSSL-X509-1.904
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.34)
Configuring Crypt-OpenSSL-X509-1.813
Running Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Crypt::OpenSSL::X509
Writing MYMETA.yml and MYMETA.json
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.34)
Building and testing Crypt-OpenSSL-X509-1.813
cp X509.pm blib/lib/Crypt/OpenSSL/X509.pm
Running Mkbootstrap for X509 ()
chmod 644 "X509.bs"
"/opt/perlbrew/perls/perl-5.30.3/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- X509.bs blib/arch/auto/Crypt/OpenSSL/X509/X509.bs 644
"/opt/perlbrew/perls/perl-5.30.3/bin/perl" "-Iinc" "/opt/perlbrew/perls/perl-5.30.3/lib/5.30.3/ExtUtils/xsubpp"  -typemap '/opt/perlbrew/perls/perl-5.30.3/lib/5.30.3/ExtUtils/typemap' -typemap '/root/.cpanm/work/1619011272.44182/Crypt-OpenSSL-X509-1.904/typemap'  X509.xs > X509.xsc
Warning: Aliases 'subject_hash' and 'hash' have identical values in X509.xs, line 422
mv X509.xsc X509.c
cc -c  -I/usr/local/opt/openssl/include -I/usr/local/include/openssl -I/usr/include/openssl -I/usr/local/include/ssl -I/usr/local/ssl/include -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -g -Wall -Werror -Wno-error=pointer-bool-conversion   -DVERSION=\"1.904\" -DXS_VERSION=\"1.904\" -fPIC "-I/opt/perlbrew/perls/perl-5.30.3/lib/5.30.3/x86_64-linux/CORE"   X509.c
cc1: error: -Werror=pointer-bool-conversion: no option -Wpointer-bool-conversion
make: *** [X509.o] Error 1
-> FAIL Installing Crypt::OpenSSL::X509 failed. See /root/.cpanm/work/1619011272.44182/build.log for details. Retry with --force to force install it.
gmbow commented 3 years ago

I am getting the same error when trying to install version 1.904 of Crypt::OpenSSL::X509 on perl 5.32, running on Linux RedHat 6.10.

Version 1.903 installs just fine.

Install log:

cpanm (App::cpanminus) 1.7044 on perl 5.032001 built for x86_64-linux-thread-multi
Work directory is /appli/stats/P/safir/tools/.cpanm/work/1619046204.27202
You have make /usr/bin/make
You have LWP 6.52
You have /bin/tar: tar (GNU tar) 1.23
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
You have /opt/oracle/app/oracle/product/11.2.0/12.2.0.1/bin/unzip
Searching Crypt::OpenSSL::X509 () on cpanmetadb ...
--> Working on Crypt::OpenSSL::X509
Fetching http://www.cpan.org/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.904.tar.gz ... OK
Unpacking Crypt-OpenSSL-X509-1.904.tar.gz
Crypt-OpenSSL-X509-1.904/
Crypt-OpenSSL-X509-1.904/inc/
Crypt-OpenSSL-X509-1.904/X509.pm
Crypt-OpenSSL-X509-1.904/Changes
Crypt-OpenSSL-X509-1.904/MANIFEST
Crypt-OpenSSL-X509-1.904/X509.xs
Crypt-OpenSSL-X509-1.904/t/
Crypt-OpenSSL-X509-1.904/README
Crypt-OpenSSL-X509-1.904/TODO
Crypt-OpenSSL-X509-1.904/typemap
Crypt-OpenSSL-X509-1.904/certs/
Crypt-OpenSSL-X509-1.904/MANIFEST.SKIP
Crypt-OpenSSL-X509-1.904/META.yml
Crypt-OpenSSL-X509-1.904/Makefile.PL
Crypt-OpenSSL-X509-1.904/hints/
Crypt-OpenSSL-X509-1.904/hints/MSWin32.pl
Crypt-OpenSSL-X509-1.904/certs/turk.pem
Crypt-OpenSSL-X509-1.904/certs/balt.pem
Crypt-OpenSSL-X509-1.904/certs/thawte-ec.pem
Crypt-OpenSSL-X509-1.904/certs/vsign1.pem
Crypt-OpenSSL-X509-1.904/certs/thawte.pem
Crypt-OpenSSL-X509-1.904/certs/broken-utf8.pem
Crypt-OpenSSL-X509-1.904/t/pod.t
Crypt-OpenSSL-X509-1.904/t/x509-ec.t
Crypt-OpenSSL-X509-1.904/t/00-version.t
Crypt-OpenSSL-X509-1.904/t/x509.t
Crypt-OpenSSL-X509-1.904/t/utf8.t
Crypt-OpenSSL-X509-1.904/inc/Module/
Crypt-OpenSSL-X509-1.904/inc/Module/Install/
Crypt-OpenSSL-X509-1.904/inc/Module/AutoInstall.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Fetch.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Compiler.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Metadata.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/AutoInstall.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Win32.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/WriteAll.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Can.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Include.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Makefile.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/External.pm
Crypt-OpenSSL-X509-1.904/inc/Module/Install/Base.pm
Entering Crypt-OpenSSL-X509-1.904
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.44)
Running Makefile.PL
Configuring Crypt-OpenSSL-X509-1.813 ... Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Crypt::OpenSSL::X509
Writing MYMETA.yml and MYMETA.json
OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (7.44)
Building and testing Crypt-OpenSSL-X509-1.813 ... cp X509.pm blib/lib/Crypt/OpenSSL/X509.pm
Running Mkbootstrap for X509 ()
chmod 644 "X509.bs"
"/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- X509.bs blib/arch/auto/Crypt/OpenSSL/X509/X509.bs 644
"/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/bin/perl" "-Iinc" "/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/5.32.1/ExtUtils/xsubpp"  -typemap '/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/5.32.1/ExtUtils/typemap' -typemap '/appli/stats/P/safir/tools/.cpanm/work/1619046204.27202/Crypt-OpenSSL-X509-1.904/typemap'  X509.xs > X509.xsc
Warning: Aliases 'subject_hash' and 'hash' have identical values in X509.xs, line 422
mv X509.xsc X509.c
cc -c  -I/usr/local/opt/openssl/include -I/usr/local/include/openssl -I/usr/include/openssl -I/usr/local/include/ssl -I/usr/local/ssl/include -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -g -Wall -Werror -Wno-error=pointer-bool-conversion   -DVERSION=\"1.904\" -DXS_VERSION=\"1.904\" -fPIC "-I/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/5.32.1/x86_64-linux-thread-multi/CORE"   X509.c
cc1: error: -Werror=pointer-bool-conversion: No option -Wpointer-bool-conversion
make: *** [X509.o] Error 1
FAIL
! Installing Crypt::OpenSSL::X509 failed. See /appli/stats/P/safir/tools/.cpanm/work/1619046204.27202/build.log for details. Retry with --force to force install it.    

OpenSSL version:

$ openssl version
OpenSSL 1.0.2n-fips  7 Dec 2017
$

OS details :

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.10 (Santiago)
$

perl details :

$ perl -V
Summary of my perl5 (revision 5 version 32 subversion 1) configuration:

  Platform:
    osname=linux
    osvers=2.6.32-754.2.1.el6.x86_64
    archname=x86_64-linux-thread-multi
    uname='linux frmsmonadm01 2.6.32-754.2.1.el6.x86_64 #1 smp tue jul 3 16:37:52 edt 2018 x86_64 x86_64 x86_64 gnulinux '
    config_args='-de -Dprefix=/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1 -Duse64bitall -Dusethreads -Dusemultiplicity -Duse64bitint -Aeval:scriptdir=/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/bin'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='cc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2'
    optimize='-O2'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion=''
    gccversion='4.4.7 20120313 (Red Hat 4.4.7-23)'
    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='cc'
    ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib /lib/../lib64 /usr/lib/../lib64 /lib /lib64 /usr/lib64 /usr/local/lib64
    libs=-lpthread -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
    perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
    libc=libc-2.12.so
    so=so
    useshrplib=false
    libperl=libperl.a
    gnulibc_version='2.12'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'

Characteristics of this binary (from libperl):
  Compile-time options:
    HAS_TIMES
    MULTIPLICITY
    PERLIO_LAYERS
    PERL_COPY_ON_WRITE
    PERL_DONT_CREATE_GVSV
    PERL_IMPLICIT_CONTEXT
    PERL_MALLOC_WRAP
    PERL_OP_PARENT
    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_LOCALE_TIME
    USE_PERLIO
    USE_PERL_ATOF
    USE_REENTRANT_API
    USE_THREAD_SAFE_LOCALE
  Locally applied patches:
    Devel::PatchPerl 1.48
  Built under linux
  Compiled at Jan 28 2021 18:01:15
  %ENV:
    PERLBREW_BASHRC_VERSION="0.80"
    PERLBREW_HOME="/home/cdpstats/.perlbrew"
    PERLBREW_MANPATH="/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/man"
    PERLBREW_PATH="/appli/stats/P/safir/perl5/perlbrew/bin:/appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/bin"
    PERLBREW_PERL="perl-5.32.1"
    PERLBREW_ROOT="/appli/stats/P/safir/perl5/perlbrew"
    PERLBREW_VERSION="0.82"
    PERL_CPANM_HOME="/appli/stats/P/safir/tools/.cpanm"
  @INC:
    /appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/site_perl/5.32.1/x86_64-linux-thread-multi
    /appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/site_perl/5.32.1
    /appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/5.32.1/x86_64-linux-thread-multi
    /appli/stats/P/safir/perl5/perlbrew/perls/perl-5.32.1/lib/5.32.1
$
timlegge commented 3 years ago

Same error for me. The issue is that -Werror will trigger an error that should otherwise work fine. I dealt with it in Crypt-OpenSSL-Verify by using it only for AUTHOR_TESTING

https://github.com/timlegge/perl-Crypt-OpenSSL-Verify/commit/e43029a8c7eda377ef45b66179d77cec839d1a14

eserte commented 3 years ago

From all my smoker systems, compilation is successful only on freebsd 12 and 13. It fails on the following systems: Debian (wheezy, stretch, buster, bullseye), Ubuntu (16.04, 18.04, 20.04), CentOS (6, 7, 8), Fedora.

eserte commented 3 years ago

I checked 821d24c1cd877ccee873e22c39aaf025af1fea80 on a debian/jessie system and compilation was successful.

jonasbn commented 3 years ago

hi @vague666

Thanks for the error report a new version 1.9.5 has just been released and uploaded to PAUSE/CPAN.

I have adjusted the compiler options to so I no longer pass the LLVM option: -Wno-error=pointer-bool-conversion unless I detect a LLVM substring in the in gccversion string.

My C-compiler foo is not the best so I might introduce issues when tweaking this options in an attempt to address some of the reports failing tests from CPAN testers.

Thanks for reporting the issue, please let me know if this does not address your issue

vague666 commented 3 years ago

Thanks for the quick response, I'll try to upgrade from 1.903 later today :) edit: Yep, that worked better

[root@localhost ~]# cpanm Crypt::OpenSSL::X509
--> Working on Crypt::OpenSSL::X509
Fetching http://www.cpan.org/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.905.tar.gz ... OK
Configuring Crypt-OpenSSL-X509-1.813 ... OK
Building and testing Crypt-OpenSSL-X509-1.813 ... OK
Successfully installed Crypt-OpenSSL-X509-1.813 (upgraded from 1.903)
1 distribution installed