Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 632566 - dev-perl/IO-Socket-SSL-2.48.0 fails to build with >=dev-libs/openssl-1.1.0
Summary: dev-perl/IO-Socket-SSL-2.48.0 fails to build with >=dev-libs/openssl-1.1.0
Status: RESOLVED TEST-REQUEST
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: openssl-1.1
  Show dependency tree
 
Reported: 2017-09-30 17:23 UTC by Markus Wernig
Modified: 2018-09-28 01:34 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Complete build log (IO-Socket-SSL-2.48.0-build.log,2.20 KB, text/x-log)
2017-09-30 17:24 UTC, Markus Wernig
Details
Net-SSLeay build log (Net-SSLeay-1.810.0-build.log,56.83 KB, text/x-log)
2017-10-01 10:17 UTC, Markus Wernig
Details
Net-SSLeay-1.810.0-openssl-1.1.patch (Net-SSLeay-1.810.0-openssl-1.1.patch,4.13 KB, patch)
2017-10-18 06:58 UTC, Mark Wright
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Wernig 2017-09-30 17:23:50 UTC
ebuild fails already in the configure phase:

 * Package:    dev-perl/IO-Socket-SSL-2.48.0
 * Repository: gentoo
 * Maintainer: perl@gentoo.org
 * USE:        abi_x86_64 amd64 elibc_glibc kernel_linux userland_GNU
 * FEATURES:   preserve-libs sandbox userpriv usersandbox
>>> Unpacking source...
>>> Unpacking IO-Socket-SSL-2.048.tar.gz to /var/tmp/portage/dev-perl/IO-Socket-SSL-2.48.0/work
>>> Source unpacked in /var/tmp/portage/dev-perl/IO-Socket-SSL-2.48.0/work
>>> Preparing source in /var/tmp/portage/dev-perl/IO-Socket-SSL-2.48.0/work/IO-Socket-SSL-2.048 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/dev-perl/IO-Socket-SSL-2.48.0/work/IO-Socket-SSL-2.048 ...
 * Using ExtUtils::MakeMaker
 * perl Makefile.PL PREFIX=/usr INSTALLDIRS=vendor INSTALLMAN3DIR=none DESTDIR=/var/tmp/portage/dev-perl/IO-Socket-SSL-2.48.0/image/
perl: symbol lookup error: /usr/lib64/perl5/vendor_perl/5.24.3/x86_64-linux-thread-multi/auto/Net/SSLeay/SSLeay.so: undefined symbol: SSLeay_version
 * ERROR: dev-perl/IO-Socket-SSL-2.48.0::gentoo failed (configure phase):
 *   Unable to build!


Reproducible: Always
Comment 1 Markus Wernig 2017-09-30 17:24:42 UTC
Created attachment 497256 [details]
Complete build log
Comment 2 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-09-30 17:33:06 UTC
> auto/Net/SSLeay/SSLeay.so: undefined symbol: SSLeay_version

This is a broken dev-perl/Net-SSLeay, not anything IO-Socket-SSL

