All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v5 0/5] Introducing XBMC
@ 2014-02-13 22:59 Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue Maxime Hadjinlian
                   ` (6 more replies)
  0 siblings, 7 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

Hi all,

This is a new version of the series of patch introducing XBMC.
A new one appeared, which add the dependencies of Java on the host machine for
XBMC.
Also, the $(MAKE1) for XBMC has been removed. After doing a loop of 50 builds
and no trouble so far to report, I assumed it was safe, at least for now.

As always, I wait for your reviews and comments !

Maxime Hadjinlian (5):
  sdl: fix autoreconf timing issue
  sdl: add host version
  sdl_image: add host version
  dependencies.sh: XBMC needs java on the host
  xbmc: new package

 package/Config.in                                  |   1 +
 .../sdl/sdl-0001-use-correct-directfb-config.patch |  19 +-
 package/sdl/sdl.mk                                 |   2 +
 package/sdl_image/sdl_image.mk                     |  11 ++
 package/xbmc/Config.in                             | 202 +++++++++++++++++++++
 package/xbmc/S50xbmc                               |  41 +++++
 package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
 .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167 +++++++++++++++++
 package/xbmc/xbmc.mk                               | 175 ++++++++++++++++++
 package/xbmc/xbmc.service                          |  12 ++
 support/dependencies/dependencies.sh               |  10 +
 11 files changed, 702 insertions(+), 17 deletions(-)
 create mode 100644 package/xbmc/Config.in
 create mode 100755 package/xbmc/S50xbmc
 create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
 create mode 100644 package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
 create mode 100644 package/xbmc/xbmc.mk
 create mode 100644 package/xbmc/xbmc.service

--
1.8.5.3

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

* [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
@ 2014-02-13 22:59 ` Maxime Hadjinlian
  2014-02-13 23:03   ` Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 2/5] sdl: add host version Maxime Hadjinlian
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

Context:
The autobuilders were failing on the symbol _XData32 being in conflicts.
A patch had been added to SDL to add a check to the configure.in

Problem:
Sometimes, the build would fail, because of an _XData32 symbol being in
conflicts eventhrough the patch was here.

What was happening:
Following the classic buildroot workflow:
   - Extract
   - [...]
   - Apply 001 patch, which touches configure.in AND configure
   - Apply 002 patch, which touches configure.in
   - Invoke autogen.sh
   - [...]

Right before running autogen.sh, we have configure.in which is more
recent than configure, which is fine.
We then, execute autogen.sh which, basically, runs autoconf.

If your machine was lighty loaded, the time difference between
configure.in and configure was really tiny (ms order), which seems to be
neglected by autoconf.
The results was that the configure was *NOT* generated. And our second
patch was taken into account.

If your machine was under heavy load, the time difference between the
two files would have been greater and then *maybe* picked up by
autoconf. And then the configure file was re-generated.

When the 0001 patch was introduced, SDL package did *NOT* run it's
autogen.sh, which is why it touches also the configure.
This came later, causing this behavior.

Fixes:
  http://autobuild.buildroot.net/results/d1c/d1c36f634dbf6b6e5d18444c2a23dfd129202b80/

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 .../sdl/sdl-0001-use-correct-directfb-config.patch    | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)

diff --git a/package/sdl/sdl-0001-use-correct-directfb-config.patch b/package/sdl/sdl-0001-use-correct-directfb-config.patch
index 2250790..ef671a1 100644
--- a/package/sdl/sdl-0001-use-correct-directfb-config.patch
+++ b/package/sdl/sdl-0001-use-correct-directfb-config.patch
@@ -4,13 +4,10 @@ The configure script has just checked for the correct directfb-config
 script, so also use it for the version check instead of whatever
 might be in the path.
 
-Also patch the generated configure, as it doesn't cleanly autoreconf.
-
 Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
 ---
- configure    |    2 +-
  configure.in |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ 1 files changed, 1 insertions(+), 1 deletions(-)
 
 Index: SDL-1.2.15/configure.in
 ===================================================================
@@ -25,16 +22,4 @@ Index: SDL-1.2.15/configure.in
              HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
              if test $HAVE_VERSION -ge $NEED_VERSION; then
                  DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
-Index: SDL-1.2.15/configure
-===================================================================
---- SDL-1.2.15.orig/configure
-+++ SDL-1.2.15/configure
-@@ -24958,7 +24958,7 @@
-         else
-             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
-             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
--            set -- `directfb-config --version | sed 's/\./ /g'`
-+            set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
-             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
-             if test $HAVE_VERSION -ge $NEED_VERSION; then
-                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
+
-- 
1.8.5.3

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

* [Buildroot] [PATCH v5 2/5] sdl: add host version
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue Maxime Hadjinlian
@ 2014-02-13 22:59 ` Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 3/5] sdl_image: " Maxime Hadjinlian
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

Host version is needed to build xbmc

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Changes v3 -> v4:
  - None
Changes v2 -> v3:
  - None
Changes v1 -> v2:
  - None
---
 package/sdl/sdl.mk | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/package/sdl/sdl.mk b/package/sdl/sdl.mk
index ba5fbca..0972acb 100644
--- a/package/sdl/sdl.mk
+++ b/package/sdl/sdl.mk
@@ -18,6 +18,7 @@ define SDL_RUN_AUTOGEN
 endef
 
 SDL_POST_PATCH_HOOKS += SDL_RUN_AUTOGEN
+HOST_SDL_POST_PATCH_HOOKS += SDL_RUN_AUTOGEN
 SDL_DEPENDENCIES += host-automake host-autoconf host-libtool
 
 
@@ -80,3 +81,4 @@ endef
 SDL_POST_INSTALL_STAGING_HOOKS += SDL_FIXUP_SDL_CONFIG
 
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
1.8.5.3

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

* [Buildroot] [PATCH v5 3/5] sdl_image: add host version
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 2/5] sdl: add host version Maxime Hadjinlian
@ 2014-02-13 22:59 ` Maxime Hadjinlian
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host Maxime Hadjinlian
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

Host version is needed to build xbmc

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Changes v3 -> v4:
  - None
Changes v2 -> v3:
  - None
Changes v1 -> v2:
  - None
---
 package/sdl_image/sdl_image.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/package/sdl_image/sdl_image.mk b/package/sdl_image/sdl_image.mk
index ba9751d..05b9a1f 100644
--- a/package/sdl_image/sdl_image.mk
+++ b/package/sdl_image/sdl_image.mk
@@ -38,4 +38,15 @@ SDL_IMAGE_DEPENDENCIES = sdl \
 	$(if $(BR2_PACKAGE_SDL_IMAGE_TIFF),tiff) \
 	$(if $(BR2_PACKAGE_SDL_IMAGE_WEBP),webp)
 
+HOST_SDL_IMAGE_CONF_OPT = --with-sdl-prefix=$(HOST_DIR)/usr \
+                --with-sdl-exec-prefix=$(HOST_DIR)/usr \
+                --disable-sdltest \
+                --disable-static \
+                --disable-jpg-shared \
+                --disable-png-shared \
+                --disable-tif-shared \
+
+HOST_SDL_IMAGE_DEPENDENCIES = host-libjpeg host-libpng host-sdl
+
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
1.8.5.3

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
                   ` (2 preceding siblings ...)
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 3/5] sdl_image: " Maxime Hadjinlian
@ 2014-02-13 22:59 ` Maxime Hadjinlian
  2014-02-14  8:39   ` Thomas Petazzoni
  2014-02-14 20:35   ` Martin Bark
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 5/5] xbmc: new package Maxime Hadjinlian
                   ` (2 subsequent siblings)
  6 siblings, 2 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

XBMC uses a code-generator which is build in two phases:
In the first phase SWIG is used to parse C++ header files that define the API.
SWIG outputs an XML file that contains a complete description of the structure
of the API.
In the second phase, the XML file is ingested by a Groovy (Java) program that
then creates C++ code that forms the bridge to the scripting language (Python).

The second phase is why we need java on the host.

You can learn more at the XBMC's wiki:
http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 support/dependencies/dependencies.sh | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 0e7e1fa..5f77f35 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -191,6 +191,16 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ; then
 	done
 fi
 
+if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
+	for prog in java; do
+		if ! which $prog > /dev/null ; then
+			echo >&2
+			echo "You must install '$prog' on your build machine" >&2
+			exit 1
+		fi
+	done
+fi
+
 if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
 	if test ! -f /lib/ld-linux.so.2 ; then
 		echo
-- 
1.8.5.3

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
                   ` (3 preceding siblings ...)
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host Maxime Hadjinlian
@ 2014-02-13 22:59 ` Maxime Hadjinlian
  2014-02-14 22:59   ` Martin Bark
  2014-02-15 11:51   ` Yann E. MORIN
  2014-02-14  6:08 ` [Buildroot] [PATCH v5 0/5] Introducing XBMC Bernd Kuhls
  2014-02-14 22:41 ` Martin Bark
  6 siblings, 2 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 22:59 UTC (permalink / raw)
  To: buildroot

XBMC is an award-winning free and open source (GPL) software media player and
entertainment hub for digital media.
This package was originally found at : https://github.com/huceke/buildroot-rbp
By gimli <ebsi4711@gmail.com>

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Cc: gimli <ebsi4711@gmail.com>
---
Changes v4 -> v5:
  - Remove MAKE1, seems to work fine with parallel build.
Changes v3 -> v4:
  - Rework init script
  - Add systemd startup service
Changes v2 -> v3:
  - Fix indent
  - Change librtmp to rtmpdump
Changes v1 -> v2:
  - Fix header (Yann E. Morin)
  - Fix comment on toolchain option (Peter Korsgaard)
---
 package/Config.in                                  |   1 +
 package/xbmc/Config.in                             | 202 +++++++++++++++++++++
 package/xbmc/S50xbmc                               |  41 +++++
 package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
 .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167 +++++++++++++++++
 package/xbmc/xbmc.mk                               | 175 ++++++++++++++++++
 package/xbmc/xbmc.service                          |  12 ++
 7 files changed, 677 insertions(+)
 create mode 100644 package/xbmc/Config.in
 create mode 100755 package/xbmc/S50xbmc
 create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
 create mode 100644 package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
 create mode 100644 package/xbmc/xbmc.mk
 create mode 100644 package/xbmc/xbmc.service

diff --git a/package/Config.in b/package/Config.in
index 6c3e769..5f32a28 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -26,6 +26,7 @@ source "package/tstools/Config.in"
 source "package/vlc/Config.in"
 source "package/vorbis-tools/Config.in"
 source "package/wavpack/Config.in"
+source "package/xbmc/Config.in"
 source "package/yavta/Config.in"
 endmenu
 
diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
new file mode 100644
index 0000000..e3e96ef
--- /dev/null
+++ b/package/xbmc/Config.in
@@ -0,0 +1,202 @@
+comment "xbmc requires an OpenGL-capable backend"
+	depends on !(BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES)
+
+# External toolchain are required because of a missing bitdefs.h
+comment "xbmc needs an (e)glibc external toolchain w/ C++ and WCHAR"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR) || BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_BUILDROOT
+
+menuconfig BR2_PACKAGE_XBMC
+	bool "xbmc"
+	select BR2_PACKAGE_BOOST
+	select BR2_PACKAGE_BOOST_THREAD
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_JASPER
+	select BR2_PACKAGE_LIBCDIO
+	select BR2_PACKAGE_LIBCURL
+	select BR2_PACKAGE_LIBFRIBIDI
+	select BR2_PACKAGE_LIBGCRYPT
+	select BR2_PACKAGE_LIBMODPLUG
+	select BR2_PACKAGE_LIBMPEG2
+	select BR2_PACKAGE_LIBUNGIF
+	select BR2_PACKAGE_LZO
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_PCRE
+	select BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_PYTHON_BSDDB
+	select BR2_PACKAGE_PYTHON_BZIP2
+	select BR2_PACKAGE_PYTHON_CURSES
+	select BR2_PACKAGE_PYTHON_PYEXPAT
+	select BR2_PACKAGE_PYTHON_READLINE
+	select BR2_PACKAGE_PYTHON_SQLITE
+	select BR2_PACKAGE_PYTHON_SSL
+	select BR2_PACKAGE_PYTHON_UNICODEDATA
+	select BR2_PACKAGE_PYTHON_ZLIB
+	select BR2_PACKAGE_READLINE
+	select BR2_PACKAGE_SQLITE
+	select BR2_PACKAGE_TAGLIB
+	select BR2_PACKAGE_TIFF
+	select BR2_PACKAGE_TINYXML
+	select BR2_PACKAGE_YAJL
+	select BR2_PACKAGE_ZLIB
+	depends on BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && !BR2_TOOLCHAIN_USES_UCLIBC
+	depends on !BR2_TOOLCHAIN_BUILDROOT
+	help
+	  XBMC is an award-winning free and open source (GPL) software
+	  media player and entertainment hub for digital media.
+
+	  http://xbmc.org
+
+if BR2_PACKAGE_XBMC
+
+config BR2_PACKAGE_XBMC_AVAHI
+	bool "avahi"
+	select BR2_PACKAGE_AVAHI
+	select BR2_PACKAGE_AVAHI_DAEMON
+	help
+	  Enable Avahi support.
+	  Select this if you want XBMC to support Bonjour protocol.
+
+config BR2_PACKAGE_XBMC_DBUS
+	bool "dbus"
+	select BR2_PACKAGE_DBUS
+	help
+	  Enable DBUS support
+
+config BR2_PACKAGE_XBMC_FLAC
+	bool "flac"
+	select BR2_PACKAGE_FLAC
+	help
+	  Enable flac input/streaming support.
+	  Select this if you want to play back FLAC files.
+
+config BR2_PACKAGE_XBMC_LIBASS
+	bool "libass"
+	select BR2_PACKAGE_LIBASS
+	help
+	  Enable ASS subtitles support
+
+config BR2_PACKAGE_XBMC_LIBBLURAY
+	bool "libbluray"
+	select BR2_PACKAGE_LIBBLURAY
+	help
+	  Enable bluray input support.
+	  Select this if you want to play back bluray content.
+
+config BR2_PACKAGE_XBMC_LIBCEC
+	bool "libcec"
+	select BR2_PACKAGE_LIBCEC
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_WCHAR
+	help
+	  Enable CEC support.
+	  Select this if you want XBMC to support HDMI CEC.
+
+if BR2_PACKAGE_XBMC_LIBCEC && BR2_arm
+
+config BR2_PACKAGE_XBMC_LIBCEC_RBP
+	bool "rpi support"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_LARGEFILE
+	select BR2_PACKAGE_RPI_USERLAND
+	select BR2_PACKAGE_LIBCEC_RBP
+	help
+	  Enable RasberryPi support
+
+comment "rpi support requires a toolchain with C++ and LARGEFILE support"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_LARGEFILE)
+
+endif
+
+comment "libcec requires a toolchain with C++ and WCHAR support"
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR)
+
+config BR2_PACKAGE_XBMC_LIBMICROHTTPD
+	bool "libmicrohttpd"
+	select BR2_PACKAGE_LIBMICROHTTPD
+	help
+	  Enable webserver feature
+
+config BR2_PACKAGE_XBMC_LIBNFS
+	bool "libnfs"
+	select BR2_PACKAGE_LIBNFS
+	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
+	help
+	  Enable NFS server support.
+
+comment "libnfs support requires a toolchain with LARGEFILE and RPC support"
+	depends on !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_NATIVE_RPC)
+
+config BR2_PACKAGE_XBMC_RTMPDUMP
+	bool "librtmp"
+	select BR2_PACKAGE_RTMPDUMP
+	help
+	  Enable rtmp input support.
+	  Select this if you want to play back rtmp stream.
+
+config BR2_PACKAGE_XBMC_LIBSAMPLERATE
+	bool "libsamplerate"
+	select BR2_PACKAGE_LIBSAMPLERATE
+	help
+	  Enable libsamplerate input support.
+	  Select this for software sample rate conversion.
+
+config BR2_PACKAGE_XBMC_LIBSHAIRPLAY
+	bool "libshairport"
+	select BR2_PACKAGE_LIBSHAIRPLAY
+	depends on BR2_INET_IPV6
+	help
+	  Enable shairport support.
+	  Select this if you want to stream content from Apple device.
+
+comment "libshairport support requires a toolchain with IPV6 support"
+	depends on !(BR2_INET_IPV6)
+
+config BR2_PACKAGE_XBMC_LIBSMBCLIENT
+	bool "libsmbclient"
+	select BR2_PACKAGE_SAMBA
+	select BR2_PACKAGE_SAMBA_LIBSMBCLIENT
+	help
+	  Enable Samba support
+
+config BR2_PACKAGE_XBMC_LIBTHEORA
+	bool "libtheora"
+	select BR2_PACKAGE_LIBTHEORA
+	help
+	  Enable theora input support.
+	  Select this if you want to play back OGG/OGV files (Video).
+
+config BR2_PACKAGE_XBMC_LIBUSB
+	bool "libusb"
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_LIBUSB
+	select BR2_PACKAGE_LIBUSB_COMPAT
+	help
+	  Enable libusb support.
+
+config BR2_PACKAGE_XBMC_MAD
+	bool "mad"
+	select BR2_PACKAGE_LIBID3TAG
+	select BR2_PACKAGE_LIBMAD
+	help
+	  Enable mad input support.
+	  Select this if you want to play back MP3 files.
+
+config BR2_PACKAGE_XBMC_VORBIS
+	bool "vorbis"
+	select BR2_PACKAGE_LIBOGG
+	select BR2_PACKAGE_LIBVORBIS
+	help
+	  Enable vorbis input/streaming support.
+	  Select this if you want to play back OGG files on hardfloat
+	  targets.
+
+config BR2_PACKAGE_XBMC_WAVPACK
+	bool "wavpack"
+	select BR2_PACKAGE_WAVPACK
+	help
+	  Enable wavpack input support.
+	  Select this if you want to play back WV files.
+
+endif
diff --git a/package/xbmc/S50xbmc b/package/xbmc/S50xbmc
new file mode 100755
index 0000000..70cd320
--- /dev/null
+++ b/package/xbmc/S50xbmc
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# Starts XBMC.
+#
+
+BIN_NAME=xbmc.bin
+XBMC=/usr/lib/xbmc/$BIN_NAME
+XBMC_ARGS="--standalone -fs -n"
+PIDFILE=/var/run/xbmc.pid
+
+start() {
+    echo -n "Starting XBMC: "
+    start-stop-daemon -S -q -p $PIDFILE --exec $XBMC -- $XBMC_ARGS
+    [ $? == 0 ] && echo "OK" || echo "FAIL"
+}
+stop() {
+    echo -n "Stopping XBMC: "
+    start-stop-daemon -K -q -p $PIDFILE
+    [ $? == 0 ] && echo "OK" || echo "FAIL"
+}
+restart() {
+    stop
+    start
+}
+
+case "$1" in
+  start)
+    start
+    ;;
+  stop)
+    stop
+    ;;
+  restart|reload)
+    restart
+    ;;
+  *)
+    echo "Usage: $0 {start|stop|restart}"
+    exit 1
+esac
+
+exit $?
diff --git a/package/xbmc/xbmc-0001-Fixup-include-path.patch b/package/xbmc/xbmc-0001-Fixup-include-path.patch
new file mode 100644
index 0000000..e4d6632
--- /dev/null
+++ b/package/xbmc/xbmc-0001-Fixup-include-path.patch
@@ -0,0 +1,79 @@
+From 63c255f1f5d68363f49193aceed343e602dc8bdf Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Thu, 26 Dec 2013 21:17:10 +0100
+Subject: [PATCH] Fixup include path
+
+Patch originally taken from :
+http://repository.timesys.com/buildsources/x/xbmc/xbmc-11.0/xbmc-11.0-fixups.patch
+---
+ lib/enca/configure                           | 3 ---
+ lib/enca/configure.ac                        | 3 ---
+ lib/libdvd/libdvdread/misc/dvdread-config.sh | 6 +++---
+ lib/timidity/configure.in                    | 6 +++---
+ 4 files changed, 6 insertions(+), 12 deletions(-)
+
+diff --git a/lib/enca/configure b/lib/enca/configure
+index c839a51..7af5a09 100644
+--- a/lib/enca/configure
++++ b/lib/enca/configure
+@@ -12011,9 +12011,6 @@ fi
+ if test "$prefix" = "NONE"; then
+   LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
+   CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
+-else
+-  LDFLAGS="$LDFLAGS -L$prefix/lib"
+-  CPPFLAGS="$CPPFLAGS -I$prefix/include"
+ fi
+ 
+ 
+diff --git a/lib/enca/configure.ac b/lib/enca/configure.ac
+index 41434df..47d5367 100644
+--- a/lib/enca/configure.ac
++++ b/lib/enca/configure.ac
+@@ -100,9 +100,6 @@ dnl Dirty path hack.  Helps some people with badly set up search paths.
+ if test "$prefix" = "NONE"; then
+   LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
+   CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
+-else
+-  LDFLAGS="$LDFLAGS -L$prefix/lib"
+-  CPPFLAGS="$CPPFLAGS -I$prefix/include"
+ fi
+ 
+ dnl Checks for libraries.
+diff --git a/lib/libdvd/libdvdread/misc/dvdread-config.sh b/lib/libdvd/libdvdread/misc/dvdread-config.sh
+index e170c7e..25ee893 100644
+--- a/lib/libdvd/libdvdread/misc/dvdread-config.sh
++++ b/lib/libdvd/libdvdread/misc/dvdread-config.sh
+@@ -48,9 +48,9 @@ if test "$echo_prefix" = "yes"; then
+ fi
+ 
+ if test "$echo_cflags" = "yes"; then
+-      echo -I$prefix/include $extracflags
++      echo $extracflags
+ fi
+ 
+ if test "$echo_libs" = "yes"; then
+-      echo -L$libdir $dvdreadlib
+-fi      
++      echo $dvdreadlib
++fi
+diff --git a/lib/timidity/configure.in b/lib/timidity/configure.in
+index 9f2835b..733470a 100644
+--- a/lib/timidity/configure.in
++++ b/lib/timidity/configure.in
+@@ -100,9 +100,9 @@ done
+ 
+ # add $prefix if specified.
+ if test "x$prefix" != xNONE -a "x$prefix" != "x$ac_default_prefix" -a "x$prefix" != "x/usr"; then
+-  LDFLAGS="-L$prefix/lib $LDFLAGS"
+-  SHLDFLAGS="-L$prefix/lib $SHLDFLAGS"
+-  CPPFLAGS="-I$prefix/include $CPPFLAGS"
++  LDFLAGS="$LDFLAGS"
++  SHLDFLAGS="$SHLDFLAGS"
++  CPPFLAGS="$CPPFLAGS"
+ fi
+ 
+ dnl add --with-includes, --with-libraries
+-- 
+1.8.5.2
+
diff --git a/package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch b/package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
new file mode 100644
index 0000000..076da5a
--- /dev/null
+++ b/package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
@@ -0,0 +1,167 @@
+From 2541772a3ed71402a620466feb6a337b40f08880 Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maximeh.hadjinlian@gmail.com>
+Date: Sat, 15 Dec 2012 23:41:06 +0100
+Subject: [PATCH] RaspberryPi Default Settings
+
+Add some default settings if the target platform is the RaspberryPi.
+Avoid the fact that the user _MUST_ have an advandcedsettings.xml to be able
+to use XBMC properly.
+
+---
+ xbmc/settings/AdvancedSettings.cpp          |   31 +++++++++++++++++++++++++++
+ xbmc/settings/GUISettings.cpp               |    8 +++----
+ xbmc/settings/GUIWindowSettingsCategory.cpp |    4 ++--
+ 3 files changed, 37 insertions(+), 6 deletions(-)
+
+diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp
+index 2cbbf98..42ccabd 100644
+--- a/xbmc/settings/AdvancedSettings.cpp
++++ b/xbmc/settings/AdvancedSettings.cpp
+@@ -72,7 +72,11 @@ void CAdvancedSettings::Initialize()
+   m_karaokeAlwaysEmptyOnCdgs = 1;
+   m_karaokeUseSongSpecificBackground = 0;
+
++  #if defined(TARGET_RASPBERRY_PI)
++  m_audioDefaultPlayer = "omxplayer";
++  #else
+   m_audioDefaultPlayer = "paplayer";
++  #endif
+   m_audioPlayCountMinimumPercent = 90.0f;
+   m_audioHost = "default";
+
+@@ -93,8 +97,14 @@ void CAdvancedSettings::Initialize()
+   m_videoBlackBarColour = 0;
+   m_videoPPFFmpegDeint = "linblenddeint";
+   m_videoPPFFmpegPostProc = "ha:128:7,va,dr";
++
++  #if defined(TARGET_RASPBERRY_PI)
++  m_videoDefaultPlayer = "omxplayer";
++  m_videoDefaultDVDPlayer = "omxplayer";
++  #else
+   m_videoDefaultPlayer = "dvdplayer";
+   m_videoDefaultDVDPlayer = "dvdplayer";
++  #endif
+   m_videoIgnoreSecondsAtStart = 3*60;
+   m_videoIgnorePercentAtEnd   = 8.0f;
+   m_videoPlayCountMinimumPercent = 90.0f;
+@@ -287,7 +297,11 @@ void CAdvancedSettings::Initialize()
+   m_alwaysOnTop = false;
+ #endif
+
++  #if defined(TARGET_RASPBERRY_PI)
++  m_bgInfoLoaderMaxThreads = 2;
++  #else
+   m_bgInfoLoaderMaxThreads = 5;
++  #endif
+
+   m_iPVRTimeCorrection             = 0;
+   m_iPVRInfoToggleInterval         = 3000;
+@@ -299,7 +313,12 @@ void CAdvancedSettings::Initialize()
+
+   m_measureRefreshrate = false;
+
++  #if defined(TARGET_RASPBERRY_PI)
++  m_cacheMemBufferSize = 1024 * 1024 * 10;
++  #else
+   m_cacheMemBufferSize = 1024 * 1024 * 20;
++  #endif
++
+   m_addonPackageFolderSize = 200;
+
+   m_jsonOutputCompact = true;
+@@ -509,11 +528,17 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
+         RefreshOverride override = {0};
+
+         float fps;
++        #if defined(TARGET_RASPBERRY_PI)
++          fps = 23.976;
++          override.fpsmin = fps - 0.01f;
++          override.fpsmax = fps + 0.01f;
++        #else
+         if (XMLUtils::GetFloat(pRefreshOverride, "fps", fps))
+         {
+           override.fpsmin = fps - 0.01f;
+           override.fpsmax = fps + 0.01f;
+         }
++        #endif
+
+         float fpsmin, fpsmax;
+         if (XMLUtils::GetFloat(pRefreshOverride, "fpsmin", fpsmin) &&
+@@ -524,11 +549,17 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file)
+         }
+
+         float refresh;
++        #if defined(TARGET_RASPBERRY_PI)
++          refresh = 24.0;
++          override.refreshmin = refresh - 0.01f;
++          override.refreshmax = refresh + 0.01f;
++        #else
+         if (XMLUtils::GetFloat(pRefreshOverride, "refresh", refresh))
+         {
+           override.refreshmin = refresh - 0.01f;
+           override.refreshmax = refresh + 0.01f;
+         }
++        #endif
+
+         float refreshmin, refreshmax;
+         if (XMLUtils::GetFloat(pRefreshOverride, "refreshmin", refreshmin) &&
+diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp
+index c1820a7..c00fb18 100644
+--- a/xbmc/settings/GUISettings.cpp
++++ b/xbmc/settings/GUISettings.cpp
+@@ -537,11 +537,11 @@ void CGUISettings::Initialize()
+   AddInt(NULL, "input.appleremotesequencetime", 13603, 500, 50, 50, 1000, SPIN_CONTROL_INT_PLUS, MASK_MS, TEXT_OFF);
+   AddSeparator(in, "input.sep1");
+ #endif
+-  AddBool(in, "input.remoteaskeyboard", 21449, false);
++  AddBool(in, "input.remoteaskeyboard", 21449, true);
+ #if defined(TARGET_DARWIN_IOS)
+   AddBool(NULL, "input.enablemouse", 21369, true);
+ #else
+-  AddBool(in, "input.enablemouse", 21369, true);
++  AddBool(in, "input.enablemouse", 21369, false);
+ #endif
+ #if defined(HAS_SDL_JOYSTICK)
+   AddBool(in, "input.enablejoystick", 35100, true);
+@@ -831,7 +831,7 @@ void CGUISettings::Initialize()
+
+ #ifdef HAS_WEB_SERVER
+   CSettingsCategory* srvWeb = AddCategory(SETTINGS_SERVICE, "webserver", 33101);
+-  AddBool(srvWeb,  "services.webserver",        263, false);
++  AddBool(srvWeb,  "services.webserver",        263, true);
+   AddString(srvWeb,"services.webserverport",    730, CUtil::CanBindPrivileged()?"80":"8080", EDIT_CONTROL_NUMBER_INPUT, false, 730);
+   AddString(srvWeb,"services.webserverusername",1048, "xbmc", EDIT_CONTROL_INPUT);
+   AddString(srvWeb,"services.webserverpassword",733, "", EDIT_CONTROL_HIDDEN_INPUT, true, 733);
+@@ -881,7 +881,7 @@ void CGUISettings::Initialize()
+   AddInt(laf, "lookandfeel.startupwindow",512,1, WINDOW_HOME, 1, WINDOW_PYTHON_END, SPIN_CONTROL_TEXT);
+   AddString(laf, "lookandfeel.soundskin",15108,"SKINDEFAULT", SPIN_CONTROL_TEXT);
+   AddSeparator(laf, "lookandfeel.sep2");
+-  AddBool(laf, "lookandfeel.enablerssfeeds",13305,  true);
++  AddBool(laf, "lookandfeel.enablerssfeeds",13305,  false);
+   AddString(laf, "lookandfeel.rssedit", 21450, "", BUTTON_CONTROL_STANDARD);
+
+   CSettingsCategory* loc = AddCategory(SETTINGS_APPEARANCE, "locale", 14090);
+diff --git a/xbmc/settings/GUIWindowSettingsCategory.cpp b/xbmc/settings/GUIWindowSettingsCategory.cpp
+index b4cee69..a9bcb7a 100644
+--- a/xbmc/settings/GUIWindowSettingsCategory.cpp
++++ b/xbmc/settings/GUIWindowSettingsCategory.cpp
+@@ -1271,7 +1271,7 @@ void CGUIWindowSettingsCategory::OnSettingChanged(CBaseSettingControl *pSettingC
+       if (!g_application.StartWebServer())
+       {
+         CGUIDialogOK::ShowAndGetInput(g_localizeStrings.Get(33101), "", g_localizeStrings.Get(33100), "");
+-        g_guiSettings.SetBool("services.webserver", false);
++        g_guiSettings.SetBool("services.webserver", true);
+       }
+   }
+   else if (strSetting.Equals("services.webserverusername") || strSetting.Equals("services.webserverpassword"))
+@@ -1292,7 +1292,7 @@ void CGUIWindowSettingsCategory::OnSettingChanged(CBaseSettingControl *pSettingC
+     else
+     {
+       g_application.StopAirplayServer(true);
+-      g_guiSettings.SetBool("services.airplay", false);
++      g_guiSettings.SetBool("services.airplay", true);
+       CZeroconf::GetInstance()->Stop();
+     }
+ #endif
+--
+1.7.10.4
diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
new file mode 100644
index 0000000..db43a9f
--- /dev/null
+++ b/package/xbmc/xbmc.mk
@@ -0,0 +1,175 @@
+################################################################################
+#
+# xbmc
+#
+################################################################################
+
+XBMC_VERSION = 12.3-Frodo
+XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
+XBMC_LICENSE = GPLv2
+XBMC_LICENSE_FILES = LICENSE.GPL
+XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
+XBMC_DEPENDENCIES += libmpeg2 bzip2 libcdio python lzo zlib libgcrypt openssl \
+	sqlite fontconfig freetype jasper jpeg libmodplug libpng libungif tiff \
+	libcurl boost libfribidi ncurses pcre libplist readline expat libxml2 yajl \
+	tinyxml taglib
+
+XBMC_CONF_ENV += PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)"
+XBMC_CONF_ENV += PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib/ -lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm"
+XBMC_CONF_ENV += PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)"
+XBMC_CONF_ENV += PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
+XBMC_CONF_ENV += PYTHON_NOVERSIONCHECK="no-check"
+XBMC_CONF_ENV += TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
+
+XBMC_CONF_OPT += --disable-sdl --disable-x11 --disable-xrandr --disable-openmax \
+	--disable-optical-drive --disable-dvdcss --disable-joystick \
+	--disable-debug --disable-crystalhd --disable-vtbdecoder --disable-vaapi \
+	--disable-vdpau --disable-pulse --disable-projectm --enable-optimizations \
+	--disable-alsa --disable-ssh --disable-hal --disable-mysql
+
+ifeq ($(BR2_arm),y)
+XBMC_CONF_OPT += --enable-gles --disable-gl
+endif
+
+ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
+XBMC_DEPENDENCIES += rpi-userland
+XBMC_CONF_OPT += --with-platform=raspberry-pi --enable-player=omxplayer
+XBMC_CONF_ENV += INCLUDES="-I$(STAGING_DIR)/usr/include/interface/vcos/pthreads \
+	-I$(STAGING_DIR)/usr/include/interface/vmcs_host/linux"
+endif
+
+ifeq ($(BR2_PACKAGE_DBUS),y)
+XBMC_DEPENDENCIES += dbus
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBUSB),y)
+XBMC_DEPENDENCIES += libusb-compat
+XBMC_CONF_OPT += --enable-libusb
+else
+XBMC_CONF_OPT += --disable-libusb
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBMICROHTTPD),y)
+XBMC_DEPENDENCIES += libmicrohttpd
+XBMC_CONF_OPT += --enable-webserver
+else
+XBMC_CONF_OPT += --disable-webserver
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBSMBCLIENT),y)
+XBMC_DEPENDENCIES += samba
+XBMC_CONF_OPT += --enable-samba
+else
+XBMC_CONF_OPT += --disable-samba
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_VORBIS),y)
+XBMC_DEPENDENCIES += libogg libvorbis
+XBMC_CONF_OPT += --enable-libvorbisenc
+else
+XBMC_CONF_OPT += --disable-libvorbisenc
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBNFS),y)
+XBMC_DEPENDENCIES += libnfs
+XBMC_CONF_OPT += --enable-nfs
+else
+XBMC_CONF_OPT += --disable-nfs
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_RTMPDUMP),y)
+XBMC_DEPENDENCIES += rtmpdump
+XBMC_CONF_OPT += --enable-rtmp
+else
+XBMC_CONF_OPT += --disable-rtmp
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBBLURAY),y)
+XBMC_DEPENDENCIES += libbluray
+XBMC_CONF_OPT += --enable-libbluray
+else
+XBMC_CONF_OPT += --disable-libbluray
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBSHAIRPLAY),y)
+XBMC_DEPENDENCIES += libshairplay
+XBMC_CONF_OPT += --enable-airplay
+else
+XBMC_CONF_OPT += --disable-airplay
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_AVAHI),y)
+XBMC_DEPENDENCIES += avahi
+XBMC_CONF_OPT += --enable-avahi
+else
+XBMC_CONF_OPT += --disable-avahi
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBCEC),y)
+XBMC_DEPENDENCIES += libcec
+XBMC_CONF_OPT += --enable-libcec
+else
+XBMC_CONF_OPT += --disable-libcec
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_FLAC),y)
+XBMC_DEPENDENCIES += flac
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBASS),y)
+XBMC_DEPENDENCIES += libass
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_MAD),y)
+XBMC_DEPENDENCIES += libmad
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_LIBSAMPLERATE),y)
+XBMC_DEPENDENCIES += libsamplerate
+endif
+
+ifeq ($(BR2_PACKAGE_XBMC_WAVPACK),y)
+XBMC_DEPENDENCIES += wavpack
+endif
+
+# Add HOST_DIR to PATH for codegenerator.mk to find swig
+# TODO: java binary from user's machine is currently used...
+define XBMC_BOOTSTRAP
+	cd $(@D) && PATH="$(HOST_DIR)/usr/bin/:$(PATH)" ./bootstrap
+endef
+
+define XBMC_CLEAN_UNUSED_ADDONS
+	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/screensaver.rsxs.plasma
+	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.milkdrop
+	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.projectm
+	rm -Rf $(TARGET_DIR)/usr/share/xbmc/addons/visualization.itunes
+endef
+
+define XBMC_CLEAN_CONFLUENCE_SKIN
+	find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.png -delete
+	find $(TARGET_DIR)/usr/share/xbmc/addons/skin.confluence/media -name *.jpg -delete
+endef
+
+define XBMC_INSTALL_INIT_SYSV
+	[ -f $(TARGET_DIR)/etc/init.d/S50xbmc ] || \
+		$(INSTALL) -D -m 755 package/xbmc/S50xbmc \
+		$(TARGET_DIR)/etc/init.d/S50xbmc
+endef
+
+define XBMC_INSTALL_INIT_SYSTEMD
+	[ -f $(TARGET_DIR)/etc/systemd/system/xbmc.service ] || \
+		$(INSTALL) -D -m 644 package/xbmc/xbmc.service \
+		$(TARGET_DIR)/etc/systemd/system/xbmc.service
+
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+
+	ln -fs ../xbmc.service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/xbmc.service
+endef
+
+XBMC_PRE_CONFIGURE_HOOKS += XBMC_BOOTSTRAP
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_INSTALL_ETC
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_UNUSED_ADDONS
+XBMC_POST_INSTALL_TARGET_HOOKS += XBMC_CLEAN_CONFLUENCE_SKIN
+
+$(eval $(autotools-package))
diff --git a/package/xbmc/xbmc.service b/package/xbmc/xbmc.service
new file mode 100644
index 0000000..3fe5895
--- /dev/null
+++ b/package/xbmc/xbmc.service
@@ -0,0 +1,12 @@
+[Unit]
+Description = XBMC media center
+After = network.target
+
+[Service]
+Type = simple
+ExecStart = /usr/lib/xbmc/xbmc.bin --standalone -fs -n
+Restart = on-failure
+
+[Install]
+WantedBy = multi-user.target
+
-- 
1.8.5.3

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

