Kodi Community Forum

Full Version: Building on Debian. Failed Compilation.
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
https://pastebin.com/yuYaxVLa

The above is my output whilst trying to build Kodi Leia on Debian Stretch. In an effort to use Debian, yet still maintain a supported version I am attempting to backport from the PPA. I avoid make / make install routines like the plague, only as a last resort. I've successfully done the dependencies. This is where it stops for the time being though. Any help would be appreciated.

This is being done inside a clean chroot on my laptop built with debootstrap. May be missing a package that is normally installed or something? Guessing of course.
/usr/bin/ld.gold: error: cannot find -lpthreads

you miss pthreads dependency
Code:
root@homewrecker:/# dpkg -S libpthread
libpthread-stubs0-dev:amd64: /usr/share/doc/libpthread-stubs0-dev/README
libpthread-stubs0-dev:amd64: /usr/share/doc/libpthread-stubs0-dev
libc6-dev:amd64: /usr/lib/x86_64-linux-gnu/libpthread_nonshared.a
libc6:amd64: /lib/x86_64-linux-gnu/libpthread-2.24.so
libpthread-stubs0-dev:amd64: /usr/share/doc/libpthread-stubs0-dev/copyright
libpthread-stubs0-dev:amd64: /usr/share/doc/libpthread-stubs0-dev/changelog.Debian.gz
libc6:amd64: /lib/x86_64-linux-gnu/libpthread.so.0
libc6-dev:amd64: /usr/lib/x86_64-linux-gnu/libpthread.so
libc6-dev:amd64: /usr/lib/x86_64-linux-gnu/libpthread.a

Not sure what is missing here. I've tried everything I could find by searching pthreads.

Installed individually and tested building with everything found here https://packages.debian.org/search?lang=...ds=pthread . Still error.

*EDIT* Eliminated the chroot as being a possible issue. Same error compiling on my laptop in my normal installation.
libpthreads (note the "s") is not present on linux.
However for a reason that I don't understand cmake checks for both libpthread and libpthreads to know which it should use,
libpthreads test should _always_ fail on modern linux, this is not the actual error.

You are looking at the wrong place.
Post the actual error you see at console first.
Ok made a clean chroot and redid the build outputting to a file and posted to pastebin.

https://pastebin.com/TPK6gmrg

I think all of it went to the file that is on the paste. This is what I could see in the terminal.

https://pastebin.com/a457cvV9

Cmake Error log

https://pastebin.com/xsYkMbSk

Cmake Output Log

https://pastebin.com/nEU6SFF9

This is suspect I suppose. Not sure what to do  about it though. At the bottom of the Found / Not Found it says configuring incomplete errors occured.
Code:
grep "Could NOT" kodibuildfail 
-- Could NOT find CAP (missing:  CAP_LIBRARY CAP_INCLUDE_DIR) 
-- Could NOT find CCache (missing:  CCACHE_PROGRAM) 
-- Could NOT find MDNS (missing:  MDNS_LIBRARY MDNS_INCLUDE_DIR) 
-- Could NOT find Sndio (missing:  SNDIO_LIBRARY SNDIO_INCLUDE_DIR)
The existing, but empty (not valid), '.git' folder is causing the errors in cmake/scripts/common/Macros.cmake line 656 and 657. You are missing libfmt3-dev dependency, which causes the other error.

(2019-03-06, 03:16)jmgibson1981 Wrote: [ -> ]
Code:
grep "Could NOT" kodibuildfail
-- Could NOT find CAP (missing:  CAP_LIBRARY CAP_INCLUDE_DIR)
-- Could NOT find CCache (missing:  CCACHE_PROGRAM)
-- Could NOT find MDNS (missing:  MDNS_LIBRARY MDNS_INCLUDE_DIR)
-- Could NOT find Sndio (missing:  SNDIO_LIBRARY SNDIO_INCLUDE_DIR)

Those are optional dependencies, it's okay if they are not found.
Code:
# apt policy libfmt3-dev
libfmt3-dev:
  Installed: 3.0.1+ds-1
  Candidate: 3.0.1+ds-1
  Version table:
 *** 3.0.1+ds-1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages
        100 /var/lib/dpkg/status

I installed the dependencies with mk-build-deps. It installed everything in the build-depends. Removed the .git folders/files. Still no bueno.

For what its worth I tried building the same way in Ubuntu.  It couldn't even find the libfmt3-dev dependency anywhere. So that is as far as I got was installing the deps.
In newer Ubuntu and Debian versions libfmt3-dev is named libfmt-dev.
Remove the following lines, https://github.com/xbmc/xbmc/blob/master...ke#L60-L65
If it still doesn't work, post your new build output and please do not split stdout and stderr into separate pastes. It's hard to read that way.
Sorry was unsure how to do that at the time. I have a new log of a failed build after commenting out the above lines as requested.

Possibly obvious, for anyone looking to pipe all output to a log file run as so.

Code:
dpkg-buildpackage -us -uc &> output.logfile

https://pastebin.com/MhNPjYaF

Should be the whole thing.
You are still only excluding the content of the .git folder, while keeping an empty .git folder (--tar-ignore=.git/*). You also have to exclude the empty .git folder.
For the still occurring fmt find error, additionally remove FMT_VERSION from https://github.com/xbmc/xbmc/blob/master....cmake#L87.
the empty .git folder is there again. I'm guessing you're trying to build the source package from our ppa? If yes, then you just found a packaging bug on my end. The contents of .git are skipped during tarball generation, but not the folder itself.
I'll fix that with the next nightly build.
A little grep and I found what I think you are looking for. My apologies, I'm very out of my element here. Definitely a user, not a packager :/ I've changed it to below. Learning, slowly.

Code:
cat ./options 
tar-ignore = ".git"
tar-ignore = "build/*"
tar-ignore = "kodi_build*/*"

I currenty have the above change as well as commented out both recommendations in cmake/modules/FindFmt.cmake. Here is where I sit.

https://pastebin.com/xKuJ8XNK

I do notice that my log is getting smaller, assuming eliminating errors and issues.
Looks like you now removed the whole line (https://github.com/xbmc/xbmc/blob/master....cmake#L87), but you should only remove FMT_VERSION from it.
https://pastebin.com/53Ht5y4W

Apologies for the delay. Life got in the way. The above paste should be with all suggestions correctly done.
You have to provide all needed dependencies:

CMake Error at cmake/modules/FindRapidJSON.cmake:67 (find_package):
Could not find a package configuration file provided by "RapidJSON"
(requested version 1.1.0) with any of the following names:
Pages: 1 2