[PATCH] Extend checks on build prerequisites for building OpenWRT core
Bas Mevissen
abuse at basmevissen.nl
Tue May 4 09:29:08 BST 2021
Friendly ping.
Bas.
On 2021-04-29 22:39, Bas Mevissen wrote:
> On 4/29/21 11:40 AM, Paul Spooren wrote:
>>
>> On 4/20/21 1:08 AM, Bas Mevissen wrote:
>>> OpenWRT requires a number of Perl modules to be installed. It wasn't
>>> checking on all of them.
>>> This patch adds checks for Perl FindBin, File::Copy, File::Compare
>>> and Thread::Queue modules.
>>>
>>> Failing to install these, will have the build break at some point. By
>>> adding these to the
>>> prereq-build.mk script, they are checked on forehand.
>>>
>>> Tested on a Fedora 33 and 34 (beta) that was freshly installed.
>>> Fedora appears to
>>> break up Perl modules into small packages that need to be installed
>>> for the build to succeed.
>>>
>>> Signed-off-by: Bas Mevissen <abuse at basmevissen.nl>
>>> ---
>>> include/prereq-build.mk | 13 ++++++++++++-
>>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/include/prereq-build.mk b/include/prereq-build.mk
>>> index 86c22f7c95..cb3dcc51e3 100644
>>> --- a/include/prereq-build.mk
>>> +++ b/include/prereq-build.mk
>>> @@ -65,11 +65,22 @@ $(eval $(call TestHostCommand,perl-data-dumper, \
>>> Please install the Perl Data::Dumper module, \
>>> perl -MData::Dumper -e 1))
>>> +$(eval $(call TestHostCommand,perl-findbin, \
>>> + Please install the Perl FindBin module, \
>>> + perl -MFindBin -e 1))
>>> +
>>> +$(eval $(call TestHostCommand,perl-file-copy, \
>>> + Please install the Perl File::Copy module, \
>>> + perl -MFile::Copy -e 1))
>>> +
>>> +$(eval $(call TestHostCommand,perl-file-compare, \
>>> + Please install the Perl File::Compare module, \
>>> + perl -MFile::Compare -e 1))
>> Could you please point me to where this module is required? I naively
>> grepped through openwrt.git and couldn't find it. The other added
>> requirements seem fine.
>
> It is in the host autoconf build. On Fedora 34, against current
> master, without the patch to test the need for File::Compare:
>
> $ sudo rpm -e perl-File-Compare
>
> (...)
>
> $ make -j1 V=s
>
> (...)
>
> make[3]: Entering directory
> '/home/bas/Workspace/openwrt-master/tools/autoconf'
> export SHELL="bash"; make -C
> /home/bas/Workspace/openwrt-master/build_dir/host/autoconf-2.69
> make[4]: Entering directory
> '/home/bas/Workspace/openwrt-master/build_dir/host/autoconf-2.69'
> make all-recursive
> make[5]: Entering directory
> '/home/bas/Workspace/openwrt-master/build_dir/host/autoconf-2.69'
> Making all in bin
> make[6]: Entering directory
> '/home/bas/Workspace/openwrt-master/build_dir/host/autoconf-2.69/bin'
> autom4te_perllibdir='..'/lib
> AUTOM4TE_CFG='../lib/autom4te.cfg' ../bin/autom4te -B '..'/lib
> -B '..'/lib --language M4sh --cache '' --melt ./autoconf.as -o
> autoconf.in
> Can't locate File/Compare.pm in @INC (you may need to install the
> File::Compare module) (@INC contains: ../lib
> /usr/local/lib64/perl5/5.32 /usr/local/share/perl5/5.32
> /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl
> /usr/lib64/perl5 /usr/share/perl5) at ../lib/Autom4te/FileUtils.pm
> line 166.
> BEGIN failed--compilation aborted at ../lib/Autom4te/FileUtils.pm line
> 166.
> Compilation failed in require at ../bin/autom4te line 43.
> BEGIN failed--compilation aborted at ../bin/autom4te line 43.
> make[6]: *** [Makefile:641: autoconf.in] Error 2
>
> (...)
>
> $ sudo dnf install -y perl-File-Compare
>
> (...)
>
> $ make -j4
>
> (build finishes)
>
>
>>> +
>>> $(eval $(call TestHostCommand,perl-thread-queue, \
>>> Please install the Perl Thread::Queue module, \
>>> perl -MThread::Queue -e 1))
>>> -
>>> $(eval $(call SetupHostCommand,tar,Please install GNU 'tar', \
>>> gtar --version 2>&1 | grep GNU, \
>>> gnutar --version 2>&1 | grep GNU, \
More information about the openwrt-devel
mailing list