* [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue Maxime Hadjinlian
@ 2014-02-13 23:03   ` Maxime Hadjinlian
  0 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-13 23:03 UTC (permalink / raw)
  To: buildroot

Obviously, you may discard this.

I counted one patch too many.. Sorry about the noise.
I have removed the patch from the patchwork.

On Thu, Feb 13, 2014 at 11:59 PM, Maxime Hadjinlian
<maxime.hadjinlian@gmail.com> wrote:
> Context:
> The autobuilders were failing on the symbol _XData32 being in conflicts.
> A patch had been added to SDL to add a check to the configure.in
>
> Problem:
> Sometimes, the build would fail, because of an _XData32 symbol being in
> conflicts eventhrough the patch was here.
>
> What was happening:
> Following the classic buildroot workflow:
>    - Extract
>    - [...]
>    - Apply 001 patch, which touches configure.in AND configure
>    - Apply 002 patch, which touches configure.in
>    - Invoke autogen.sh
>    - [...]
>
> Right before running autogen.sh, we have configure.in which is more
> recent than configure, which is fine.
> We then, execute autogen.sh which, basically, runs autoconf.
>
> If your machine was lighty loaded, the time difference between
> configure.in and configure was really tiny (ms order), which seems to be
> neglected by autoconf.
> The results was that the configure was *NOT* generated. And our second
> patch was taken into account.
>
> If your machine was under heavy load, the time difference between the
> two files would have been greater and then *maybe* picked up by
> autoconf. And then the configure file was re-generated.
>
> When the 0001 patch was introduced, SDL package did *NOT* run it's
> autogen.sh, which is why it touches also the configure.
> This came later, causing this behavior.
>
> Fixes:
>   http://autobuild.buildroot.net/results/d1c/d1c36f634dbf6b6e5d18444c2a23dfd129202b80/
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> ---
>  .../sdl/sdl-0001-use-correct-directfb-config.patch    | 19 ++-----------------
>  1 file changed, 2 insertions(+), 17 deletions(-)
>
> diff --git a/package/sdl/sdl-0001-use-correct-directfb-config.patch b/package/sdl/sdl-0001-use-correct-directfb-config.patch
> index 2250790..ef671a1 100644
> --- a/package/sdl/sdl-0001-use-correct-directfb-config.patch
> +++ b/package/sdl/sdl-0001-use-correct-directfb-config.patch
> @@ -4,13 +4,10 @@ The configure script has just checked for the correct directfb-config
>  script, so also use it for the version check instead of whatever
>  might be in the path.
>
> -Also patch the generated configure, as it doesn't cleanly autoreconf.
> -
>  Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
>  ---
> - configure    |    2 +-
>   configure.in |    2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> + 1 files changed, 1 insertions(+), 1 deletions(-)
>
>  Index: SDL-1.2.15/configure.in
>  ===================================================================
> @@ -25,16 +22,4 @@ Index: SDL-1.2.15/configure.in
>               HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
>               if test $HAVE_VERSION -ge $NEED_VERSION; then
>                   DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
> -Index: SDL-1.2.15/configure
> -===================================================================
> ---- SDL-1.2.15.orig/configure
> -+++ SDL-1.2.15/configure
> -@@ -24958,7 +24958,7 @@
> -         else
> -             set -- `echo $DIRECTFB_REQUIRED_VERSION | sed 's/\./ /g'`
> -             NEED_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
> --            set -- `directfb-config --version | sed 's/\./ /g'`
> -+            set -- `$DIRECTFBCONFIG --version | sed 's/\./ /g'`
> -             HAVE_VERSION=`expr $1 \* 10000 + $2 \* 100 + $3`
> -             if test $HAVE_VERSION -ge $NEED_VERSION; then
> -                 DIRECTFB_CFLAGS=`$DIRECTFBCONFIG --cflags`
> +
> --
> 1.8.5.3
>

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

* [Buildroot] [PATCH v5 0/5] Introducing XBMC
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
                   ` (4 preceding siblings ...)
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 5/5] xbmc: new package Maxime Hadjinlian
@ 2014-02-14  6:08 ` Bernd Kuhls
  2014-02-14 22:41 ` Martin Bark
  6 siblings, 0 replies; 24+ messages in thread
