Kodi Community Forum
Linux Can't build from source anymore due to cmake not finding shared libraries - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Linux (https://forum.kodi.tv/forumdisplay.php?fid=52)
+---- Thread: Linux Can't build from source anymore due to cmake not finding shared libraries (/showthread.php?tid=377998)



Can't build from source anymore due to cmake not finding shared libraries - 3dfx - 2024-06-25

Since the commits reagarding cmake cleanups, I can't build from source anymore:
The Libs are installed, and I also added it to the list of cmake-libraries but cmake doesnt find some libs.

How to get this building again?
@Fuzzard could you give some insights?

Error:
Error with nghttp2:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find NGHttp2 (missing: NGHTTP2_LIBRARY) (found version "")
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindNGHttp2.cmake:31 (find_package_handle_standard_args)
  cmake/modules/FindCurl.cmake:15 (find_package)
  cmake/modules/FindCurl.cmake:87 (buildCurl)
  cmake/scripts/common/Macros.cmake:378 (find_package)
  cmake/scripts/common/Macros.cmake:390 (find_package_with_ver)
  CMakeLists.txt:270 (core_require_dep)

List of libs:
Cant find nghttp2:
cmake -LAH | grep -i http2

NGHTTP2_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libnghttp2.so
pkgcfg_lib_PC_NGHTTP2_nghttp2:FILEPATH=/usr/lib/x86_64-linux-gnu/libnghttp2.so

Error:
Error with Brotli:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Brotli (missing: BROTLICOMMON_LIBRARY BROTLIDEC_LIBRARY)
Call Stack (most recent call first):
  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindBrotli.cmake:48 (find_package_handle_standard_args)
  cmake/modules/FindCurl.cmake:17 (find_package)
  cmake/modules/FindCurl.cmake:87 (buildCurl)
  cmake/scripts/common/Macros.cmake:378 (find_package)
  cmake/scripts/common/Macros.cmake:390 (find_package_with_ver)
  CMakeLists.txt:270 (core_require_dep)

List of libs:
Cant find Brotlie:
cmake -LAH | grep -i brotli

BROTLICOMMON:FILEPATH=/usr/lib/x86_64-linux-gnu/libbrotlicommon.a
BROTLICOMMON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libbrotlicommon.a
BROTLIDEC:FILEPATH=/usr/lib/x86_64-linux-gnu/libbrotlidec.a
BROTLIDEC_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libbrotlidec.a
BROTLI_INCLUDE_DIRTongueATH=/usr/include



RE: Can't build from source anymore due to cmake not finding shared libraries - -jcb- - 2024-06-25

Hi because I lost my 1st very long post (ip locked) I will do short this time.

debian-12.5.0-amd64-netinst.iso
Create a user kodi
just ssh ans system utilities
then : https://paste.kodi.tv/ececihofug

If unlocked I will create a real post (And the forum think I post a log so I cant include the method in a answer....)

jcb


RE: Can't build from source anymore due to cmake not finding shared libraries - Fuzzard - 2024-06-25

No idea. why would you be building internal curl?


RE: Can't build from source anymore due to cmake not finding shared libraries - 3dfx - 2024-06-30

I started building internal curl when it started throwing errors, but it seems there was something wrong with my pkgcfg Confused


RE: Can't build from source anymore due to cmake not finding shared libraries - Fuzzard - 2024-06-30

Best piece of advice I have for Linux users, do not build internal dependencies. Use/fix your system libs.

The only reason they can be built for Linux is we use for CI, but it's not complete, and relies on a number of oddities to even do what it does.

So to reiterate, just don't. Use your system libs always


RE: Can't build from source anymore due to cmake not finding shared libraries - 3dfx - 2024-06-30

Does this apply also for ffmpeg?
I build that internally as, somehow, I got a newer version installed and I got the issues like in this PR: Update to ffmpeg 7.0


RE: Can't build from source anymore due to cmake not finding shared libraries - Fuzzard - 2024-06-30

No idea what distro your running, but if it has ffmpeg 6 libs, I'd use them


RE: Can't build from source anymore due to cmake not finding shared libraries - 3dfx - 2024-07-01

I'm using Ubuntu 22.04, version of ffmpeg is 7, that's why I couldn't build anymore, so I had to switch building it internally.

Here is the list of installed ffmpeg-libraries:
dpkg -l | grep -i ffmpeg:

ii  ffmpeg                                        7:4.4.2-0ubuntu0.22.04.1                     amd64        Tools for transcoding, streaming and playing of multimedia files
ii  libavcodec-dev:amd64                          7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with de/encoders for audio/video codecs - development files
ii  libavcodec58:amd64                            7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with de/encoders for audio/video codecs - runtime files
ii  libavdevice58:amd64                           7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for handling input and output devices - runtime files
ii  libavfilter-dev:amd64                         7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library containing media filters - development files
ii  libavfilter7:amd64                            7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library containing media filters - runtime files
ii  libavformat-dev:amd64                         7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with (de)muxers for multimedia containers - development files
ii  libavformat58:amd64                           7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with (de)muxers for multimedia containers - runtime files
ii  libavutil-dev:amd64                           7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with functions for simplifying programming - development files
ii  libavutil56:amd64                             7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library with functions for simplifying programming - runtime files
ii  libpostproc-dev:amd64                         7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for post processing - development files
ii  libpostproc55:amd64                           7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for post processing - runtime files
ii  libswresample-dev:amd64                       7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for audio resampling, rematrixing etc. - development files
ii  libswresample3:amd64                          7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for audio resampling, rematrixing etc. - runtime files
ii  libswscale-dev:amd64                          7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for image scaling and various conversions - development files
ii  libswscale5:amd64                             7:4.4.2-0ubuntu0.22.04.1                     amd64        FFmpeg library for image scaling and various conversions - runtime files



RE: Can't build from source anymore due to cmake not finding shared libraries - graysky - 2024-07-01

(2024-06-30, 09:15)Fuzzard Wrote: Best piece of advice I have for Linux users, do not build internal dependencies. Use/fix your system libs.

Are you sure about this?  On rolling release distros, the system ffmpeg can and often does exceed the Kodi rversion which is the past has lead to breakage in Kodi until the Kodi version catches up.  On the other hand, building with an internal ffmpeg allows that version to stay with the Kodi version.  For example, right now ffmpeg is 7.0.1 but Omega is 6.0.1.


RE: Can't build from source anymore due to cmake not finding shared libraries - Fuzzard - 2024-07-01

Do whatever you need to. Advice is just that, take it or not, that's up to you


RE: Can't build from source anymore due to cmake not finding shared libraries - 3dfx - 2024-07-01

Don't get me wrong, I'm not against taking any advice, my thread wouldn't make sense if it would be the case.
I was just curious why this happened or if I did something wrong as it was not building anymore.


RE: Can't build from source anymore due to cmake not finding shared libraries - graysky - 2024-07-01

(2024-07-01, 13:58)3dfx Wrote: I was just curious why this happened or if I did something wrong as it was not building anymore.

It happened because your distro is shipping a version of ffmpeg that is different from what Kodi is expecting.  Until the PR to update to ffmpeg 7.0.1 is merged, as of the time I am posting this reply, xbmc/master wants version 6.0.1.  See: https://github.com/xbmc/xbmc/commit/9269a3a50ce07bf998f84e76a7f9ae9ac11cc4e9

In part to avoid this version mismatch, some distros build with various Kodi components as their respective internal options.  Arch Linux for example does this for multiple components including ffmpeg, see: https://gitlab.archlinux.org/archlinux/packaging/packages/kodi/-/blob/main/PKGBUILD?ref_type=heads#L147-154