What's your dev-perl/Net-SSLeay version?
Comment 3 Markus Wernig 2017-09-30 17:38:49 UTC
1.810.0, recompiled several times without issues.
Comment 4 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-09-30 17:40:45 UTC
(In reply to Markus Wernig from comment #3)
> 1.810.0, recompiled several times without issues.

Can you do FEATURES="test" for Net-SSLeay? Does that pass OK?
Comment 5 Markus Wernig 2017-09-30 17:48:38 UTC
I assume you want that against openssl-1.1.0f? Will take some time, since I've downgraded to 1.0.2l and the system is currently struggling with compiling gcc-6.4 ...
Will report back.
Comment 6 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-09-30 18:06:53 UTC
(In reply to Markus Wernig from comment #5)
> I assume you want that against openssl-1.1.0f? 

Yeah. Thanks.
Comment 7 Markus Wernig 2017-10-01 10:16:27 UTC
(In reply to Kent Fredric (IRC: kent\n) from comment #4)
> (In reply to Markus Wernig from comment #3)
> > 1.810.0, recompiled several times without issues.
> 
> Can you do FEATURES="test" for Net-SSLeay? Does that pass OK?

Back again.
No, that does not pass, with undefined symbol errors:

...

chmod 755 blib/arch/auto/Net/SSLeay/SSLeay.so
"/usr/bin/perl" "-Iinc" -MExtUtils::Command::MM -e 'cp_nonempty' -- SSLeay.bs blib/arch/auto/Net/SSLeay/SSLeay.bs 644
>>> Source compiled.
>>> Test phase: dev-perl/Net-SSLeay-1.810.0
 * Test::Harness Jobs=3
make -j3 test TEST_VERBOSE=0 
Running Mkbootstrap for Net::SSLeay ()
chmod 644 "SSLeay.bs"
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/local/*.t t/handle/local/*.t
===(       1;0  0/1  1/1  0/? )=========================================
#   Failed test 'use Net::SSLeay;'
#   at t/local/03_use.t line 8.
#     Tried to use 'Net::SSLeay'.
#     Error:  Can't load '/var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/arch/auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: /var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/arch/auto/Net/SSLeay/SSLeay.so: undefined symbol: TLSv1_method at /usr/lib64/perl5/5.24.3/x86_64-linux-thread-multi/DynaLoader.pm line 193.
#  at t/local/03_use.t line 8.
# Compilation failed in require at t/local/03_use.t line 8.
# BEGIN failed--compilation aborted at t/local/03_use.t line 8.
# Looks like you failed 1 test of 1.
t/local/03_use.t ....................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 
===(       2;0  1/1  0/?  0/? )=========================================
#   Failed test 'use Net::SSLeay::Handle;'
#   at t/handle/local/05_use.t line 8.
#     Tried to use 'Net::SSLeay::Handle'.
#     Error:  Can't load '/var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/arch/auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: /var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/arch/auto/Net/SSLeay/SSLeay.so: undefined symbol: TLSv1_method at /usr/lib64/perl5/5.24.3/x86_64-linux-thread-multi/DynaLoader.pm line 193.
#  at /var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/lib/Net/SSLeay/Handle.pm line 7.
# Compilation failed in require at /var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/lib/Net/SSLeay/Handle.pm line 7.
# BEGIN failed--compilation aborted at /var/tmp/portage/dev-perl/Net-SSLeay-1.810.0/work/Net-SSLeay-1.81/blib/lib/Net/SSLeay/Handle.pm line 7.
# Compilation failed in require at t/handle/local/05_use.t line 8.
# BEGIN failed--compilation aborted at t/handle/local/05_use.t line 8.
# Looks like you failed 1 test of 1.
t/handle/local/05_use.t ................ Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

...

(Complete build log attached)
Comment 8 Markus Wernig 2017-10-01 10:17:01 UTC
Created attachment 497292 [details]
Net-SSLeay build log
Comment 9 MrPenguin07 2017-10-12 07:23:45 UTC
Confirming same issue, on a new install.

# package.unmask# required by net-nds/openldap-2.4.45::gentoo[ssl,-gnutls,-libressl]
# required by net-misc/curl-7.56.0::gentoo[ldap]
# required by dev-util/cmake-3.9.4::gentoo
# required by sys-devel/llvm-5.0.0::gentoo
# required by media-libs/mesa-17.2.2::gentoo[-opencl,-video_cards_radeonsi,-video_cards_radeon,llvm,-video_cards_r600]
# required by dev-qt/qtgui-5.9.2::gentoo[egl]
# required by dev-qt/qtwidgets-5.9.2::gentoo
# required by app-crypt/pinentry-1.0.0-r1::gentoo[qt5]
# required by app-crypt/gnupg-2.2.1::gentoo
# required by dev-vcs/git-2.14.2::gentoo[gpg]
# required by dev-vcs/git (argument)
# /usr/portage/profiles/package.mask:
# Lars Wendler <polynomial-c@gentoo.org> (26 Aug 2016)
# Masked while being tested and reverse deps aren't fully compatible
=dev-libs/openssl-1.1.0f

So I was recommended by portage to unmask openssl, and then ran straight into this bug.
Comment 10 Mark Wright gentoo-dev 2017-10-17 13:05:25 UTC
dev-perl/Net-SSLeay-1.810.0 has undefined symbols when built with dev-libs/openssl-1.1.0f

# ldd -r /usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so | grep _method
undefined symbol: TLSv1_method  (/usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so)
undefined symbol: TLSv1_1_method        (/usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so)
undefined symbol: TLSv1_2_method        (/usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so)
# fquery b /usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so
dev-perl/Net-SSLeay-1.810.0 (/usr/lib64/perl5/vendor_perl/5.26.1/x86_64-linux/auto/Net/SSLeay/SSLeay.so)

#
Comment 11 Mark Wright gentoo-dev 2017-10-18 06:58:19 UTC
Created attachment 499052 [details, diff]
Net-SSLeay-1.810.0-openssl-1.1.patch

Patch by me to dev-perl/Net-SSLeay-1.810.0 that allows dev-perl/IO-Socket-SSL-2.48.0 to build with dev-libs/openssl-1.1.0f.  However dev-perl/IO-Socket-SSL-2.48.0 fails 2 tests which are in code that I tweaked in my patch, but with a quick look I didn't spot if I did anything wrong:
                                                                        t/plain_upgrade_downgrade.t ....... ok
===(     200;15   9/15   6/16  2/3   7/27  3/?   0/79  0/? )===============(     202;15  10/15   6/16  2/3   7/27  3/?   1/79  0/?  0/? )=======# looks like OpenSSL was compiled without SSLv3 support

#   Failed test 'accept TLSv1 with TLSv1'
#   at t/protocol_version.t line 133.
#          got: 'TLSv1_2'
#     expected: 'TLSv1'

#   Failed test 'accept TLSv1_1 with TLSv1_1'
#   at t/protocol_version.t line 133.
#          got: 'TLSv1_2'
#     expected: 'TLSv1_1'
# Looks like you failed 2 tests of 7.
                                                                        t/protocol_version.t .............. Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/7 subtests
Comment 12 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-10-26 02:19:01 UTC
(In reply to Mark Wright from comment #11)
> Created attachment 499052 [details, diff] [details, diff]
> Net-SSLeay-1.810.0-openssl-1.1.patch
> 
> Patch by me to dev-perl/Net-SSLeay-1.810.0 that allows
> dev-perl/IO-Socket-SSL-2.48.0 to build with dev-libs/openssl-1.1.0f. 
> However dev-perl/IO-Socket-SSL-2.48.0 fails 2 tests which are in code that I
> tweaked in my patch, but with a quick look I didn't spot if I did anything
> wrong:
>                                                                        
> t/plain_upgrade_downgrade.t ....... ok
> ===(     200;15   9/15   6/16  2/3   7/27  3/?   0/79  0/? )===============(
> 202;15  10/15   6/16  2/3   7/27  3/?   1/79  0/?  0/? )=======# looks like
> OpenSSL was compiled without SSLv3 support
> 
> #   Failed test 'accept TLSv1 with TLSv1'
> #   at t/protocol_version.t line 133.
> #          got: 'TLSv1_2'
> #     expected: 'TLSv1'
> 
> #   Failed test 'accept TLSv1_1 with TLSv1_1'
> #   at t/protocol_version.t line 133.
> #          got: 'TLSv1_2'
> #     expected: 'TLSv1_1'
> # Looks like you failed 2 tests of 7.
>                                                                        
> t/protocol_version.t .............. Dubious, test returned 2 (wstat 512,
> 0x200)
> Failed 2/7 subtests

I suspect that problem might go away based on reading the changes for IO-Socket-SSL 2.520.0 ( Just pushed )

I've not been brave enough to test OpenSSL 1.1 yet so if you can confirm that, it would be great :)
Comment 13 Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2018-09-28 01:34:16 UTC
Please re-open if you can replicate this issue with the latest versions of Net-SSLeay and IO-Socket-SSL, thanks.