[mythtv-users] hdhrstreamhandler.cpp problem in build of Master for el7 - but not for F28

John Pilkington johnpilk222 at gmail.com
Sun Nov 18 16:24:28 UTC 2018


On 18/11/18 15:16, David Hampton wrote:
> On Sun, 2018-11-18 at 11:56 +0000, John Pilkington wrote:
>> Yesterday I built and installed Master head for Fedora 28.  There
>> didn't
>> seem to be a problem.  So I tried building for el7;  build failed.
>>
>> This seems to relate to the recent commit
>>
>> {{{
>>
>> https://github.com/MythTV/mythtv/commit/e50d9c7d3a90ad4e877347068cfd913d114fe23c
>>
>> but at present I don't understand why it didn't affect the f28 build
>> too.  I don't have any homerun devices.
>>
>> BUILDSTDERR: recorders/hdhrstreamhandler.cpp:23:109: error: 'int
>> hdhomerun_device_selector_load_from_str(hdhomerun_device_selector_t*,
>>   
>> char*)' was declared 'extern' and later 'static' [-fpermissive]
>> BUILDSTDERR:  static int
>> hdhomerun_device_selector_load_from_str(struct
>> hdhomerun_device_selector_t *hds, char *device_str);
>> BUILDSTDERR:
>>                                                    ^
>> BUILDSTDERR: In file included from
>> /usr/include/hdhomerun/hdhomerun.h:32:0,
>> BUILDSTDERR:                  from recorders/hdhrstreamhandler.h:29,
>> BUILDSTDERR:                  from
>> recorders/hdhrstreamhandler.cpp:14:
>> BUILDSTDERR:
>> /usr/include/hdhomerun/hdhomerun_device_selector.h:42:20:
>> error: previous declaration of 'int
>> hdhomerun_device_selector_load_from_str(hdhomerun_device_selector_t*,
>>   
>> char*)' [-fpermissive]
>> BUILDSTDERR:  extern LIBTYPE int
>> hdhomerun_device_selector_load_from_str(struct
>> hdhomerun_device_selector_t *hds, char *device_str);
>> BUILDSTDERR:                     ^
>> BUILDSTDERR: make[2]: *** [obj/hdhrstreamhandler.o] Error 1
>> BUILDSTDERR: make[2]: *** Waiting for unfinished jobs....
>> make[2]: Leaving directory
>> `/builddir/build/BUILD/mythtv-
>> 26d8d510589d4dc9adf72d14e9837774425faff8/mythtv/libs/libmythtv'
>>
>> }}}
> 
> John,
> 
> The build process is attempting to compensate for two changes to the
> libhhomerun code.  The first is the switch from
> hdhomerun_discover_find_devices to hdhomerun_discover_find_devices_v2,
> and when this new function is detected a compilation flag is set.  The
> second change is the addition of the function
> hdhomerun_device_selector_load_from_str_discover to the library.  There
> is no version number in the hdhomerun library, and thus no easy way to
> determine when these changes occurred.  When gigem made the commit you
> referenced, he piggybacked on the flag that is set upon detection of
> the find_devices_v2 function, probably assuming that the load_from_str
> changes occurred at the same time.  From your message, it appears that
> that that's not true, and that the EL7 version of libhdhomerun has the
> load_from_str change but not the find_devices_v2 change.  I think we'll
> need to enhance configure to specifically look for the presence of
> load_from_str, and add a new compilation flag with that info.  I should
> be able to recreate this error on my Centos7 builder.
> 
> David
> 

David:  Thanks for the explanation.  homerun el7 packages brought in for 
the build were hdhomerun and hdhomerun-devel, both quoting a date of 
20150615

John




More information about the mythtv-users mailing list