From: Bernd Kuhls @ 2014-02-14  6:08 UTC (permalink / raw)
  To: buildroot

Maxime Hadjinlian
<maxime.hadjinlian@gmail.com> wrote in
news:1392332394-27935-1-git-send-email-maxime.hadjinlian at gmail.com: 

> Also, the $(MAKE1) for XBMC has been removed. After doing a loop of 50
> builds and no trouble so far to report, I assumed it was safe, at least
> for now. 

Hi,

I had never any problems compiling XBMC with nine parallel jobs, so ACK.

Regards, Bernd

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host Maxime Hadjinlian
@ 2014-02-14  8:39   ` Thomas Petazzoni
  2014-02-14  8:59     ` Maxime Hadjinlian
  2014-02-14 12:51     ` Mike Zick
  2014-02-14 20:35   ` Martin Bark
  1 sibling, 2 replies; 24+ messages in thread
From: Thomas Petazzoni @ 2014-02-14  8:39 UTC (permalink / raw)
  To: buildroot

Dear Maxime Hadjinlian,

On Thu, 13 Feb 2014 23:59:53 +0100, Maxime Hadjinlian wrote:

> +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
> +	for prog in java; do

Since you're checking for only one program, there's no point in having
a loop here. Just do:

	if ! which java > /dev/null ; then

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-14  8:39   ` Thomas Petazzoni
@ 2014-02-14  8:59     ` Maxime Hadjinlian
  2014-02-14 12:51     ` Mike Zick
  1 sibling, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-14  8:59 UTC (permalink / raw)
  To: buildroot

Hi Thomas, all
On Fri, Feb 14, 2014 at 9:39 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Maxime Hadjinlian,
>
> On Thu, 13 Feb 2014 23:59:53 +0100, Maxime Hadjinlian wrote:
>
>> +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
>> +     for prog in java; do
>
> Since you're checking for only one program, there's no point in having
> a loop here. Just do:
>
>         if ! which java > /dev/null ; then
>
Argh, how could I have missed that :(
Anyway, thank you. I'll resend when there is some review on the XBMC patch.
> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-14  8:39   ` Thomas Petazzoni
  2014-02-14  8:59     ` Maxime Hadjinlian
@ 2014-02-14 12:51     ` Mike Zick
  2014-02-14 13:27       ` Maxime Hadjinlian
  1 sibling, 1 reply; 24+ messages in thread
From: Mike Zick @ 2014-02-14 12:51 UTC (permalink / raw)
  To: buildroot

On Fri, 14 Feb 2014 09:39:30 +0100
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:

> Dear Maxime Hadjinlian,
> 
> On Thu, 13 Feb 2014 23:59:53 +0100, Maxime Hadjinlian wrote:
> 
> > +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
> > +	for prog in java; do
> 
> Since you're checking for only one program, there's no point in having
> a loop here. Just do:
> 
> 	if ! which java > /dev/null ; then
>

Wasn't there a patch this development session that replaced
the use of "which" with a standards compliant command?

Mike
> 
> Thanks,
> 
> Thomas

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-14 12:51     ` Mike Zick
@ 2014-02-14 13:27       ` Maxime Hadjinlian
  0 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-14 13:27 UTC (permalink / raw)
  To: buildroot

On Fri, Feb 14, 2014 at 1:51 PM, Mike Zick <minimod@morethan.org> wrote:
> On Fri, 14 Feb 2014 09:39:30 +0100
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:
>
>> Dear Maxime Hadjinlian,
>>
>> On Thu, 13 Feb 2014 23:59:53 +0100, Maxime Hadjinlian wrote:
>>
>> > +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
>> > +   for prog in java; do
>>
>> Since you're checking for only one program, there's no point in having
>> a loop here. Just do:
>>
>>       if ! which java > /dev/null ; then
>>
>
> Wasn't there a patch this development session that replaced
> the use of "which" with a standards compliant command?
You are right, you are talking about:
http://thread.gmane.org/gmane.comp.lib.uclibc.buildroot/75049/
But as you can see it was never merged.
Maybe this patch should be bumped again ? It seems there was a problem
with the aliases the user can set but Arnout had an idea about that.
>
> Mike
>>
>> Thanks,
>>
>> Thomas
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host Maxime Hadjinlian
  2014-02-14  8:39   ` Thomas Petazzoni
