Solved building kodi 18 from source
#1
Hello,

I'm trying to build Kodi 18 nightly from source for X11 under CentOS7. I used the documentation for compiling instructions. When I run:

cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr/local/kodi

I then get the following output:
Quote:-- Source directory: /home/inittux/Documents/git/kodi
-- Build directory: /home/inittux/Documents/git/kodi/kodi-build
-- Generator: Single-configuration: Release (Unix Makefiles)
-- CMake Version: 3.6.3
-- System type: Linux
-- Linker: GNU gold
-- Core system type: linux
-- Platform:
-- CPU: x86_64, ARCH: x86_64-linux
-- Cross-Compiling: FALSE
-- Execute build artefacts on host: TRUE
-- Depends based build:
-- Checking to see if CXX compiler accepts flag -msse
-- Checking to see if CXX compiler accepts flag -msse - yes
-- Checking to see if CXX compiler accepts flag -msse2
-- Checking to see if CXX compiler accepts flag -msse2 - yes
-- Checking to see if CXX compiler accepts flag -msse3
-- Checking to see if CXX compiler accepts flag -msse3 - yes
-- Checking to see if CXX compiler accepts flag -mssse3
-- Checking to see if CXX compiler accepts flag -mssse3 - yes
-- Checking to see if CXX compiler accepts flag -msse4.1
-- Checking to see if CXX compiler accepts flag -msse4.1 - yes
-- Checking to see if CXX compiler accepts flag -msse4.2
-- Checking to see if CXX compiler accepts flag -msse4.2 - yes
-- Checking to see if CXX compiler accepts flag -mavx
-- Checking to see if CXX compiler accepts flag -mavx - yes
-- Checking to see if CXX compiler accepts flag -mavx2
-- Checking to see if CXX compiler accepts flag -mavx2 - yes
-- Could not find hardware support for AVX2 (missing: _AVX2_TRUE)
CMake Warning at tools/depends/native/TexturePacker/CMakeLists.txt:24 (message):
giflib support is experimental. Consider updating to giflib5

-- FFmpeg 3.3 not found, falling back to internal build
-- Could NOT find MDNS (missing: MDNS_LIBRARY)
-- Could NOT find Sndio (missing: SNDIO_LIBRARY SNDIO_INCLUDE_DIR)
-- Could NOT find Bluray: Found unsuitable version "0.2.3", but required is at least "0.9.3" (found /usr/lib64/libbluray.so)
-- Could NOT find CEC: Found unsuitable version "3.1.0", but required is at least "4.0.0" (found /usr/lib64/libcec.so)
-- #---- CONFIGURATION ----#
-- Platform: X11
-- -- PATH config --
-- Prefix: /usr/local/kodi
-- Libdir: /usr/local/kodi/lib64
-- Bindir: /usr/local/kodi/bin
-- Includedir: /usr/local/kodi/include
-- Datarootdir: /usr/local/kodi/share
-- Datadir: /usr/local/kodi/share
-- Docdir: /usr/local/kodi/share/doc/kodi
-- ALSA enabled: Yes
-- AVAHI enabled: Yes
-- BLUETOOTH enabled: Yes
-- CAP enabled: Yes
-- CCACHE enabled: Yes
-- DBUS enabled: Yes
-- LCMS2 enabled: Yes
-- MDNS enabled: No
-- MICROHTTPD enabled: Yes
-- MYSQLCLIENT enabled: Yes
-- PULSEAUDIO enabled: Yes
-- PYTHON enabled: Yes
-- SMBCLIENT enabled: Yes
-- SNDIO enabled: No
-- SSH enabled: Yes
-- UDEV enabled: Yes
-- XSLT enabled: Yes
-- VAAPI enabled: Yes
-- VDPAU enabled: Yes
-- PLIST enabled: Yes
-- Configuring done
-- Generating done
-- Build files have been written to: /home/inittux/Documents/git/kodi/kodi-build
Do I need the compile the ones from source that mention missing or unsuitable version if they aren't found the CentOS7 repos?
That would be these?

giflib support is experimental. Consider updating to giflib5
-- Could not find hardware support for AVX2 (missing: _AVX2_TRUE)
-- FFmpeg 3.3 not found, falling back to internal build
-- Could NOT find MDNS (missing: MDNS_LIBRARY)
-- Could NOT find Sndio (missing: SNDIO_LIBRARY SNDIO_INCLUDE_DIR)
-- Could NOT find Bluray: Found unsuitable version "0.2.3", but required is at least "0.9.3" (found /usr/lib64/libbluray.so)
-- Could NOT find CEC: Found unsuitable version "3.1.0", but required is at least "4.0.0" (found /usr/lib64/libcec.so)
Reply
#2
as you see, configuring succeeded. nothing is wrong. you will obviously lack cec, sndio and bluray support, and it will build and bundle ffmpeg in your binary. the giflib code has not caused me any issues, but no guarantees with giflib4 (it was something i quickly tossed together at some point). mdns is not used on linux.
Reply
#3
Thanks for the reply, I tried to build and up to almost the end it succeeds building but before it finishes I get a bunch of errors which I can't really make much of:

Code:
cd /home/inittux/Documents/git/kodi/kodi-build/build/powermanagement/linux && /usr/bin/ccache /usr/lib64/ccache/c++    -I/home/inittux/Documents/git/kodi -I/home/inittux/Documents/git/kodi/lib -I/home/inittux/Documents/git/kodi/lib/gtest/include -I/home/inittux/Documents/git/kodi/xbmc -I/home/inittux/Documents/git/kodi/xbmc/linux -I/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer -I/home/inittux/Documents/git/kodi/kodi-build/build -I/home/inittux/Documents/git/kodi/kodi-build/build/cpluff/include -I/home/inittux/Documents/git/kodi/kodi-build/build/include -I/usr/include/freetype2 -I/home/inittux/Documents/git/kodi/kodi-build/build/libdvd/include -I/usr/include/lzo -I/usr/include/libdrm -I/usr/include/dbus-1.0 -I/lib64/dbus-1.0/include -I/usr/include/python2.7 -I/usr/include/samba-4.0 -I/usr/include/libxml2  -std=c++11 -O2 -DNDEBUG -s   -D_LINUX -DTARGET_POSIX -DTARGET_LINUX -DHAVE_LINUX_MEMFD=1 -DHAVE_MKOSTEMP=1 -D_GNU_SOURCE -DHAVE_SSE=1 -DHAVE_SSE2=1 -DHAVE_SSE3=1 -DHAVE_SSSE3=1 -DHAVE_SSE4_1=1 -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_STD__U16_STRING=1 -DHAVE_STD__U32_STRING=1 -DHAVE_CHAR16_T=1 -DHAVE_CHAR32_T=1 -DHAVE_STDINT_H=1 -DHAS_BUILTIN_SYNC_ADD_AND_FETCH=1 -DHAS_BUILTIN_SYNC_SUB_AND_FETCH=1 -DHAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP=1 -DHAVE_INOTIFY=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_INTTYPES_H=1 -DFFMPEG_VER_SHA=\"3.3.2-Leia-Alpha-1\" -DUSE_STATIC_FFMPEG=1 -I/usr/include/fribidi -DHAVE_LIBGL=1 -DHAS_EGL=1 -DHAVE_X11=1 -DHAVE_LIBXRANDR=1 -DHAS_GLX=1 -DHAVE_ALSA=1 -DUSE_ALSA=1 -DHAVE_LIBAVAHI_CLIENT=1 -DHAVE_LIBAVAHI_COMMON=1 -DHAVE_DBUS=1 -DHAVE_LCMS2=1 -DHAVE_LIBMICROHTTPD=1 -DHAVE_MYSQL=1 -DHAVE_LIBPULSE=1 -DHAS_PYTHON=1 -DHAVE_LIBSMBCLIENT=1 -DHAVE_LIBSSH=1 -DHAVE_LIBUDEV=1 -DHAVE_LIBXSLT=1 -DHAVE_LIBVA=1 -DHAVE_LIBVDPAU=1 -DHAVE_LIBNFS=1 -DHAVE_LIBPLIST=1 -DHAVE_OPENSSL=1 -DUSE_UPNP=1 -DHAS_DVD_DRIVE -DLIRC_DEVICE=\"/dev/lircd\" -DHAVE_LIRC=1 -DHAVE_LIBSHAIRPLAY=1 -DBIN_INSTALL_PATH=\"/usr/local/kodi/lib64/kodi\" -DINSTALL_PATH=\"/usr/local/kodi/share/kodi\" -std=c++11 -o CMakeFiles/powermanagement_linux.dir/LogindUPowerSyscall.cpp.o -c /home/inittux/Documents/git/kodi/xbmc/powermanagement/linux/LogindUPowerSyscall.cpp
In file included from /home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.h:26:0,
                 from /home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/RendererVAAPIGL.cpp:21:
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/VideoRenderers/HwDecRender/VaapiEGL.h:71:5: error: ‘VABufferInfo’ does not name a type
     VABufferInfo vBufInfo;
     ^
gmake[2]: *** [build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/RendererVAAPIGL.cpp.o] Error 1
gmake[2]: Leaving directory `/home/inittux/Documents/git/kodi/kodi-build'
gmake[1]: *** [build/cores/VideoPlayer/videorenderers/hwdec/CMakeFiles/videorenderers_hwdec.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp: In member function ‘virtual bool VAAPI::CDecoder::Open(AVCodecContext*, AVCodecContext*, AVPixelFormat)’:
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:595:19: error: ‘VAProfileHEVCMain10’ was not declared in this scope
         profile = VAProfileHEVCMain10;
                   ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:597:19: error: ‘VAProfileHEVCMain’ was not declared in this scope
         profile = VAProfileHEVCMain;
                   ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:629:60: error: ‘VA_RT_FORMAT_YUV420_10BPP’ was not declared in this scope
   if ((m_vaapiConfig.attrib.value & (VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP)) == 0)
                                                            ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp: In member function ‘bool VAAPI::CDecoder::ConfigVAAPI()’:
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:1070:60: error: ‘VA_RT_FORMAT_YUV420_10BPP’ was not declared in this scope
   if ((m_vaapiConfig.attrib.value & (VA_RT_FORMAT_YUV420 | VA_RT_FORMAT_YUV420_10BPP)) == 0)
                                                            ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:1091:32: error: ‘VAProfileHEVCMain10’ was not declared in this scope
   if (m_vaapiConfig.profile == VAProfileHEVCMain10)
                                ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:1092:14: error: ‘VA_RT_FORMAT_YUV420_10BPP’ was not declared in this scope
     format = VA_RT_FORMAT_YUV420_10BPP;
              ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp: In member function ‘virtual bool VAAPI::CVppPostproc::PreInit(VAAPI::CVaapiConfig&, VAAPI::SDiMethods*)’:
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:2265:27: error: ‘VAProfileHEVCMain10’ was not declared in this scope
   if (m_config.profile == VAProfileHEVCMain10)
                           ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:2267:14: error: ‘VA_RT_FORMAT_YUV420_10BPP’ was not declared in this scope
     format = VA_RT_FORMAT_YUV420_10BPP;
              ^
/home/inittux/Documents/git/kodi/xbmc/cores/VideoPlayer/DVDCodecs/Video/VAAPI.cpp:2268:29: error: ‘VA_FOURCC_P010’ was not declared in this scope
     attrib->value.value.i = VA_FOURCC_P010;
                             ^
gmake[2]: *** [build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/VAAPI.cpp.o] Error 1
gmake[2]: Leaving directory `/home/inittux/Documents/git/kodi/kodi-build'
gmake[1]: *** [build/cores/VideoPlayer/codecs/video/CMakeFiles/dvdvideocodecs.dir/all] Error 2
[ 92%] Linking CXX static library powermanagement_linux.a
cd /home/inittux/Documents/git/kodi/kodi-build/build/powermanagement/linux && /usr/bin/cmake3 -P CMakeFiles/powermanagement_linux.dir/cmake_clean_target.cmake
cd /home/inittux/Documents/git/kodi/kodi-build/build/powermanagement/linux && /usr/bin/cmake3 -E cmake_link_script CMakeFiles/powermanagement_linux.dir/link.txt --verbose=1
/usr/bin/ccache /usr/bin/ar qc powermanagement_linux.a  CMakeFiles/powermanagement_linux.dir/ConsoleUPowerSyscall.cpp.o CMakeFiles/powermanagement_linux.dir/UPowerSyscall.cpp.o CMakeFiles/powermanagement_linux.dir/LogindUPowerSyscall.cpp.o
/usr/bin/ccache /usr/bin/ranlib powermanagement_linux.a
gmake[2]: Leaving directory `/home/inittux/Documents/git/kodi/kodi-build'
[ 92%] Built target powermanagement_linux
gmake[1]: Leaving directory `/home/inittux/Documents/git/kodi/kodi-build'
gmake: *** [all] Error 2

Any idea what it's failing on?
Reply
#4
you're libva version is too old.
Reply
#5
(2017-08-29, 21:40)wsnipex Wrote: you're libva version is too old.


Thanks, will try compiling it unde fedora then. What library is this then?
Code:
/usr/bin/ld.gold: error: cannot find -ltspi
/usr/bin/ld.gold: error: cannot find -ltspi
/usr/bin/ld.gold: error: cannot find -ltspi

I installed all the libraries I could find with the name spice in it, can't find any others. So not sure what this library
the error is referring to.
Reply
#6
trousers-devel or similar

In general: centos is a bad choice for running kodi, since it the software included is from the stone age.
Reply
#7
(2017-08-30, 08:58)wsnipex Wrote: trousers-devel or similar

In general: centos is a bad choice for running kodi, since it the software included is from the stone age.
Thanks! I installed another machine with fedora 26, will try continuing compiling
from there. If I succeed in compiling I may decide to re-install my media-center with
fedora 26Big Grin
Reply
#8
I was able to build kodi 18 from source, reinstalled my mediacenter with fedora 26 and it works like a charm there too.

One more question though, is Inputstream.adaptive >=v2.0.4 included in kodi 18 or do I need to include it while compiling
kodi 18? I'm trying to get a new netflix addon to work. It says it
needs that.
Reply
#9
addons are not included. You an build them either via kodi (see https://github.com/xbmc/xbmc/tree/master/cmake/addons ) or by compiling only the addon:
https://github.com/peak3d/inputstream.adaptive

I'd recommend the latter. Just make sure kodi has been installed so cmake can find KodiConfig.cmake (default: /usr/local/share/kodi/cmake/KodiConfig.cmake)
Reply
#10
Thanks! This topic can be marked as solved Smile
Reply
#11
Thread marked solved.
|Banned add-ons (wiki)|Forum rules (wiki)|VPN policy (wiki)|First time user (wiki)|FAQs (wiki) Troubleshooting (wiki)|Add-ons (wiki)|Free content (wiki)|Debug Log (wiki)|

Kodi Blog Posts
Reply

Logout Mark Read Team Forum Stats Members Help
building kodi 18 from source0