On 10/2/19 12:41 PM, Mauro Carvalho Chehab wrote:
> Em Wed, 2 Oct 2019 11:49:20 +0200
> Hans Verkuil <hverk...@xs4all.nl> escreveu:
> 
>> On 10/2/19 11:36 AM, Mauro Carvalho Chehab wrote:
>>> Em Wed, 2 Oct 2019 10:25:02 +0200
>>> Hans Verkuil <hverk...@xs4all.nl> escreveu:
>>>   
>>>> Hi Mauro,
>>>>
>>>> On 10/2/19 10:16 AM, Jenkins Builder Robot wrote:  
>>>>> See 
>>>>> <https://builder.linuxtv.org/job/v4l-utils/43/display/redirect?page=changes>
>>>>>
>>>>> Changes:
>>>>>
>>>>> [hverkuil-cisco] keytable: add new generated keymaps
>>>>>
>>>>> [hverkuil-cisco] msg2ctl.pl: add newline after log_msg
>>>>>
>>>>> [hverkuil-cisco] cec-follower: drop the hardcoded UI commands list
>>>>>
>>>>> [hverkuil-cisco] cec-ctl/cec-log: use new CEC_OP_UI_CMD defines    
>>>>
>>>> You need to remove utils/cec-follower/cec-log.h.
>>>>
>>>> This file was generated but the generated file is now called cec-log-gen.h.
>>>> A new cec-log.h was also added to utils/common as a companion to 
>>>> cec-log.cpp.
>>>>
>>>> Unfortunately, the old cec-log.h clashes with the new cec-log.h. And since
>>>> the old cec-log.h was generated and so is not part of the git repo it is
>>>> not removed as part of a 'git pull'.
>>>>
>>>> Anyway, just remove utils/cec-follower/cec-log.h and it compiles again.  
>>>
>>> I manually removed the file at the builder and at the slave machines and
>>> asked for a new build. The build now succeeded.
>>>
>>> That's said, we should really avoid disruptive changes like that, fixing
>>> the building system for it to do the right thing, as users of the v4l-utils 
>>> will also face the same issue if they update their git trees.
>>>
>>> At any time, a clean git update with something similar to:
>>>
>>>     git remote update
>>>     git fetch origin
>>>     git reset --hard origin/master
>>>     ./bootstrap.sh
>>>     ./configure
>>>     make
>>>
>>> should work.
>>>
>>> Regards,
>>> Mauro
>>>   
>>
>> Yes, I discovered it too late. That said, I'm not sure what to do about
>> it since the old generated file is not under the control of git.
>>
>> A 'make distclean' before the 'git fetch' would remove it, but after the
>> update it is just an orphaned file.
>>
>> I've actually added a 'make distclean' in my daily build scripts.
> 
> That's a very bad idea. The builds should check and pinpoint to
> regressions at the building system too.
> 
> If I understand the problem, you're saying that now cec-log.h depends on
> the generated cec-log-gen.h, right?
> 
> If so, this could be easily fixable by adding an explicit dependency
> rule to the Makefile.am, like:
> 
>       cec-log.h: cec-log-gen.h

No, cec-log.h has nothing to do with cec-log-gen.h.

utils/cec-follower/cec-log.h was a generated file, and badly named.

So this was renamed to cec-log-gen.h.

In addition, a new header utils/common/cec-log.h was added containing
prototypes for utils/common/cec-log.cpp.

So after a git pull you end up with two cec-log.h headers:

utils/common/cec-log.h and the orphaned utils/cec-follower/cec-log.h.

Unfortunately, the orphaned cec-log.h is included instead of the one
in utils/common.

I'm looking at reorganizing the way this works so perhaps this issue
will go away soon.

Regards,

        Hans

Reply via email to