LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 11-18-2018, 01:23 PM   #1
Barcoboy
Member
 
Registered: May 2010
Distribution: Slackware
Posts: 54

Rep: Reputation: Disabled
Trying to build KODI 18 Leia


Greetings. I am trying to build KODI 18 Leia from Git on a Slackware64 14.2 machine, and running into this compilation error:

Code:
error: /root/kodi/xbmc/cores/RetroPlayer/messages/savestate.fbs:16:0: error: underlying enum type must be integral
build/cores/RetroPlayer/messages/CMakeFiles/retroplayer_messages.dir/build.make:57: recipe for target 'build/cores/RetroPlayer/messages/savestate_generated.h' failed
Here is the code that the error refers to:

Code:
enum SaveType : uint8 {
  Unknown,
  Auto,
  Manual
}
I have built it on a Slackware64-Current machine and this error does not occur, and have also built KODI 17 Krypton on the machine that building Leia on fails.

Any ideas?
 
Old 11-18-2018, 11:00 PM   #2
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
I tried it and ran into the same problem.

Code:
[ 43%] Building C++ header for savestate.fbs
error: /home/jbhansen/program-downloads/xbmc/xbmc/cores/RetroPlayer/messages/savestate.fbs:16:0: error: underlying enum type must be integral
build/cores/RetroPlayer/messages/CMakeFiles/retroplayer_messages.dir/build.make:57: recipe for target 'build/cores/RetroPlayer/messages/savestate_generated.h' failed
make[2]: *** [build/cores/RetroPlayer/messages/savestate_generated.h] Error 1
CMakeFiles/Makefile2:1394: recipe for target 'build/cores/RetroPlayer/messages/CMakeFiles/retroplayer_messages.dir/all' failed
make[1]: *** [build/cores/RetroPlayer/messages/CMakeFiles/retroplayer_messages.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
I'm thinking it is coming from flatbuffers as I was able to find that exact error message in its idl_parser.cpp file (line 1599).

Code:
    // Specify the integer type underlying this enum.
    ECHECK(ParseType(enum_def->underlying_type));
    if (!IsInteger(enum_def->underlying_type.base_type) ||
        IsBool(enum_def->underlying_type.base_type))
      return Error("underlying enum type must be integral");
And after testing that theory by upgrading flatbuffers from 1.7.1 (that's on SBo) to 1.10.0 (the latest release on their github) and I am able to get through that section.

I just bumped the version and removed the line that runs the patch and it compiled and now kodi is proceeding with the compile.
 
1 members found this post helpful.
Old 11-18-2018, 11:17 PM   #3
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
I got all the way to 87% until I ran into the next error:

Code:
[ 87%] Building CXX object build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/VAAPI.cpp.o
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp: In member function 'virtual bool VAAPI::CDecoder::Open(AVCodecContext*, AVCodecContext*, AVPixelFormat)':
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:612:19: error: 'VAProfileVP9Profile2' was not declared in this scope
         profile = VAProfileVP9Profile2;
                   ^
build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/build.make:182: recipe for target 'build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/VAAPI.cpp.o' failed
make[2]: *** [build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/VAAPI.cpp.o] Error 1
CMakeFiles/Makefile2:9788: recipe for target 'build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/all' failed
make[1]: *** [build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
But this could be an issue with my installation as I'm running into problems running vainfo:

Code:
jbhansen@craven-moorhead:~/program-downloads/xbmc/build$ vainfo
libva info: VA-API version 0.38.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/radeonsi_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
Maybe you won't have the same problem once you bump flatbuffers...
 
Old 11-19-2018, 08:46 AM   #4
Barcoboy
Member
 
Registered: May 2010
Distribution: Slackware
Posts: 54

Original Poster
Rep: Reputation: Disabled
Thanks bassmadrigal. I was using version 1.71 of flatbuffers, and come to find out, I had installed flatbuffers from Git on my Slackware64-Current machine, I believe because I could not get through the configure portion of the KODI build with 1.71 installed-it would give me an error message that it couldn't find it.

However, now I am stuck at the same place as you are with trying to build VAAPI.cpp.o

But running vainfo gives me the following (I am running from SSH, thus the reason for the "can't connect to X" message):

Code:
root@beauty:~/kodi-build# vainfo
error: can't connect to X server!
libva info: VA-API version 0.38.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_38
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.38 (libva 1.6.2)
vainfo: Driver version: Intel i965 driver for Intel(R) Ironlake Desktop - 1.6.2
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
I will have to investigate some more when I get home from work.
 
Old 11-19-2018, 10:34 AM   #5
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
At least it isn't something with my computer. Now that I know it isn't just me, I'll dig some more when I get home as well.

First thought is libva needs to be updated... 14.2 has 1.6.2 and current has 2.3.0.

Last edited by bassmadrigal; 11-19-2018 at 10:35 AM.
 
Old 11-19-2018, 06:40 PM   #6
glorsplitz
Senior Member
 
Registered: Dec 2002
Distribution: slackware!
Posts: 1,308

Rep: Reputation: 368Reputation: 368Reputation: 368Reputation: 368
I'm curious about this, you guys do SBo changing kodi to 18 or following their build from source guide?
 
Old 11-19-2018, 07:00 PM   #7
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by glorsplitz View Post
I'm curious about this, you guys do SBo changing kodi to 18 or following their build from source guide?
Just to test the build, I'm just building it manually (I just won't run make install). If I end up installing it, I'd tweak the SlackBuild (or generate my own) so I have a Slackware package to install.
 
Old 11-19-2018, 07:36 PM   #8
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Well, I upgraded libva from 1.6.2 to 2.3.0 (grabbed the source from -current and rebuilt it on 14.2) and I was able to get past that error and then ran into another. This one I'm thinking is related to mesa and I'm not sure I want to tackle that project, since initial checks show that mesa requires at least an upgraded libdrm, and the last time I tried something like this, it required me upgrading almost all of X due to the dependency chain requiring newer versions.

But, after searching, you can disable vaapi using -DENABLE_VAAPI=OFF as a cmake option and complete the build (probably without updating libva, but I'm too lazy to downgrade and then rebuild it). However, if you're not using vdpau, this could have serious ramifications on video playback and CPU usage.

Anyway, the latest error without disabling vaapi is below:

Code:
[ 91%] Building CXX object build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/VaapiEGL.cpp.o
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp: In static member function 'static bool VAAPI::CVaapi1Texture::TestInteropDeepColor(VADisplay, EGLDisplay)':
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:442:34: error: 'DRM_FORMAT_GR1616' was not declared in this scope
         EGL_LINUX_DRM_FOURCC_EXT, DRM_FORMAT_GR1616,
                                  ^
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp: In member function 'virtual bool VAAPI::CVaapi2Texture::Map(VAAPI::CVaapiRenderPicture*)':
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:580:21: error: 'EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT' was not declared in this scope
       attribs.Add({{EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT, static_cast<EGLint>(object.drm_format_modifier)},
                     ^
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:581:10: error: 'EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT' was not declared in this scope
         {EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT, static_cast<EGLint>(object.drm_format_modifier >> 32)}});
          ^
/home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:581:101: error: no matching function for call to 'CEGLAttributes<8ul>::Add(<brace-enclosed initializer list>)'
         {EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT, static_cast<EGLint>(object.drm_format_modifier >> 32)}});
                                                                                                     ^
In file included from /home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:15:0:
/home/jbhansen/program-downloads/xbmc/xbmc/utils/EGLUtils.h:123:8: note: candidate: void CEGLAttributes<AttributeCount>::Add(const std::initializer_list<CEGLAttributes<AttributeCount>::EGLAttribute>&) [with long unsigned int AttributeCount = 8ul]
   void Add(std::initializer_list<EGLAttribute> const& attributes)
        ^
/home/jbhansen/program-downloads/xbmc/xbmc/utils/EGLUtils.h:123:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::initializer_list<CEGLAttributes<8ul>::EGLAttribute>&'
In file included from /home/jbhansen/program-downloads/xbmc/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.cpp:15:0:
/home/jbhansen/program-downloads/xbmc/xbmc/utils/EGLUtils.h:146:8: note: candidate: void CEGLAttributes<AttributeCount>::Add(const CEGLAttributes<AttributeCount>::EGLAttribute&) [with long unsigned int AttributeCount = 8ul]
   void Add(EGLAttribute const& attribute)
        ^
/home/jbhansen/program-downloads/xbmc/xbmc/utils/EGLUtils.h:146:8: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const CEGLAttributes<8ul>::EGLAttribute&'
build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/build.make:86: recipe for target 'build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/VaapiEGL.cpp.o' failed
make[2]: *** [build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/VaapiEGL.cpp.o] Error 1
CMakeFiles/Makefile2:10194: recipe for target 'build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/all' failed
make[1]: *** [build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
 
Old 11-19-2018, 07:53 PM   #9
Barcoboy
Member
 
Registered: May 2010
Distribution: Slackware
Posts: 54

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by bassmadrigal View Post
But, after searching, you can disable vaapi using -DENABLE_VAAPI=OFF as a cmake option and complete the build (probably without updating libva, but I'm too lazy to downgrade and then rebuild it). However, if you're not using vdpau, this could have serious ramifications on video playback and CPU usage.
Yep, that's what I ended up finding as well, and it built and runs fine now. My machine is old enough that I had the VAAPI option in 17 disabled because if I remember correctly it produced green artifacts at the bottom of the screen during playback.

The only other problem I had was when I went to build the binary addons. Making them all didn't work whatsoever, but then when I tried to build the only one I needed, ie: pvr.nextpvr, it built and installed fine, but I couldn't enable it. Checking the KODI log, it was complaining it couldn't find the pvr.nextpvr.so.3.3.5 file. The installer had placed it in the $CMAKE_INSTALL_PREFIX/lib/kodi/addons/pvr.nextpvr directory, but I noticed that nearly everything else was installed under lib64, so I copied the directory structure there and then it worked fine.

Thanks for your help!
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Kodi v18 Leia Alpha, BleachBit Version 2.0, Use an RPi 3 to Build Your Own Cheap Car Head Unit and More LXer Syndicated Linux News 0 03-06-2018 01:30 AM
LXer: Kodi 18 Media Center to Be Dubbed "Leia," In Honor of the Late Carrie Fisher LXer Syndicated Linux News 0 01-10-2017 05:35 AM
LXer: Kodi Devs Celebrate New Year with First Release Candidate of Kodi 17 "Krypton" LXer Syndicated Linux News 0 01-01-2017 12:00 AM
[SOLVED] Kodi freezes on exit, kodi.bin won't die pressman57 Linux - Software 6 12-19-2016 07:48 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 04:12 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration