v18 Building on Debian. Failed Compilation.
#1
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.
Reply
#2
/usr/bin/ld.gold: error: cannot find -lpthreads

you miss pthreads dependency
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#3
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.
Reply
#4
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.
Reply
#5
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)
Reply
#6
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.
Reply
#7
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.
Reply
#8
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.
Reply
#9
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.
Reply
#10
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.
Reply
#11
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.
Reply
#12
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.
Reply
#13
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.
Reply
#14
https://pastebin.com/53Ht5y4W

Apologies for the delay. Life got in the way. The above paste should be with all suggestions correctly done.
Reply
#15
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:
Reply

Logout Mark Read Team Forum Stats Members Help
Building on Debian. Failed Compilation.0