@ 2014-02-14 20:35   ` Martin Bark
  2014-02-14 23:33     ` Maxime Hadjinlian
  1 sibling, 1 reply; 24+ messages in thread
From: Martin Bark @ 2014-02-14 20:35 UTC (permalink / raw)
  To: buildroot

Maxime,

On 13/02/14 22:59, Maxime Hadjinlian wrote:
> XBMC uses a code-generator which is build in two phases:
> In the first phase SWIG is used to parse C++ header files that define the API.
> SWIG outputs an XML file that contains a complete description of the structure
> of the API.
> In the second phase, the XML file is ingested by a Groovy (Java) program that
> then creates C++ code that forms the bridge to the scripting language (Python).
>
> The second phase is why we need java on the host.
>
> You can learn more at the XBMC's wiki:
> http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> ---
>   support/dependencies/dependencies.sh | 10 ++++++++++
>   1 file changed, 10 insertions(+)
>
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index 0e7e1fa..5f77f35 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -191,6 +191,16 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ; then
>   	done
>   fi
>
> +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then

would it be better to have something like

if grep -q ^BR2_HOST_NEEDS_JAVA=y $BUILDROOT_CONFIG ; then

so that future packages that require java on the host can use this same 
tes?  I'm thinking something like how the 
BR2_HOSTARCH_NEEDS_IA32_COMPILER test is used by grub.


> +	for prog in java; do
> +		if ! which $prog > /dev/null ; then
> +			echo >&2
> +			echo "You must install '$prog' on your build machine" >&2
> +			exit 1
> +		fi
> +	done
> +fi
> +
>   if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
>   	if test ! -f /lib/ld-linux.so.2 ; then
>   		echo
>

Thanks

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

* [Buildroot] [PATCH v5 0/5] Introducing XBMC
  2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
                   ` (5 preceding siblings ...)
  2014-02-14  6:08 ` [Buildroot] [PATCH v5 0/5] Introducing XBMC Bernd Kuhls
@ 2014-02-14 22:41 ` Martin Bark
  2014-02-14 23:53   ` Maxime Hadjinlian
  6 siblings, 1 reply; 24+ messages in thread
From: Martin Bark @ 2014-02-14 22:41 UTC (permalink / raw)
  To: buildroot


Maxime,

I just tried out you patch set.  Initially i tried a simple defconfig as 
follows and this failed when configuring xbmc

BR2_arm=y
BR2_arm1176jzf_s=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_PACKAGE_XBMC=y
BR2_PACKAGE_RPI_USERLAND=y

The xmbc configure script was moaning about missing dependencies.  To 
get the code to build I?m the end i had to enable the following:

BR2_PACKAGE_XBMC_FLAC=y
BR2_PACKAGE_XBMC_LIBASS=y
BR2_PACKAGE_XBMC_LIBSAMPLERATE=y
BR2_PACKAGE_XBMC_MAD=y
BR2_PACKAGE_XBMC_VORBIS=y

Perhaps you could check these option, maybe they need to be selected by 
default.

Thanks


On 13/02/14 22:59, Maxime Hadjinlian wrote:
> Hi all,
>
> This is a new version of the series of patch introducing XBMC.
> A new one appeared, which add the dependencies of Java on the host machine for
> XBMC.
> Also, the $(MAKE1) for XBMC has been removed. After doing a loop of 50 builds
> and no trouble so far to report, I assumed it was safe, at least for now.
>
> As always, I wait for your reviews and comments !
>
> Maxime Hadjinlian (5):
>    sdl: fix autoreconf timing issue
>    sdl: add host version
>    sdl_image: add host version
>    dependencies.sh: XBMC needs java on the host
>    xbmc: new package
>
>   package/Config.in                                  |   1 +
>   .../sdl/sdl-0001-use-correct-directfb-config.patch |  19 +-
>   package/sdl/sdl.mk                                 |   2 +
>   package/sdl_image/sdl_image.mk                     |  11 ++
>   package/xbmc/Config.in                             | 202 +++++++++++++++++++++
>   package/xbmc/S50xbmc                               |  41 +++++
>   package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
>   .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167 +++++++++++++++++
>   package/xbmc/xbmc.mk                               | 175 ++++++++++++++++++
>   package/xbmc/xbmc.service                          |  12 ++
>   support/dependencies/dependencies.sh               |  10 +
>   11 files changed, 702 insertions(+), 17 deletions(-)
>   create mode 100644 package/xbmc/Config.in
>   create mode 100755 package/xbmc/S50xbmc
>   create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
>   create mode 100644 package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
>   create mode 100644 package/xbmc/xbmc.mk
>   create mode 100644 package/xbmc/xbmc.service
>
> --
> 1.8.5.3
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 5/5] xbmc: new package Maxime Hadjinlian
@ 2014-02-14 22:59   ` Martin Bark
  2014-02-14 23:51     ` Maxime Hadjinlian
  2014-02-15 11:51   ` Yann E. MORIN
  1 sibling, 1 reply; 24+ messages in thread
From: Martin Bark @ 2014-02-14 22:59 UTC (permalink / raw)
  To: buildroot

Maxime,

Below are some comments, hope they help.

On 13/02/14 22:59, Maxime Hadjinlian wrote:
> XBMC is an award-winning free and open source (GPL) software media player and
> entertainment hub for digital media.
> This package was originally found at : https://github.com/huceke/buildroot-rbp
> By gimli <ebsi4711@gmail.com>
>
> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> Cc: gimli <ebsi4711@gmail.com>
> ---
> Changes v4 -> v5:
>    - Remove MAKE1, seems to work fine with parallel build.
> Changes v3 -> v4:
>    - Rework init script
>    - Add systemd startup service
> Changes v2 -> v3:
>    - Fix indent
>    - Change librtmp to rtmpdump
> Changes v1 -> v2:
>    - Fix header (Yann E. Morin)
>    - Fix comment on toolchain option (Peter Korsgaard)
> ---
>   package/Config.in                                  |   1 +
>   package/xbmc/Config.in                             | 202 +++++++++++++++++++++
>   package/xbmc/S50xbmc                               |  41 +++++
>   package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
>   .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167 +++++++++++++++++
>   package/xbmc/xbmc.mk                               | 175 ++++++++++++++++++
>   package/xbmc/xbmc.service                          |  12 ++
>   7 files changed, 677 insertions(+)
>   create mode 100644 package/xbmc/Config.in
>   create mode 100755 package/xbmc/S50xbmc
>   create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
>   create mode 100644 package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
>   create mode 100644 package/xbmc/xbmc.mk
>   create mode 100644 package/xbmc/xbmc.service
>
> diff --git a/package/Config.in b/package/Config.in
> index 6c3e769..5f32a28 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -26,6 +26,7 @@ source "package/tstools/Config.in"
>   source "package/vlc/Config.in"
>   source "package/vorbis-tools/Config.in"
>   source "package/wavpack/Config.in"
> +source "package/xbmc/Config.in"
>   source "package/yavta/Config.in"
>   endmenu
>
> diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
> new file mode 100644
> index 0000000..e3e96ef
> --- /dev/null
> +++ b/package/xbmc/Config.in
> @@ -0,0 +1,202 @@
> +comment "xbmc requires an OpenGL-capable backend"
> +	depends on !(BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES)
> +
> +# External toolchain are required because of a missing bitdefs.h
> +comment "xbmc needs an (e)glibc external toolchain w/ C++ and WCHAR"
> +	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR) || BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_BUILDROOT
> +
> +menuconfig BR2_PACKAGE_XBMC
> +	bool "xbmc"
> +	select BR2_PACKAGE_BOOST
> +	select BR2_PACKAGE_BOOST_THREAD
> +	select BR2_PACKAGE_BZIP2
> +	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_JASPER
> +	select BR2_PACKAGE_LIBCDIO
> +	select BR2_PACKAGE_LIBCURL
> +	select BR2_PACKAGE_LIBFRIBIDI
> +	select BR2_PACKAGE_LIBGCRYPT
> +	select BR2_PACKAGE_LIBMODPLUG
> +	select BR2_PACKAGE_LIBMPEG2
> +	select BR2_PACKAGE_LIBUNGIF
> +	select BR2_PACKAGE_LZO
> +	select BR2_PACKAGE_OPENSSL
> +	select BR2_PACKAGE_PCRE
> +	select BR2_PACKAGE_PYTHON
> +	select BR2_PACKAGE_PYTHON_BSDDB
> +	select BR2_PACKAGE_PYTHON_BZIP2
> +	select BR2_PACKAGE_PYTHON_CURSES
> +	select BR2_PACKAGE_PYTHON_PYEXPAT
> +	select BR2_PACKAGE_PYTHON_READLINE
> +	select BR2_PACKAGE_PYTHON_SQLITE
> +	select BR2_PACKAGE_PYTHON_SSL
> +	select BR2_PACKAGE_PYTHON_UNICODEDATA
> +	select BR2_PACKAGE_PYTHON_ZLIB
> +	select BR2_PACKAGE_READLINE
> +	select BR2_PACKAGE_SQLITE
> +	select BR2_PACKAGE_TAGLIB
> +	select BR2_PACKAGE_TIFF
> +	select BR2_PACKAGE_TINYXML
> +	select BR2_PACKAGE_YAJL
> +	select BR2_PACKAGE_ZLIB
> +	depends on BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && !BR2_TOOLCHAIN_USES_UCLIBC
> +	depends on !BR2_TOOLCHAIN_BUILDROOT

I think you have missed the following

   depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES

Currently you can compile xbmc without any opengl support and it just 
fails at the configure step.

-- snip --

> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
> new file mode 100644
> index 0000000..db43a9f
> --- /dev/null
> +++ b/package/xbmc/xbmc.mk
> @@ -0,0 +1,175 @@
> +################################################################################
> +#
> +# xbmc
> +#
> +################################################################################
> +
> +XBMC_VERSION = 12.3-Frodo
> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
> +XBMC_LICENSE = GPLv2
> +XBMC_LICENSE_FILES = LICENSE.GPL
> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig

I think you need to add host-gperf, i had to add this for xmbc to compile.

> +XBMC_DEPENDENCIES += libmpeg2 bzip2 libcdio python lzo zlib libgcrypt openssl \
> +	sqlite fontconfig freetype jasper jpeg libmodplug libpng libungif tiff \
> +	libcurl boost libfribidi ncurses pcre libplist readline expat libxml2 yajl \
> +	tinyxml taglib

The config.in does not select fontconfig, freetype, jpeg, libpng, tiff, 
ncurses, libplist and libxml2 but you specify them as dependencies.  Are 
these really dependencies? Should config.in select them?

> +
> +XBMC_CONF_ENV += PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)"
> +XBMC_CONF_ENV += PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib/ -lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm"
> +XBMC_CONF_ENV += PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)"
> +XBMC_CONF_ENV += PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
> +XBMC_CONF_ENV += PYTHON_NOVERSIONCHECK="no-check"
> +XBMC_CONF_ENV += TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
> +
> +XBMC_CONF_OPT += --disable-sdl --disable-x11 --disable-xrandr --disable-openmax \
> +	--disable-optical-drive --disable-dvdcss --disable-joystick \
> +	--disable-debug --disable-crystalhd --disable-vtbdecoder --disable-vaapi \
> +	--disable-vdpau --disable-pulse --disable-projectm --enable-optimizations \
> +	--disable-alsa --disable-ssh --disable-hal --disable-mysql
> +
> +ifeq ($(BR2_arm),y)
> +XBMC_CONF_OPT += --enable-gles --disable-gl
> +endif

Should this be ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y) ? If xbmc requires 
on opengl is this test even needed ?

Thanks

Martin

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

* [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host
  2014-02-14 20:35   ` Martin Bark
@ 2014-02-14 23:33     ` Maxime Hadjinlian
  0 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-14 23:33 UTC (permalink / raw)
  To: buildroot

Hi Martin, all
On Fri, Feb 14, 2014 at 9:35 PM, Martin Bark <martin@barkynet.com> wrote:
> Maxime,
>
>
> On 13/02/14 22:59, Maxime Hadjinlian wrote:
>>
>> XBMC uses a code-generator which is build in two phases:
>> In the first phase SWIG is used to parse C++ header files that define the
>> API.
>> SWIG outputs an XML file that contains a complete description of the
>> structure
>> of the API.
>> In the second phase, the XML file is ingested by a Groovy (Java) program
>> that
>> then creates C++ code that forms the bridge to the scripting language
>> (Python).
>>
>> The second phase is why we need java on the host.
>>
>> You can learn more at the XBMC's wiki:
>> http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works
>>
>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>> ---
>>   support/dependencies/dependencies.sh | 10 ++++++++++
>>   1 file changed, 10 insertions(+)
>>
>> diff --git a/support/dependencies/dependencies.sh
>> b/support/dependencies/dependencies.sh
>> index 0e7e1fa..5f77f35 100755
>> --- a/support/dependencies/dependencies.sh
>> +++ b/support/dependencies/dependencies.sh
>> @@ -191,6 +191,16 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ;
>> then
>>         done
>>   fi
>>
>> +if grep -q ^BR2_PACKAGE_XBMC=y $BUILDROOT_CONFIG ; then
>
>
> would it be better to have something like
>
> if grep -q ^BR2_HOST_NEEDS_JAVA=y $BUILDROOT_CONFIG ; then
>
> so that future packages that require java on the host can use this same tes?
> I'm thinking something like how the BR2_HOSTARCH_NEEDS_IA32_COMPILER test is
> used by grub.
I agree with the idea, at the moment we don't have any package that
needs Java to be built, but it may be a nice idea to have a mechanisms
for such packages in the future.
>
>
>
>> +       for prog in java; do
>> +               if ! which $prog > /dev/null ; then
>> +                       echo >&2
>> +                       echo "You must install '$prog' on your build
>> machine" >&2
>> +                       exit 1
>> +               fi
>> +       done
>> +fi
>> +
>>   if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
>>         if test ! -f /lib/ld-linux.so.2 ; then
>>                 echo
>>
>
> Thanks
>

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-14 22:59   ` Martin Bark
@ 2014-02-14 23:51     ` Maxime Hadjinlian
  2014-02-15 12:03       ` Maxime Hadjinlian
  2014-02-18 15:43       ` Martin Bark
  0 siblings, 2 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-14 23:51 UTC (permalink / raw)
  To: buildroot

Hi Martin, all
On Fri, Feb 14, 2014 at 11:59 PM, Martin Bark <martin@barkynet.com> wrote:
> Maxime,
>
> Below are some comments, hope they help.
>
>
> On 13/02/14 22:59, Maxime Hadjinlian wrote:
>>
>> XBMC is an award-winning free and open source (GPL) software media player
>> and
>> entertainment hub for digital media.
>> This package was originally found at :
>> https://github.com/huceke/buildroot-rbp
>> By gimli <ebsi4711@gmail.com>
>>
>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>> Cc: gimli <ebsi4711@gmail.com>
>> ---
>> Changes v4 -> v5:
>>    - Remove MAKE1, seems to work fine with parallel build.
>> Changes v3 -> v4:
>>    - Rework init script
>>    - Add systemd startup service
>> Changes v2 -> v3:
>>    - Fix indent
>>    - Change librtmp to rtmpdump
>> Changes v1 -> v2:
>>    - Fix header (Yann E. Morin)
>>    - Fix comment on toolchain option (Peter Korsgaard)
>> ---
>>   package/Config.in                                  |   1 +
>>   package/xbmc/Config.in                             | 202
>> +++++++++++++++++++++
>>   package/xbmc/S50xbmc                               |  41 +++++
>>   package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
>>   .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167
>> +++++++++++++++++
>>   package/xbmc/xbmc.mk                               | 175
>> ++++++++++++++++++
>>   package/xbmc/xbmc.service                          |  12 ++
>>   7 files changed, 677 insertions(+)
>>   create mode 100644 package/xbmc/Config.in
>>   create mode 100755 package/xbmc/S50xbmc
>>   create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
>>   create mode 100644
>> package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
>>   create mode 100644 package/xbmc/xbmc.mk
>>   create mode 100644 package/xbmc/xbmc.service
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 6c3e769..5f32a28 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -26,6 +26,7 @@ source "package/tstools/Config.in"
>>   source "package/vlc/Config.in"
>>   source "package/vorbis-tools/Config.in"
>>   source "package/wavpack/Config.in"
>> +source "package/xbmc/Config.in"
>>   source "package/yavta/Config.in"
>>   endmenu
>>
>> diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
>> new file mode 100644
>> index 0000000..e3e96ef
>> --- /dev/null
>> +++ b/package/xbmc/Config.in
>> @@ -0,0 +1,202 @@
>> +comment "xbmc requires an OpenGL-capable backend"
>> +       depends on !(BR2_PACKAGE_HAS_OPENGL_EGL &&
>> BR2_PACKAGE_HAS_OPENGL_ES)
>> +
>> +# External toolchain are required because of a missing bitdefs.h
>> +comment "xbmc needs an (e)glibc external toolchain w/ C++ and WCHAR"
>> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR) ||
>> BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_BUILDROOT
>> +
>> +menuconfig BR2_PACKAGE_XBMC
>> +       bool "xbmc"
>> +       select BR2_PACKAGE_BOOST
>> +       select BR2_PACKAGE_BOOST_THREAD
>> +       select BR2_PACKAGE_BZIP2
>> +       select BR2_PACKAGE_EXPAT
>> +       select BR2_PACKAGE_JASPER
>> +       select BR2_PACKAGE_LIBCDIO
>> +       select BR2_PACKAGE_LIBCURL
>> +       select BR2_PACKAGE_LIBFRIBIDI
>> +       select BR2_PACKAGE_LIBGCRYPT
>> +       select BR2_PACKAGE_LIBMODPLUG
>> +       select BR2_PACKAGE_LIBMPEG2
>> +       select BR2_PACKAGE_LIBUNGIF
>> +       select BR2_PACKAGE_LZO
>> +       select BR2_PACKAGE_OPENSSL
>> +       select BR2_PACKAGE_PCRE
>> +       select BR2_PACKAGE_PYTHON
>> +       select BR2_PACKAGE_PYTHON_BSDDB
>> +       select BR2_PACKAGE_PYTHON_BZIP2
>> +       select BR2_PACKAGE_PYTHON_CURSES
>> +       select BR2_PACKAGE_PYTHON_PYEXPAT
>> +       select BR2_PACKAGE_PYTHON_READLINE
>> +       select BR2_PACKAGE_PYTHON_SQLITE
>> +       select BR2_PACKAGE_PYTHON_SSL
>> +       select BR2_PACKAGE_PYTHON_UNICODEDATA
>> +       select BR2_PACKAGE_PYTHON_ZLIB
>> +       select BR2_PACKAGE_READLINE
>> +       select BR2_PACKAGE_SQLITE
>> +       select BR2_PACKAGE_TAGLIB
>> +       select BR2_PACKAGE_TIFF
>> +       select BR2_PACKAGE_TINYXML
>> +       select BR2_PACKAGE_YAJL
>> +       select BR2_PACKAGE_ZLIB
>> +       depends on BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR &&
>> !BR2_TOOLCHAIN_USES_UCLIBC
>> +       depends on !BR2_TOOLCHAIN_BUILDROOT
>
>
> I think you have missed the following
>
>   depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES
>
Well, I have omitted it because it causes a recursive dependency with
the rpi packages and I did not know how to fix this, so I kinda hoped
for someone to come up with a better solution :).
> Currently you can compile xbmc without any opengl support and it just fails
> at the configure step.
True, I did not really expand my test here. I shall do that.
>
> -- snip --
>
>
>> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
>> new file mode 100644
>> index 0000000..db43a9f
>> --- /dev/null
>> +++ b/package/xbmc/xbmc.mk
>> @@ -0,0 +1,175 @@
>>
>> +################################################################################
>> +#
>> +# xbmc
>> +#
>>
>> +################################################################################
>> +
>> +XBMC_VERSION = 12.3-Frodo
>> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
>> +XBMC_LICENSE = GPLv2
>> +XBMC_LICENSE_FILES = LICENSE.GPL
>> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
>
>
> I think you need to add host-gperf, i had to add this for xmbc to compile.
host-gperf ? I never needed that, why should it be needed ?
>
>
>> +XBMC_DEPENDENCIES += libmpeg2 bzip2 libcdio python lzo zlib libgcrypt
>> openssl \
>> +       sqlite fontconfig freetype jasper jpeg libmodplug libpng libungif
>> tiff \
>> +       libcurl boost libfribidi ncurses pcre libplist readline expat
>> libxml2 yajl \
>> +       tinyxml taglib
>
>
> The config.in does not select fontconfig, freetype, jpeg, libpng, tiff,
> ncurses, libplist and libxml2 but you specify them as dependencies.  Are
> these really dependencies? Should config.in select them?
Yes they are dependencies, and you are right, they should be selected
in Config.in, I'll fix this.
>
>
>> +
>> +XBMC_CONF_ENV += PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)"
>> +XBMC_CONF_ENV += PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib/
>> -lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm"
>> +XBMC_CONF_ENV +=
>> PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)"
>> +XBMC_CONF_ENV +=
>> PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
>> +XBMC_CONF_ENV += PYTHON_NOVERSIONCHECK="no-check"
>> +XBMC_CONF_ENV += TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
>> +
>> +XBMC_CONF_OPT += --disable-sdl --disable-x11 --disable-xrandr
>> --disable-openmax \
>> +       --disable-optical-drive --disable-dvdcss --disable-joystick \
>> +       --disable-debug --disable-crystalhd --disable-vtbdecoder
>> --disable-vaapi \
>> +       --disable-vdpau --disable-pulse --disable-projectm
>> --enable-optimizations \
>> +       --disable-alsa --disable-ssh --disable-hal --disable-mysql
>> +
>> +ifeq ($(BR2_arm),y)
>> +XBMC_CONF_OPT += --enable-gles --disable-gl
>> +endif
>
>
> Should this be ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y) ? If xbmc requires on
> opengl is this test even needed ?
True, when I wrote this patch, this variable did not exists and I
forgot to change it. I'll look into it.
>
> Thanks
>
> Martin
Thanks for your review and comments.

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

* [Buildroot] [PATCH v5 0/5] Introducing XBMC
  2014-02-14 22:41 ` Martin Bark
@ 2014-02-14 23:53   ` Maxime Hadjinlian
  0 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-14 23:53 UTC (permalink / raw)
  To: buildroot

Hi Martin, all
On Fri, Feb 14, 2014 at 11:41 PM, Martin Bark <martin@barkynet.com> wrote:
>
> Maxime,
>
> I just tried out you patch set.  Initially i tried a simple defconfig as
> follows and this failed when configuring xbmc
>
> BR2_arm=y
> BR2_arm1176jzf_s=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_PACKAGE_XBMC=y
> BR2_PACKAGE_RPI_USERLAND=y
>
> The xmbc configure script was moaning about missing dependencies.  To get
> the code to build I?m the end i had to enable the following:
>
> BR2_PACKAGE_XBMC_FLAC=y
> BR2_PACKAGE_XBMC_LIBASS=y
> BR2_PACKAGE_XBMC_LIBSAMPLERATE=y
> BR2_PACKAGE_XBMC_MAD=y
> BR2_PACKAGE_XBMC_VORBIS=y
>
> Perhaps you could check these option, maybe they need to be selected by
> default.
I will look into it. They don't need to be selected by default, they
should be disabled if not selected in menuconfig.
>
> Thanks
Thanks for spotting this.
>
>
>
> On 13/02/14 22:59, Maxime Hadjinlian wrote:
>>
>> Hi all,
>>
>> This is a new version of the series of patch introducing XBMC.
>> A new one appeared, which add the dependencies of Java on the host machine
>> for
>> XBMC.
>> Also, the $(MAKE1) for XBMC has been removed. After doing a loop of 50
>> builds
>> and no trouble so far to report, I assumed it was safe, at least for now.
>>
>> As always, I wait for your reviews and comments !
>>
>> Maxime Hadjinlian (5):
>>    sdl: fix autoreconf timing issue
>>    sdl: add host version
>>    sdl_image: add host version
>>    dependencies.sh: XBMC needs java on the host
>>    xbmc: new package
>>
>>   package/Config.in                                  |   1 +
>>   .../sdl/sdl-0001-use-correct-directfb-config.patch |  19 +-
>>   package/sdl/sdl.mk                                 |   2 +
>>   package/sdl_image/sdl_image.mk                     |  11 ++
>>   package/xbmc/Config.in                             | 202
>> +++++++++++++++++++++
>>   package/xbmc/S50xbmc                               |  41 +++++
>>   package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
>>   .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167
>> +++++++++++++++++
>>   package/xbmc/xbmc.mk                               | 175
>> ++++++++++++++++++
>>   package/xbmc/xbmc.service                          |  12 ++
>>   support/dependencies/dependencies.sh               |  10 +
>>   11 files changed, 702 insertions(+), 17 deletions(-)
>>   create mode 100644 package/xbmc/Config.in
>>   create mode 100755 package/xbmc/S50xbmc
>>   create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
>>   create mode 100644
>> package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
>>   create mode 100644 package/xbmc/xbmc.mk
>>   create mode 100644 package/xbmc/xbmc.service
>>
>> --
>> 1.8.5.3
>>
>> _______________________________________________
>> buildroot mailing list
>> buildroot at busybox.net
>> http://lists.busybox.net/mailman/listinfo/buildroot
>>
>

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-13 22:59 ` [Buildroot] [PATCH v5 5/5] xbmc: new package Maxime Hadjinlian
  2014-02-14 22:59   ` Martin Bark
@ 2014-02-15 11:51   ` Yann E. MORIN
  2014-02-15 12:07     ` Maxime Hadjinlian
  1 sibling, 1 reply; 24+ messages in thread
From: Yann E. MORIN @ 2014-02-15 11:51 UTC (permalink / raw)
  To: buildroot

Maxime, All,

On 2014-02-13 23:59 +0100, Maxime Hadjinlian spake thusly:
> XBMC is an award-winning free and open source (GPL) software media player and
> entertainment hub for digital media.

Just a quick comment before I forget...
Hopefully I'll have some more time for a proper review later today...

[--SNIP--]
> +config BR2_PACKAGE_XBMC_LIBCEC_RBP
> +	bool "rpi support"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_LARGEFILE
> +	select BR2_PACKAGE_RPI_USERLAND
> +	select BR2_PACKAGE_LIBCEC_RBP

git grep BR2_PACKAGE_LIBCEC_RBP
--> nothing... ?

> +	help
> +	  Enable RasberryPi support
> +
> +comment "rpi support requires a toolchain with C++ and LARGEFILE support"
> +	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_LARGEFILE)
> +
> +endif

If rpi-userland is selected, then just assume RPi support is wanted.
This should get rid of the circular dependency on EGL/GLES you mentioned
later.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-14 23:51     ` Maxime Hadjinlian
@ 2014-02-15 12:03       ` Maxime Hadjinlian
  2014-02-18 15:43       ` Martin Bark
  1 sibling, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-15 12:03 UTC (permalink / raw)
  To: buildroot

Hi Martin, all
On Sat, Feb 15, 2014 at 12:51 AM, Maxime Hadjinlian
<maxime.hadjinlian@gmail.com> wrote:
> Hi Martin, all
> On Fri, Feb 14, 2014 at 11:59 PM, Martin Bark <martin@barkynet.com> wrote:
>> Maxime,
>>
>> Below are some comments, hope they help.
>>
>>
>> On 13/02/14 22:59, Maxime Hadjinlian wrote:
>>>
>>> XBMC is an award-winning free and open source (GPL) software media player
>>> and
>>> entertainment hub for digital media.
>>> This package was originally found at :
>>> https://github.com/huceke/buildroot-rbp
>>> By gimli <ebsi4711@gmail.com>
>>>
>>> Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
>>> Cc: gimli <ebsi4711@gmail.com>
>>> ---
>>> Changes v4 -> v5:
>>>    - Remove MAKE1, seems to work fine with parallel build.
>>> Changes v3 -> v4:
>>>    - Rework init script
>>>    - Add systemd startup service
>>> Changes v2 -> v3:
>>>    - Fix indent
>>>    - Change librtmp to rtmpdump
>>> Changes v1 -> v2:
>>>    - Fix header (Yann E. Morin)
>>>    - Fix comment on toolchain option (Peter Korsgaard)
>>> ---
>>>   package/Config.in                                  |   1 +
>>>   package/xbmc/Config.in                             | 202
>>> +++++++++++++++++++++
>>>   package/xbmc/S50xbmc                               |  41 +++++
>>>   package/xbmc/xbmc-0001-Fixup-include-path.patch    |  79 ++++++++
>>>   .../xbmc-0002-RaspberryPi-Default-Settings.patch   | 167
>>> +++++++++++++++++
>>>   package/xbmc/xbmc.mk                               | 175
>>> ++++++++++++++++++
>>>   package/xbmc/xbmc.service                          |  12 ++
>>>   7 files changed, 677 insertions(+)
>>>   create mode 100644 package/xbmc/Config.in
>>>   create mode 100755 package/xbmc/S50xbmc
>>>   create mode 100644 package/xbmc/xbmc-0001-Fixup-include-path.patch
>>>   create mode 100644
>>> package/xbmc/xbmc-0002-RaspberryPi-Default-Settings.patch
>>>   create mode 100644 package/xbmc/xbmc.mk
>>>   create mode 100644 package/xbmc/xbmc.service
>>>
>>> diff --git a/package/Config.in b/package/Config.in
>>> index 6c3e769..5f32a28 100644
>>> --- a/package/Config.in
>>> +++ b/package/Config.in
>>> @@ -26,6 +26,7 @@ source "package/tstools/Config.in"
>>>   source "package/vlc/Config.in"
>>>   source "package/vorbis-tools/Config.in"
>>>   source "package/wavpack/Config.in"
>>> +source "package/xbmc/Config.in"
>>>   source "package/yavta/Config.in"
>>>   endmenu
>>>
>>> diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
>>> new file mode 100644
>>> index 0000000..e3e96ef
>>> --- /dev/null
>>> +++ b/package/xbmc/Config.in
>>> @@ -0,0 +1,202 @@
>>> +comment "xbmc requires an OpenGL-capable backend"
>>> +       depends on !(BR2_PACKAGE_HAS_OPENGL_EGL &&
>>> BR2_PACKAGE_HAS_OPENGL_ES)
>>> +
>>> +# External toolchain are required because of a missing bitdefs.h
>>> +comment "xbmc needs an (e)glibc external toolchain w/ C++ and WCHAR"
>>> +       depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR) ||
>>> BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_BUILDROOT
>>> +
>>> +menuconfig BR2_PACKAGE_XBMC
>>> +       bool "xbmc"
>>> +       select BR2_PACKAGE_BOOST
>>> +       select BR2_PACKAGE_BOOST_THREAD
>>> +       select BR2_PACKAGE_BZIP2
>>> +       select BR2_PACKAGE_EXPAT
>>> +       select BR2_PACKAGE_JASPER
>>> +       select BR2_PACKAGE_LIBCDIO
>>> +       select BR2_PACKAGE_LIBCURL
>>> +       select BR2_PACKAGE_LIBFRIBIDI
>>> +       select BR2_PACKAGE_LIBGCRYPT
>>> +       select BR2_PACKAGE_LIBMODPLUG
>>> +       select BR2_PACKAGE_LIBMPEG2
>>> +       select BR2_PACKAGE_LIBUNGIF
>>> +       select BR2_PACKAGE_LZO
>>> +       select BR2_PACKAGE_OPENSSL
>>> +       select BR2_PACKAGE_PCRE
>>> +       select BR2_PACKAGE_PYTHON
>>> +       select BR2_PACKAGE_PYTHON_BSDDB
>>> +       select BR2_PACKAGE_PYTHON_BZIP2
>>> +       select BR2_PACKAGE_PYTHON_CURSES
>>> +       select BR2_PACKAGE_PYTHON_PYEXPAT
>>> +       select BR2_PACKAGE_PYTHON_READLINE
>>> +       select BR2_PACKAGE_PYTHON_SQLITE
>>> +       select BR2_PACKAGE_PYTHON_SSL
>>> +       select BR2_PACKAGE_PYTHON_UNICODEDATA
>>> +       select BR2_PACKAGE_PYTHON_ZLIB
>>> +       select BR2_PACKAGE_READLINE
>>> +       select BR2_PACKAGE_SQLITE
>>> +       select BR2_PACKAGE_TAGLIB
>>> +       select BR2_PACKAGE_TIFF
>>> +       select BR2_PACKAGE_TINYXML
>>> +       select BR2_PACKAGE_YAJL
>>> +       select BR2_PACKAGE_ZLIB
>>> +       depends on BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR &&
>>> !BR2_TOOLCHAIN_USES_UCLIBC
>>> +       depends on !BR2_TOOLCHAIN_BUILDROOT
>>
>>
>> I think you have missed the following
>>
>>   depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES
>>
> Well, I have omitted it because it causes a recursive dependency with
> the rpi packages and I did not know how to fix this, so I kinda hoped
> for someone to come up with a better solution :).
>> Currently you can compile xbmc without any opengl support and it just fails
>> at the configure step.
> True, I did not really expand my test here. I shall do that.
My answers were a bit hastly, so after a bit of research.
XBMC can compile without OpenGL support, it'll be really really slow,
but you can.
So it could even not depend on this at all, only take advantage of it
if you enabled an OPENGL backend.
I should modify to take this into account.
>>
>> -- snip --
>>
>>
>>> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
>>> new file mode 100644
>>> index 0000000..db43a9f
>>> --- /dev/null
>>> +++ b/package/xbmc/xbmc.mk
>>> @@ -0,0 +1,175 @@
>>>
>>> +################################################################################
>>> +#
>>> +# xbmc
>>> +#
>>>
>>> +################################################################################
>>> +
>>> +XBMC_VERSION = 12.3-Frodo
>>> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
>>> +XBMC_LICENSE = GPLv2
>>> +XBMC_LICENSE_FILES = LICENSE.GPL
>>> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
>>
>>
>> I think you need to add host-gperf, i had to add this for xmbc to compile.
> host-gperf ? I never needed that, why should it be needed ?
>>
>>
>>> +XBMC_DEPENDENCIES += libmpeg2 bzip2 libcdio python lzo zlib libgcrypt
>>> openssl \
>>> +       sqlite fontconfig freetype jasper jpeg libmodplug libpng libungif
>>> tiff \
>>> +       libcurl boost libfribidi ncurses pcre libplist readline expat
>>> libxml2 yajl \
>>> +       tinyxml taglib
>>
>>
>> The config.in does not select fontconfig, freetype, jpeg, libpng, tiff,
>> ncurses, libplist and libxml2 but you specify them as dependencies.  Are
>> these really dependencies? Should config.in select them?
> Yes they are dependencies, and you are right, they should be selected
> in Config.in, I'll fix this.
>>
>>
>>> +
>>> +XBMC_CONF_ENV += PYTHON_VERSION="$(PYTHON_VERSION_MAJOR)"
>>> +XBMC_CONF_ENV += PYTHON_LDFLAGS="-L$(STAGING_DIR)/usr/lib/
>>> -lpython$(PYTHON_VERSION_MAJOR) -lpthread -ldl -lutil -lm"
>>> +XBMC_CONF_ENV +=
>>> PYTHON_CPPFLAGS="-I$(STAGING_DIR)/usr/include/python$(PYTHON_VERSION_MAJOR)"
>>> +XBMC_CONF_ENV +=
>>> PYTHON_SITE_PKG="$(STAGING_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages"
>>> +XBMC_CONF_ENV += PYTHON_NOVERSIONCHECK="no-check"
>>> +XBMC_CONF_ENV += TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
>>> +
>>> +XBMC_CONF_OPT += --disable-sdl --disable-x11 --disable-xrandr
>>> --disable-openmax \
>>> +       --disable-optical-drive --disable-dvdcss --disable-joystick \
>>> +       --disable-debug --disable-crystalhd --disable-vtbdecoder
>>> --disable-vaapi \
>>> +       --disable-vdpau --disable-pulse --disable-projectm
>>> --enable-optimizations \
>>> +       --disable-alsa --disable-ssh --disable-hal --disable-mysql
>>> +
>>> +ifeq ($(BR2_arm),y)
>>> +XBMC_CONF_OPT += --enable-gles --disable-gl
>>> +endif
>>
>>
>> Should this be ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y) ? If xbmc requires on
>> opengl is this test even needed ?
> True, when I wrote this patch, this variable did not exists and I
> forgot to change it. I'll look into it.
>>
>> Thanks
>>
>> Martin
> Thanks for your review and comments.

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-15 11:51   ` Yann E. MORIN
@ 2014-02-15 12:07     ` Maxime Hadjinlian
  0 siblings, 0 replies; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-15 12:07 UTC (permalink / raw)
  To: buildroot

Hi Yann, all
On Sat, Feb 15, 2014 at 12:51 PM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Maxime, All,
>
> On 2014-02-13 23:59 +0100, Maxime Hadjinlian spake thusly:
>> XBMC is an award-winning free and open source (GPL) software media player and
>> entertainment hub for digital media.
>
> Just a quick comment before I forget...
> Hopefully I'll have some more time for a proper review later today...
>
> [--SNIP--]
>> +config BR2_PACKAGE_XBMC_LIBCEC_RBP
>> +     bool "rpi support"
>> +     depends on BR2_INSTALL_LIBSTDCPP
>> +     depends on BR2_LARGEFILE
>> +     select BR2_PACKAGE_RPI_USERLAND
>> +     select BR2_PACKAGE_LIBCEC_RBP
>
> git grep BR2_PACKAGE_LIBCEC_RBP
> --> nothing... ?
Ouch ! Forgot to modify this... When I added libcec initially, there
was a specific choice for the RBP which was removed and then if
rpi-userland was selected, take advantage of it.
>
>> +     help
>> +       Enable RasberryPi support
>> +
>> +comment "rpi support requires a toolchain with C++ and LARGEFILE support"
>> +     depends on !(BR2_INSTALL_LIBSTDCPP && BR2_LARGEFILE)
>> +
>> +endif
>
> If rpi-userland is selected, then just assume RPi support is wanted.
> This should get rid of the circular dependency on EGL/GLES you mentioned
> later.
Make sense, I will look into it.
>
> Regards,
> Yann E. MORIN.
Thanks
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-14 23:51     ` Maxime Hadjinlian
  2014-02-15 12:03       ` Maxime Hadjinlian
@ 2014-02-18 15:43       ` Martin Bark
  2014-02-18 15:50         ` Maxime Hadjinlian
  1 sibling, 1 reply; 24+ messages in thread
From: Martin Bark @ 2014-02-18 15:43 UTC (permalink / raw)
  To: buildroot

Maxime,

Sorry for the late replay

On 14/02/14 23:51, Maxime Hadjinlian wrote:

-- snip --

>>
>>
>>> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
>>> new file mode 100644
>>> index 0000000..db43a9f
>>> --- /dev/null
>>> +++ b/package/xbmc/xbmc.mk
>>> @@ -0,0 +1,175 @@
>>>
>>> +################################################################################
>>> +#
>>> +# xbmc
>>> +#
>>>
>>> +################################################################################
>>> +
>>> +XBMC_VERSION = 12.3-Frodo
>>> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
>>> +XBMC_LICENSE = GPLv2
>>> +XBMC_LICENSE_FILES = LICENSE.GPL
>>> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
>>
>>
>> I think you need to add host-gperf, i had to add this for xmbc to compile.
> host-gperf ? I never needed that, why should it be needed ?

I just verified and xmbc does fails to build for me because i'm missing 
gpref.  I checked and the configure script tests for gpref and errors if 
it's missing.  The machine i'm building on does not have gperf 
installed.  Either adding host-gpref or patching configure.in to remove 
the tests for gpref fixed this issue.  I think probably patching 
configure.in is a better solution.

Thanks

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-18 15:43       ` Martin Bark
@ 2014-02-18 15:50         ` Maxime Hadjinlian
  2014-02-18 16:20           ` Martin Bark
  0 siblings, 1 reply; 24+ messages in thread
From: Maxime Hadjinlian @ 2014-02-18 15:50 UTC (permalink / raw)
  To: buildroot

On Tue, Feb 18, 2014 at 4:43 PM, Martin Bark <martin@barkynet.com> wrote:
> Maxime,
>
> Sorry for the late replay
>
>
> On 14/02/14 23:51, Maxime Hadjinlian wrote:
>
> -- snip --
>
>>>
>>>
>>>> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
>>>> new file mode 100644
>>>> index 0000000..db43a9f
>>>> --- /dev/null
>>>> +++ b/package/xbmc/xbmc.mk
>>>> @@ -0,0 +1,175 @@
>>>>
>>>>
>>>> +################################################################################
>>>> +#
>>>> +# xbmc
>>>> +#
>>>>
>>>>
>>>> +################################################################################
>>>> +
>>>> +XBMC_VERSION = 12.3-Frodo
>>>> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
>>>> +XBMC_LICENSE = GPLv2
>>>> +XBMC_LICENSE_FILES = LICENSE.GPL
>>>> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
>>>
>>>
>>>
>>> I think you need to add host-gperf, i had to add this for xmbc to
>>> compile.
>>
>> host-gperf ? I never needed that, why should it be needed ?
>
>
> I just verified and xmbc does fails to build for me because i'm missing
> gpref.  I checked and the configure script tests for gpref and errors if
> it's missing.  The machine i'm building on does not have gperf installed.
> Either adding host-gpref or patching configure.in to remove the tests for
> gpref fixed this issue.  I think probably patching configure.in is a better
> solution.
Okay, I must have it on my system, that's why I never noticed. I'll
add it to the dependency then.
Why do you think patching the configure.in would be better ?
It seems to me that it would add another patch to maintain, which
would never go mainline, if they search for it in their configure,
they must need it somehow.
>
> Thanks
Thank you

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

* [Buildroot] [PATCH v5 5/5] xbmc: new package
  2014-02-18 15:50         ` Maxime Hadjinlian
@ 2014-02-18 16:20           ` Martin Bark
  0 siblings, 0 replies; 24+ messages in thread
From: Martin Bark @ 2014-02-18 16:20 UTC (permalink / raw)
  To: buildroot

Maxime,

On 18/02/14 15:50, Maxime Hadjinlian wrote:
> On Tue, Feb 18, 2014 at 4:43 PM, Martin Bark <martin@barkynet.com> wrote:
>> Maxime,
>>
>> Sorry for the late replay
>>
>>
>> On 14/02/14 23:51, Maxime Hadjinlian wrote:
>>
>> -- snip --
>>
>>>>
>>>>
>>>>> diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
>>>>> new file mode 100644
>>>>> index 0000000..db43a9f
>>>>> --- /dev/null
>>>>> +++ b/package/xbmc/xbmc.mk
>>>>> @@ -0,0 +1,175 @@
>>>>>
>>>>>
>>>>> +################################################################################
>>>>> +#
>>>>> +# xbmc
>>>>> +#
>>>>>
>>>>>
>>>>> +################################################################################
>>>>> +
>>>>> +XBMC_VERSION = 12.3-Frodo
>>>>> +XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
>>>>> +XBMC_LICENSE = GPLv2
>>>>> +XBMC_LICENSE_FILES = LICENSE.GPL
>>>>> +XBMC_DEPENDENCIES = host-lzo host-sdl_image host-swig
>>>>
>>>>
>>>>
>>>> I think you need to add host-gperf, i had to add this for xmbc to
>>>> compile.
>>>
>>> host-gperf ? I never needed that, why should it be needed ?
>>
>>
>> I just verified and xmbc does fails to build for me because i'm missing
>> gpref.  I checked and the configure script tests for gpref and errors if
>> it's missing.  The machine i'm building on does not have gperf installed.
>> Either adding host-gpref or patching configure.in to remove the tests for
>> gpref fixed this issue.  I think probably patching configure.in is a better
>> solution.
> Okay, I must have it on my system, that's why I never noticed. I'll
> add it to the dependency then.
> Why do you think patching the configure.in would be better ?
> It seems to me that it would add another patch to maintain, which
> would never go mainline, if they search for it in their configure,
> they must need it somehow.

Well the readme's mention gpref as as build dependency and configure 
tests for it but i can't see that it's used.  However, you're right it's 
another patch to maintain so adding host-gperf would be simpler.

>>
>> Thanks
> Thank you
>

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

end of thread, other threads:[~2014-02-18 16:20 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-13 22:59 [Buildroot] [PATCH v5 0/5] Introducing XBMC Maxime Hadjinlian
2014-02-13 22:59 ` [Buildroot] [PATCH v5 1/5] sdl: fix autoreconf timing issue Maxime Hadjinlian
2014-02-13 23:03   ` Maxime Hadjinlian
2014-02-13 22:59 ` [Buildroot] [PATCH v5 2/5] sdl: add host version Maxime Hadjinlian
2014-02-13 22:59 ` [Buildroot] [PATCH v5 3/5] sdl_image: " Maxime Hadjinlian
2014-02-13 22:59 ` [Buildroot] [PATCH v5 4/5] dependencies.sh: XBMC needs java on the host Maxime Hadjinlian
2014-02-14  8:39   ` Thomas Petazzoni
2014-02-14  8:59     ` Maxime Hadjinlian
2014-02-14 12:51     ` Mike Zick
2014-02-14 13:27       ` Maxime Hadjinlian
2014-02-14 20:35   ` Martin Bark
2014-02-14 23:33     ` Maxime Hadjinlian
2014-02-13 22:59 ` [Buildroot] [PATCH v5 5/5] xbmc: new package Maxime Hadjinlian
2014-02-14 22:59   ` Martin Bark
2014-02-14 23:51     ` Maxime Hadjinlian
2014-02-15 12:03       ` Maxime Hadjinlian
2014-02-18 15:43       ` Martin Bark
2014-02-18 15:50         ` Maxime Hadjinlian
2014-02-18 16:20           ` Martin Bark
2014-02-15 11:51   ` Yann E. MORIN
2014-02-15 12:07     ` Maxime Hadjinlian
2014-02-14  6:08 ` [Buildroot] [PATCH v5 0/5] Introducing XBMC Bernd Kuhls
2014-02-14 22:41 ` Martin Bark
2014-02-14 23:53   ` Maxime Hadjinlian

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.