[Buildroot] [PATCH] package/madplay: fix build failure due to old autotools macro

Giulio Benetti giulio.benetti at micronovasrl.com
Wed Apr 17 21:29:23 UTC 2019


Hello Arnout,

Il 17/04/2019 22:04, Arnout Vandecappelle ha scritto:
> 
> 
> On 17/04/2019 14:45, Giulio Benetti wrote:
>> Hello Thomas,
>>
>> Il 16/04/2019 23:47, Giulio Benetti ha scritto:
>>> Hello Thomas,
>>>
>>> Il 16/04/2019 22:13, Thomas Petazzoni ha scritto:
>>>> On Tue, 16 Apr 2019 12:21:25 +0200
>>>> Giulio Benetti <giulio.benetti at micronovasrl.com> wrote:
>>>>
>>>>> MKINSTALLDIRS is not automatically called by autotools when
>>>>> autoreconfigured.
>>>>> This leads to have install stage error:
>>>>> `/bin/sh @MKINSTALLDIRS@
>>>>> /home/dawncrow/buildroot-test/scripts/instance-0/output/target/usr/share
>>>>> /bin/sh: 0: Can't open @MKINSTALLDIRS@`
>>>>> because @MKINSTALLDIRS@ doesn't get substituted during autoreconf.
>>>>>
>>>>> Add patch that explicitly calls AM_MKINSTALLDIRS macro to substitute
>>>>> every @MKINSTALLDIRS@ occurence in *.in Makefile.
>>>>>
>>>>> Fixes:
>>>>> http://autobuild.buildroot.net/results/744/7447c03426556f787f20f7ab2d36f0cacc4af1bd/
>>>>>
>>>>>
>>>>> Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
>>>>
>>>> Why is this package suddenly failing to build ? madplay hasn't been
>>>> updated recently, so why do we have build failures and not before ?
>>>
>>> MKINSTALLDIRS is very obsolete, but Autoconf and Automake are the same
>>> version since 2017 and 2018, so they're not the problem even if I
>>> thought they were.
>>> First failure is dated 14-04-2019.
>>
>> Found, it is due to this patch:
>> https://git.buildroot.net/buildroot/commit/?id=c05cc5de868cc5af27afdb1451e30fcd1ecb2856
> 
>   That commit was applied to master on Feb 15. However, the autobuilder errors
> started on April 14. (There were also a number of autobuild errors in February,
> but they were different errors and they were fixed.)
> 
>   So no, that doesn't explain it.
> 
>   What does explain it, however, is that NLS was only enabled in the autobuilders
> since commit 472e8808d928af9787abd3303fb0b2b4d5916946 which I applied on April 14.
> 
>   The thing is, all the @MKINSTALLDIRS@ things are under a condition like
> 
> if test "$(PACKAGE)" = "gettext-tools"; then
> 
> except for one, which is unconditional but is part of the rule
> 
> install-data-yes: all
>          $(mkinstalldirs) $(DESTDIR)$(datadir)
> 
> and this rule only gets triggered by
> 
> install-data: install-data- at USE_NLS@
> 
> and obviously USE_NLS = yes only if NLS is enabled.
> 
>   So, that explains why this issue appears only now. Therefore, I've applied to
> master (after modifying the comment). I've also reworked the commit log a little.

So as we've discussed in IRC, to summarize:
- AUTORECONF = yes exposed potential build error(install specifically), 
but autobuilders still didn't call Makefile install-data recipe(where 
error was)
then:
- you've applied a patch to autobuilders that enabled NLS support, this 
way Makefile install-data recipe started to get called and then build failed

Thank you for the deep explanation.

Kind regards
-- 
Giulio Benetti
CTO

MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642

>   Regards,
>   Arnout
> 
> 
> 
>> It sets MADPLAY_AUTORECONF = YES in madplay.mk
>>
>> Then "autoreconf" is called and this is why @MKINSTALLDIRS@ is not substituted
>> correctly, due to obsolescence of MKINSTALLDIRS macro.
>>
>> I hope I've explained it decently.
>>
>>>> Isn't the build failure related to the switch from gettext-gnu to
>>>> gettext-tiny ?
>>>
>>> .config has "gettext-gnu" not "gettext-tiny", so that doesn't seem the
>>> problem.
>>> I try to dig deeper.
>>>
>>> Best regards
>>>
>>
>> Best regards



More information about the buildroot mailing list