Linux regarding installation of xbmc on ubuntu 17.10
#1
Hi kodi team
 i am beginner,and i try to compile the source code of xbmc in ubuntu 17.10 and i have follow  wiki kodi compilation process(https://kodi.wiki/view/HOW-TO:Compile_Ko..._or_Ubuntu) .but when i  run the  make command  then it is generating
error .

cpp:
In file included from iso9660.h:35:0, from iso9660.cpp:47:
/usr/include/cdio/iso9660.h:277:45: error: flexible array member ‘iso9660_dir_s::filename’ not at end of ‘struct iso9660_pvd_s’
   char             filename[EMPTY_ARRAY_SIZE];
                                             ^
/usr/include/cdio/iso9660.h:310:20: note: next member ‘char iso9660_pvd_s::root_directory_filename’ declared here
   char             root_directory_filename;      /**< Is '\\0' or root */
                    ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/cdio/iso9660.h:283:8: note: in the definition of ‘struct iso9660_pvd_s’
 struct iso9660_pvd_s {
        ^~~~~~~~~~~~~
/usr/include/cdio/iso9660.h:277:45: error: flexible array member ‘iso9660_dir_s::filename’ not at end of ‘struct iso9660_svd_s’
   char             filename[EMPTY_ARRAY_SIZE];
                                             ^
/usr/include/cdio/iso9660.h:424:20: note: next member ‘char iso9660_svd_s::root_directory_filename’ declared here
   char             root_directory_filename;      /**< Is '\\0' or root */
                    ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/cdio/iso9660.h:392:8: note: in the definition of ‘struct iso9660_svd_s’
 struct iso9660_svd_s {
        ^~~~~~~~~~~~~
/home/mannan/xbmc/Makefile.include:97: recipe for target 'iso9660.o' failed
make[1]: *** [iso9660.o] Error 1
Makefile:420: recipe for target 'xbmc/filesystem/filesystem.a' failed
make: *** [xbmc/filesystem/filesystem.a] Error 2
make: *** Waiting for unfinished jobs....
CPP     xbmc/interfaces/json-rpc/PlayerOperations.o
CPP     xbmc/interfaces/json-rpc/PlaylistOperations.o
AR      xbmc/interfaces/json-rpc/json-rpc.a

sorry for my english,but please help me
Reply
#2
Add team-xbmc/xbmc-nightly ppa and install (update) libcdio-dev from it.
The default version Ubuntu 17.10 ships is broken.
Reply
#3
thank you ,i have install the package according to your given command right now it is working,but one error also come when run the make command.
please see this code.



PeripheralCecAdapter.cpp: In member function ‘virtual void PERIPHERALS::CPeripheralCecAdapter::Announce(ANNOUNCEMENT::AnnouncementFlag, const char*, const char*, const CVariant&)’:
PeripheralCecAdapter.cpp:168:25: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOnScreensaver’
     if (m_configuration.bPowerOnScreensaver == 1 && !bIgnoreDeactivate &&
                         ^~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:177:108: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOffScreensaver’; did you mean ‘bPowerOffOnStandby’?
     if ((!g_application.m_pPlayer->IsPlaying() && !g_application.m_pPlayer->IsPaused()) && m_configuration.bPowerOffScreensaver == 1)
                                                                                                            ^~~~~~~~~~~~~~~~~~~~
                                                                                                            bPowerOffOnStandby
PeripheralCecAdapter.cpp: In member function ‘virtual bool PERIPHERALS::CPeripheralCecAdapter::InitialiseFeature(PERIPHERALS:TongueeripheralFeature)’:
PeripheralCecAdapter.cpp:243:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecLogMessage’; did you mean ‘logMessage’?
     m_callbacks.CBCecLogMessage           = &CecLogMessage;
                 ^~~~~~~~~~~~~~~
                 logMessage
PeripheralCecAdapter.cpp:244:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecKeyPress’; did you mean ‘keyPress’?
     m_callbacks.CBCecKeyPress             = &CecKeyPress;
                 ^~~~~~~~~~~~~
                 keyPress
PeripheralCecAdapter.cpp:245:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecCommand’
     m_callbacks.CBCecCommand              = &CecCommand;
                 ^~~~~~~~~~~~
PeripheralCecAdapter.cpp:246:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecConfigurationChanged’; did you mean ‘configurationChanged’?
     m_callbacks.CBCecConfigurationChanged = &CecConfiguration;
                 ^~~~~~~~~~~~~~~~~~~~~~~~~
                 configurationChanged
PeripheralCecAdapter.cpp:247:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecAlert’
     m_callbacks.CBCecAlert                = &CecAlert;
                 ^~~~~~~~~~
PeripheralCecAdapter.cpp:248:17: error: ‘CEC::ICECCallbacks {aka struct CEC::ICECCallbacks}’ has no member named ‘CBCecSourceActivated’; did you mean ‘sourceActivated’?
     m_callbacks.CBCecSourceActivated      = &CecSourceActivated;
                 ^~~~~~~~~~~~~~~~~~~~
                 sourceActivated
PeripheralCecAdapter.cpp: In member function ‘virtual void PERIPHERALS::CPeripheralCecAdapter:Tonguerocess()’:
PeripheralCecAdapter.cpp:416:32: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
       else if (m_configuration.bSendInactiveSource == 1)
                                ^~~~~~~~~~~~~~~~~~~
                                bActivateSource
PeripheralCecAdapter.cpp: In static member function ‘static int PERIPHERALS::CPeripheralCecAdapter::CecCommand(void*, CEC::cec_command)’:
PeripheralCecAdapter.cpp:627:89: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
           (adapter->m_configuration.bPowerOffOnStandby == 1 || adapter->m_configuration.bShutdownOnStandby == 1) &&
                                                                                         ^~~~~~~~~~~~~~~~~~
                                                                                         bPowerOffOnStandby
PeripheralCecAdapter.cpp:633:43: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
         else if (adapter->m_configuration.bShutdownOnStandby == 1)
                                           ^~~~~~~~~~~~~~~~~~
                                           bPowerOffOnStandby
PeripheralCecAdapter.cpp:638:36: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
       if (adapter->m_configuration.bUseTVMenuLanguage == 1 && command.initiator == CECDEVICE_TV && command.parameters.size == 3)
                                    ^~~~~~~~~~~~~~~~~~
                                    strDeviceLanguage
PeripheralCecAdapter.cpp: In member function ‘void PERIPHERALS::CPeripheralCecAdapter::SetConfigurationFromLibCEC(const libcec_configuration&)’:
PeripheralCecAdapter.cpp:1264:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
   m_configuration.bUseTVMenuLanguage = config.bUseTVMenuLanguage;
                   ^~~~~~~~~~~~~~~~~~
                   strDeviceLanguage
PeripheralCecAdapter.cpp:1264:47: error: ‘const libcec_configuration {aka const struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
   m_configuration.bUseTVMenuLanguage = config.bUseTVMenuLanguage;
                                               ^~~~~~~~~~~~~~~~~~
                                               strDeviceLanguage
PeripheralCecAdapter.cpp:1265:66: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
   bChanged |= SetSetting("use_tv_menu_language", m_configuration.bUseTVMenuLanguage == 1);
                                                                  ^~~~~~~~~~~~~~~~~~
                                                                  strDeviceLanguage
PeripheralCecAdapter.cpp:1270:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOffScreensaver’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bPowerOffScreensaver = config.bPowerOffScreensaver;
                   ^~~~~~~~~~~~~~~~~~~~
                   bPowerOffOnStandby
PeripheralCecAdapter.cpp:1270:49: error: ‘const libcec_configuration {aka const struct CEC::libcec_configuration}’ has no member named ‘bPowerOffScreensaver’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bPowerOffScreensaver = config.bPowerOffScreensaver;
                                                 ^~~~~~~~~~~~~~~~~~~~
                                                 bPowerOffOnStandby
PeripheralCecAdapter.cpp:1271:69: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOffScreensaver’; did you mean ‘bPowerOffOnStandby’?
   bChanged |= SetSetting("cec_standby_screensaver", m_configuration.bPowerOffScreensaver == 1);
                                                                     ^~~~~~~~~~~~~~~~~~~~
                                                                     bPowerOffOnStandby
PeripheralCecAdapter.cpp:1273:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOnScreensaver’
   m_configuration.bPowerOnScreensaver = config.bPowerOnScreensaver;
                   ^~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1273:48: error: ‘const libcec_configuration {aka const struct CEC::libcec_configuration}’ has no member named ‘bPowerOnScreensaver’
   m_configuration.bPowerOnScreensaver = config.bPowerOnScreensaver;
                                                ^~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1274:66: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOnScreensaver’
   bChanged |= SetSetting("cec_wake_screensaver", m_configuration.bPowerOnScreensaver == 1);
                                                                  ^~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1278:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
   m_configuration.bSendInactiveSource = config.bSendInactiveSource;
                   ^~~~~~~~~~~~~~~~~~~
                   bActivateSource
PeripheralCecAdapter.cpp:1278:48: error: ‘const libcec_configuration {aka const struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
   m_configuration.bSendInactiveSource = config.bSendInactiveSource;
                                                ^~~~~~~~~~~~~~~~~~~
                                                bActivateSource
PeripheralCecAdapter.cpp:1279:66: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
   bChanged |= SetSetting("send_inactive_source", m_configuration.bSendInactiveSource == 1);
                                                                  ^~~~~~~~~~~~~~~~~~~
                                                                  bActivateSource
PeripheralCecAdapter.cpp:1282:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bShutdownOnStandby = config.bShutdownOnStandby;
                   ^~~~~~~~~~~~~~~~~~
                   bPowerOffOnStandby
PeripheralCecAdapter.cpp:1282:47: error: ‘const libcec_configuration {aka const struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bShutdownOnStandby = config.bShutdownOnStandby;
                                               ^~~~~~~~~~~~~~~~~~
                                               bPowerOffOnStandby
PeripheralCecAdapter.cpp:1291:30: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
              m_configuration.bShutdownOnStandby == 1 ? 13005 : 36028);
                              ^~~~~~~~~~~~~~~~~~
                              bPowerOffOnStandby
PeripheralCecAdapter.cpp: In member function ‘void PERIPHERALS::CPeripheralCecAdapter::SetConfigurationFromSettings()’:
PeripheralCecAdapter.cpp:1367:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
   m_configuration.bUseTVMenuLanguage   = GetSettingBool("use_tv_menu_language") ? 1 : 0;
                   ^~~~~~~~~~~~~~~~~~
                   strDeviceLanguage
PeripheralCecAdapter.cpp:1369:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOffScreensaver’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bPowerOffScreensaver = GetSettingBool("cec_standby_screensaver") ? 1 : 0;
                   ^~~~~~~~~~~~~~~~~~~~
                   bPowerOffOnStandby
PeripheralCecAdapter.cpp:1370:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bPowerOnScreensaver’
   m_configuration.bPowerOnScreensaver  = GetSettingBool("cec_wake_screensaver") ? 1 : 0;
                   ^~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1371:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
   m_configuration.bSendInactiveSource  = GetSettingBool("send_inactive_source") ? 1 : 0;
                   ^~~~~~~~~~~~~~~~~~~
                   bActivateSource
PeripheralCecAdapter.cpp:1376:19: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bShutdownOnStandby’; did you mean ‘bPowerOffOnStandby’?
   m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0;
                   ^~~~~~~~~~~~~~~~~~
                   bPowerOffOnStandby
PeripheralCecAdapter.cpp: In member function ‘void PERIPHERALS::CPeripheralCecAdapterUpdateThread::UpdateMenuLanguage()’:
PeripheralCecAdapter.cpp:1523:23: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bUseTVMenuLanguage’; did you mean ‘strDeviceLanguage’?
   if (m_configuration.bUseTVMenuLanguage == 1)
                       ^~~~~~~~~~~~~~~~~~
                       strDeviceLanguage
PeripheralCecAdapter.cpp:1527:79: error: no matching function for call to ‘CEC::ICECAdapter::GetDeviceMenuLanguage(CEC::cec_logical_address, char (*)[4])’
     if (m_adapter->m_cecAdapter->GetDeviceMenuLanguage(CECDEVICE_TV, &language))
                                                                               ^
In file included from PeripheralCecAdapter.cpp:38:0:
/usr/include/libcec/cec.h:186:25: note: candidate: virtual std::__cxx11:Confusedtring CEC::ICECAdapter::GetDeviceMenuLanguage(CEC::cec_logical_address)
     virtual std:Confusedtring GetDeviceMenuLanguage(cec_logical_address iLogicalAddress) = 0;
                         ^~~~~~~~~~~~~~~~~~~~~
/usr/include/libcec/cec.h:186:25: note:   candidate expects 1 argument, 2 provided
PeripheralCecAdapter.cpp:1528:43: error: request for member ‘language’ in ‘language’, which is of non-class type ‘CEC::cec_menu_language {aka char [4]}’
       m_adapter->SetMenuLanguage(language.language);
                                           ^~~~~~~~
PeripheralCecAdapter.cpp: In member function ‘std::__cxx11:Confusedtring PERIPHERALS::CPeripheralCecAdapterUpdateThread::UpdateAudioSystemStatus()’:
PeripheralCecAdapter.cpp:1547:69: error: array must be initialized with a brace-enclosed initializer
     cec_osd_name ampName = m_adapter->m_cecAdapter->GetDeviceOSDName(CECDEVICE_AUDIOSYSTEM);
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1548:126: error: request for member ‘name’ in ‘ampName’, which is of non-class type ‘CEC::cec_osd_name {aka char [14]}’
     CLog::Log(LOGDEBUG, "%s - CEC capable amplifier found (%s). volume will be controlled on the amp", __FUNCTION__, ampName.name);
                                                                                                                              ^~~~
PeripheralCecAdapter.cpp:1549:53: error: request for member ‘name’ in ‘ampName’, which is of non-class type ‘CEC::cec_osd_name {aka char [14]}’
     strAmpName += StringUtils::Format("%s", ampName.name);
                                                     ^~~~
PeripheralCecAdapter.cpp: In member function ‘bool PERIPHERALS::CPeripheralCecAdapterUpdateThread::SetInitialConfiguration()’:
PeripheralCecAdapter.cpp:1586:66: error: array must be initialized with a brace-enclosed initializer
   cec_osd_name tvName = m_adapter->m_cecAdapter->GetDeviceOSDName(CECDEVICE_TV);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
PeripheralCecAdapter.cpp:1587:96: error: request for member ‘name’ in ‘tvName’, which is of non-class type ‘CEC::cec_osd_name {aka char [14]}’
   strNotification = StringUtils::Format("%s: %s", g_localizeStrings.Get(36016).c_str(), tvName.name);
                                                                                                ^~~~
PeripheralCecAdapter.cpp: In member function ‘void PERIPHERALS::CPeripheralCecAdapter:TonguerocessStandbyDevices()’:
PeripheralCecAdapter.cpp:1733:30: error: ‘CEC::libcec_configuration {aka struct CEC::libcec_configuration}’ has no member named ‘bSendInactiveSource’; did you mean ‘bActivateSource’?
     else if (m_configuration.bSendInactiveSource == 1)
                              ^~~~~~~~~~~~~~~~~~~
                              bActivateSource
/home/mannan/xbmc/Makefile.include:97: recipe for target 'PeripheralCecAdapter.o' failed
make[1]: *** [PeripheralCecAdapter.o] Error 1
Makefile:420: recipe for target 'xbmc/peripherals/devices/peripheral-devices.a' failed
make: *** [xbmc/peripherals/devices/peripheral-devices.a] Error 2
make: *** Waiting for unfinished jobs....
C
Reply
#4
Please use code tags or a pastebin site if you post command line output.

From the output I see you try to compile Kodi 16 (or maybe even an older version). Is there any reason for wanting that version?
Kodi 16 isn't compatible with libcec 4, if you still want that Kodi version disable cec support by adding --disable-libcec to your configure command.
Reply
#5
thanks once again ,the reason while  installing jarvis is that i wanted compile whole source code then i updated my kodi version,   but another error has come.when i run same make command.
error show below in log file

https://paste.ubuntu.com/p/NF9hxxpq6N/
Reply
#6
The same suggestion again: Please use code tags or a pastebin site if you post command line output.
You still haven't answered my question, if you have any specific reason to build Kodi 16.

I think you have to add the #if !defined min and max changes from https://github.com/xbmc/xbmc/pull/11907/...0bef128e24 to fix the error.
Reply
#7
hi team ,
I am facing new issue with kodi ,sometime i play some movie and movie is not playing on kodi, after i see my kodi log it has produce some error,which is mention in kodi.log in below link.
http://paste.ubuntu.com/p/wtfbRRbhgg/
Reply

Logout Mark Read Team Forum Stats Members Help
regarding installation of xbmc on ubuntu 17.100