Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Building Kodi; dependencies
@ 2018-02-25 10:59 Sjoerd Venema
  2018-02-25 15:01 ` Bernd Kuhls
  2018-02-25 16:23 ` Thomas Petazzoni
  0 siblings, 2 replies; 4+ messages in thread
From: Sjoerd Venema @ 2018-02-25 10:59 UTC (permalink / raw)
  To: buildroot

I'm using Buildroot for some time now, now decided to make a "Buildroot"
for my Kodi. However, I'm getting stuck at some sort of catch 22 trying to
fulfill all of its dependencies..

*** kodi needs python w/ .py modules, a uClibc or glibc toolchain w/ C++,
threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6 ***
*** kodi needs an OpenGL EGL with either an openGL or an OpenGL ES backend
***

Coming from:

comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/
C++, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS\
|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
|| !BR2_HOST_GCC_AT_LEAST_4_6 \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
|| BR2_TOOLCHAIN_USES_MUSL \
|| !BR2_PACKAGE_PYTHON \
|| BR2_PACKAGE_PYTHON_PYC_ONLY

First off, I assume the ! means a Not, so, for example  !BR2_USE_WCHAR
means that BR2_USE_WCHAR must be [=n]. Correct?

Secondly, can I set all these dependencies via make menuconfig? Or do I
have to configure things outside of that environment?

Now, a "catch 22" seems to be for example: BR2_TOOLCHAIN_HAS_THREADS (must
be false) is selected by BR2_TOOLCHAIN_USES_MUSL (must be true).

What am I missing here? Also, if anyone would have a working Kodi defconfig
for a Raspberry Pi, I'd be very interested ;-)

Thanks!
Sjoerd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180225/968f7730/attachment.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] Building Kodi; dependencies
  2018-02-25 10:59 [Buildroot] Building Kodi; dependencies Sjoerd Venema
@ 2018-02-25 15:01 ` Bernd Kuhls
  2018-02-25 16:17   ` Sjoerd Venema
  2018-02-25 16:23 ` Thomas Petazzoni
  1 sibling, 1 reply; 4+ messages in thread
From: Bernd Kuhls @ 2018-02-25 15:01 UTC (permalink / raw)
  To: buildroot

Hi Sjoerd,

Am Sun, 25 Feb 2018 11:59:05 +0100 schrieb Sjoerd Venema:

> Coming from:
> 
> comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain 
w/
> C++, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
> depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS\
> || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> || !BR2_HOST_GCC_AT_LEAST_4_6 \
> || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
> || BR2_TOOLCHAIN_USES_MUSL \
> || !BR2_PACKAGE_PYTHON \
> || BR2_PACKAGE_PYTHON_PYC_ONLY
> 
> First off, I assume the ! means a Not, so, for example  !BR2_USE_WCHAR
> means that BR2_USE_WCHAR must be [=n]. Correct?

technically yes, but the dependencies you are looking at are only valid 
for the comment telling you why Kodi can not be selected atm. To build 
Kodi you need to enable all necessary options for the comment to 
disappear. For example: You need a wchar-enabled toolchain.

The positive list of Kodi dependencies can be found here:
https://git.buildroot.net/buildroot/tree/package/kodi/Config.in#n36

> Secondly, can I set all these dependencies via make menuconfig? Or do I
> have to configure things outside of that environment?

Yes. No. ;)

> Now, a "catch 22" seems to be for example: BR2_TOOLCHAIN_HAS_THREADS 
(must
> be false) is selected by BR2_TOOLCHAIN_USES_MUSL (must be true).

You need a toolchains with threads, and a musl-based toolchain can not be 
used for Kodi, only uClibc & glibc.

Here is the list of minimal menuconfig options needed to enable Kodi for 
x86_64 in an otherwise unaltered buildroot base directory:

Target options, "Target Architecture", "x86_64"

Toolchain, "Enable WCHAR support", "Enable C++ support"

Target packages
- Interpreter languages and scripting, "Python", "python module format to
  install", ".py sources only"
- Graphic libraries and applications (graphic/text), "X.org X Window
  System"
- Graphic libraries and applications (graphic/text), "mesa3d", "DRI
  swrast driver", "OpenGL EGL"
- Audio and video applications, "kodi"

Please adjust these options for your personal needs.

Regards, Bernd

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] Building Kodi; dependencies
  2018-02-25 15:01 ` Bernd Kuhls
