[Buildroot] [PATCH] package/perl-crypt-ssleay: fix configure step

Thomas De Schampheleire patrickdepinguin at gmail.com
Wed Mar 25 09:48:41 UTC 2020


Hi Yann, François, all,

El sáb., 21 mar. 2020 a las 19:33, Thomas De Schampheleire
(<patrickdepinguin at gmail.com>) escribió:
>
> Hi Yann, all,
>
> On Sat, Mar 21, 2020, 18:47 Yann E. MORIN <yann.morin.1998 at free.fr> wrote:
>>
>> François, Thomas, All,
>>
>> Thomas: question for you about this package you recently submitted...
>>
>> On 2020-03-21 09:55 +0100, Francois Perrad spake thusly:
>> > currently, the compilation of openssl-version.c relies on include files
>> > from the system libssl-dev
>> >
>> > see http://autobuild.buildroot.org/results/306/30659feaa11e7d0daf01c41e1bc1da2b9538968c/
>> >
>> > Signed-off-by: Francois Perrad <francois.perrad at gadz.org>
>>
>> Thanks for the patch, but it seems there are a few other issues with
>> this perl package, with this defconfig:
>>
>>     BR2_arm=y
>>     BR2_cortex_a7=y
>>     BR2_TOOLCHAIN_EXTERNAL=y
>>     BR2_PACKAGE_PERL=y
>>     BR2_PACKAGE_PERL_CRYPT_SSLEAY=y
>>
>> which fails with:
>>
>>     >>> perl-crypt-ssleay 0.72 Configuring
>>     cd /home/ymorin/dev/buildroot/O/build/perl-crypt-ssleay-0.72/ && if [ -f Build.PL ] && [ MB != "EUMM" ] ; then  PERL_MM_USE_DEFAULT=1 PERL5LIB= PERL_USE_UNSAFE_INC=1 /home/ymorin/dev/buildroot/O/host/bin/perl Build.PL --config ar="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-ar" --config full_ar="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-ar" --config cc="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-gcc" --config ccflags="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  " --config optimize=" " --config ld="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-gcc" --config lddlflags="-shared " --config ldflags="" --include_dirs /home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/perl5/5.30.2/arm-linux/CORE --destdir /home/ymorin/dev/buildroot/O/target --installdirs vendor --install_path lib=/usr/lib/perl5/site_perl/5.30.2 --install_path arch=/usr/lib/perl5/site_perl/5.30.2/arm-linux --install_path bin=/usr/bin --install_path script=/usr/bin --install_path bindoc=/usr/share/man/man1 --install_path libdoc=/usr/share/man/man3 --incpath=/home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include || exit 1; else  PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps PERL5LIB= PERL_USE_UNSAFE_INC=1 /home/ymorin/dev/buildroot/O/host/bin/perl Makefile.PL AR="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-ar" FULL_AR="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-ar" CC="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-gcc" CCFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -Os  " OPTIMIZE=" " LD="/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-gcc" LDDLFLAGS="-shared " LDFLAGS="" PERL_ARCHLIB=/home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/perl5/5.30.2/arm-linux DESTDIR=/home/ymorin/dev/buildroot/O/target INSTALLDIRS=vendor INSTALLVENDORLIB=/usr/lib/perl5/site_perl/5.30.2 INSTALLVENDORARCH=/usr/lib/perl5/site_perl/5.30.2/arm-linux INSTALLVENDORBIN=/usr/bin INSTALLVENDORSCRIPT=/usr/bin INSTALLVENDORMAN1DIR=/usr/share/man/man1 INSTALLVENDORMAN3DIR=/usr/share/man/man3 --incpath=/home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include || exit 1; fi
>>
>>     *** THIS IS NOT AN ERROR, JUST A MESSAGE FOR YOUR INFORMATION ***
>>
>>         Do you really need Crypt::SSLeay?
>>
>>         Starting with version 6.02 of LWP, https support was unbundled into
>>         LWP::Protocol::https. This module specifies as one of its prerequisites
>>         IO::Socket::SSL which is automatically used by LWP::UserAgent unless
>>         this preference is overridden separately. IO::Socket::SSL is a more
>>         complete implementation, and, crucially, it allows hostname
>>         verification. Crypt::SSLeay does not support this. At this point,
>>         Crypt::SSLeay is maintained to support existing software that already
>>         depends on it.
>>
>>         However, it is possible that your software does not really depend on
>>         Crypt::SSLeay, only on the ability of LWP::UserAgent class to
>>         communicate with sites over SSL/TLS.
>>
>>         If are using version LWP 6.02 or later, and therefore have installed
>>         LWP::Protocol::https and its dependencies, and do not explicitly use
>>         Net::SSL before loading LWP::UserAgent, or override the default socket
>>         class, you are probably using IO::Socket::SSL and do not really need
>>         Crypt::SSLeay.
>>
>>         Before installing Crypt::SSLeay, you may want to try specifying a
>>         dependency on LWP::Protocol::https.
>>
>>     In file included from /home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:474,
>>                      from /home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/bits/libc-header-start.h:33,
>>                      from /home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/stdio.h:27,
>>                      from openssl-version.c:1:
>>     /home/ymorin/dev/buildroot/O/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-soft.h: No such file or directory
>>         7 | # include <gnu/stubs-soft.h>
>>           |           ^~~~~~~~~~~~~~~~~~
>>     compilation terminated.
>>     Failed to build and link a simple executable using OpenSSL
>>     >>> perl-crypt-ssleay 0.72 Building
>>     cd /home/ymorin/dev/buildroot/O/build/perl-crypt-ssleay-0.72/ && if [ -f Build.PL ] && [ MB != "EUMM" ] ; then PERL5LIB= PERL_USE_UNSAFE_INC=1 /home/ymorin/dev/buildroot/O/host/bin/perl Build  build; else /usr/bin/make -j1 FIXIN=:  pure_all; fi
>>     make[2]: *** No rule to make target 'pure_all'.  Stop.
>>     make[1]: *** [package/pkg-generic.mk:269: /home/ymorin/dev/buildroot/O/build/perl-crypt-ssleay-0.72/.stamp_built] Error 2
>>     make: *** [Makefile:23: _all] Error 2
>>
>> So I see at least two problems here:
>>
>>   - first, this module seems to be deprecated. It was added recently
>>     with lwp-protocols-https, although the version for that is already
>>     more recent than the one in the warning above.
>>
>>   - second, the configure step, although it fails, does not cause
>>     Buildroot to stop immediately; instead, the build continues.
>>     And indeed, the code does just 'exit 0' when the test fails (see
>>     patch below)
>>
>> So, do we really need to have this legacy package that is broken?
>
>
> I also saw this warning recently, and asked the responsible team to look into it. I will check internally next week and get back to you.

I checked internally, we no longer need the package.
I thus sent a revert just now.

Thanks,
Thomas


More information about the buildroot mailing list