@ 2018-02-25 16:17   ` Sjoerd Venema
  0 siblings, 0 replies; 4+ messages in thread
From: Sjoerd Venema @ 2018-02-25 16:17 UTC (permalink / raw)
  To: buildroot

Thanks! I managed to select it :)

On 25 February 2018 at 16:01, Bernd Kuhls <bernd.kuhls@t-online.de> wrote:

> Hi Sjoerd,
>
> Am Sun, 25 Feb 2018 11:59:05 +0100 schrieb Sjoerd Venema:
>
> > Coming from:
> >
> > comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain
> w/
> > C++, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
> > depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
> > depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS\
> > || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> > || !BR2_HOST_GCC_AT_LEAST_4_6 \
> > || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
> > || BR2_TOOLCHAIN_USES_MUSL \
> > || !BR2_PACKAGE_PYTHON \
> > || BR2_PACKAGE_PYTHON_PYC_ONLY
> >
> > First off, I assume the ! means a Not, so, for example  !BR2_USE_WCHAR
> > means that BR2_USE_WCHAR must be [=n]. Correct?
>
> technically yes, but the dependencies you are looking at are only valid
> for the comment telling you why Kodi can not be selected atm. To build
> Kodi you need to enable all necessary options for the comment to
> disappear. For example: You need a wchar-enabled toolchain.
>
> The positive list of Kodi dependencies can be found here:
> https://git.buildroot.net/buildroot/tree/package/kodi/Config.in#n36
>
> > Secondly, can I set all these dependencies via make menuconfig? Or do I
> > have to configure things outside of that environment?
>
> Yes. No. ;)
>
> > Now, a "catch 22" seems to be for example: BR2_TOOLCHAIN_HAS_THREADS
> (must
> > be false) is selected by BR2_TOOLCHAIN_USES_MUSL (must be true).
>
> You need a toolchains with threads, and a musl-based toolchain can not be
> used for Kodi, only uClibc & glibc.
>
> Here is the list of minimal menuconfig options needed to enable Kodi for
> x86_64 in an otherwise unaltered buildroot base directory:
>
> Target options, "Target Architecture", "x86_64"
>
> Toolchain, "Enable WCHAR support", "Enable C++ support"
>
> Target packages
> - Interpreter languages and scripting, "Python", "python module format to
>   install", ".py sources only"
> - Graphic libraries and applications (graphic/text), "X.org X Window
>   System"
> - Graphic libraries and applications (graphic/text), "mesa3d", "DRI
>   swrast driver", "OpenGL EGL"
> - Audio and video applications, "kodi"
>
> Please adjust these options for your personal needs.
>
> Regards, Bernd
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180225/f8096919/attachment.html>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] Building Kodi; dependencies
  2018-02-25 10:59 [Buildroot] Building Kodi; dependencies Sjoerd Venema
  2018-02-25 15:01 ` Bernd Kuhls
@ 2018-02-25 16:23 ` Thomas Petazzoni
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-02-25 16:23 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 25 Feb 2018 11:59:05 +0100, Sjoerd Venema wrote:

> Coming from:
> 
> comment "kodi needs python w/ .py modules, a uClibc or glibc toolchain w/
> C++, threads, wchar, dynamic library, gcc >= 4.8, host gcc >= 4.6"
> depends on BR2_PACKAGE_KODI_ARCH_SUPPORTS
> depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS\
> || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> || !BR2_HOST_GCC_AT_LEAST_4_6 \
> || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
> || BR2_TOOLCHAIN_USES_MUSL \
> || !BR2_PACKAGE_PYTHON \
> || BR2_PACKAGE_PYTHON_PYC_ONLY
> 
> First off, I assume the ! means a Not, so, for example  !BR2_USE_WCHAR
> means that BR2_USE_WCHAR must be [=n]. Correct?

You are looking at the dependencies of the comment, not the
dependencies of the option. So they are inverted.

For Kodi to build, wchar support must be available in the toolchain,
i.e BR2_USE_WCHAR must be 'y'. Therefore BR2_PACKAGE_KODI has a
"depends on BR2_USE_WCHAR"

Due to this dependency, the "kodi" option is not visible to the user
when wchar support is not enabled. In an attempt to help the user, in
such a situation we show the comment that you have seen. And therefore,
this comment is shown when one of the dependencies missing. Hence is
has a "depends on !BR2_USE_WCHAR" so that the comment appears when
wchar is *NOT* available.

Summary: enable BR2_USE_WCHAR.

> Secondly, can I set all these dependencies via make menuconfig? Or do I
> have to configure things outside of that environment?

Everything must be configured from inside menuconfig (unless you really
know what you're doing, in which case you can manually edit the .config
file).

> Now, a "catch 22" seems to be for example: BR2_TOOLCHAIN_HAS_THREADS (must
> be false)

No, BR2_TOOLCHAIN_HAS_THREADS must be true. See above my explanation
about the comment.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-02-25 16:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-25 10:59 [Buildroot] Building Kodi; dependencies Sjoerd Venema
2018-02-25 15:01 ` Bernd Kuhls
2018-02-25 16:17   ` Sjoerd Venema
2018-02-25 16:23 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox