* [Buildroot] [PATCH v4 0/5] Introducing XBMC
@ 2014-01-26 21:38 Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 1/5] sdl: add host version Maxime Hadjinlian
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:38 UTC (permalink / raw)
To: buildroot
Hi all,
This is a new version (trimmed down), to the series of patch introducing XBMC.
A few changes has been made to libenca, where I merged the patch from Bernd
Kuhls (http://patchwork.ozlabs.org/patch/312284/).
And also XBMC, where I have reworked the init script, and added one for systemd.
As always, I wait for your reviews and comments !
Maxime Hadjinlian (5):
sdl: add host version
sdl_image: add host version
libenca: new package
libass: new package
xbmc: new package
package/Config.in | 3 +
package/libass/Config.in | 11 ++
package/libass/libass.mk | 14 ++
package/libenca/Config.in | 7 +
.../libenca/libenca-000-do-not-build-tools.patch | 44 +++++
.../libenca-001-fix-installation-error.patch | 44 +++++
...benca-002-remove-prefix-hack-in-configure.patch | 33 ++++
package/libenca/libenca-003-iconv.patch | 15 ++
package/libenca/libenca.mk | 33 ++++
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 | 176 ++++++++++++++++++
package/xbmc/xbmc.service | 12 ++
17 files changed, 894 insertions(+)
create mode 100644 package/libass/Config.in
create mode 100644 package/libass/libass.mk
create mode 100644 package/libenca/Config.in
create mode 100644 package/libenca/libenca-000-do-not-build-tools.patch
create mode 100644 package/libenca/libenca-001-fix-installation-error.patch
create mode 100644 package/libenca/libenca-002-remove-prefix-hack-in-configure.patch
create mode 100644 package/libenca/libenca-003-iconv.patch
create mode 100644 package/libenca/libenca.mk
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.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 1/5] sdl: add host version
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
@ 2014-01-26 21:38 ` Maxime Hadjinlian
2014-01-28 22:07 ` Thomas Petazzoni
2014-01-26 21:38 ` [Buildroot] [PATCH v4 2/5] sdl_image: " Maxime Hadjinlian
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:38 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.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 2/5] sdl_image: add host version
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 1/5] sdl: add host version Maxime Hadjinlian
@ 2014-01-26 21:38 ` Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 3/5] libenca: new package Maxime Hadjinlian
` (2 subsequent siblings)
4 siblings, 0 replies; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:38 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.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 3/5] libenca: new package
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 1/5] sdl: add host version Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 2/5] sdl_image: " Maxime Hadjinlian
@ 2014-01-26 21:38 ` Maxime Hadjinlian
2014-01-28 18:58 ` Peter Korsgaard
2014-01-28 19:17 ` Peter Korsgaard
2014-01-26 21:39 ` [Buildroot] [PATCH v4 4/5] libass: " Maxime Hadjinlian
2014-01-26 21:39 ` [Buildroot] [PATCH v4 5/5] xbmc: " Maxime Hadjinlian
4 siblings, 2 replies; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:38 UTC (permalink / raw)
To: buildroot
Extremely Naive Charset Analyser.
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>
Cc: Bernd Kuhls <berndkuhls@hotmail.com>
---
Changes v3 --> v4:
- Add support for libiconv (Patch from Bernd Kuhls)
Changes v2 --> v3:
- Bump libenca to 1.15 (1.9 was 4 years ago)
- Rework the whole libenca.mk file
- Switch source to github
- New patch against Makefile.am and do AUTORECONF (Thomas Petazzoni,
Yann E. Morin)
- Remove the uses of prefix by adding a patch which removes a hack in
the configure.ac (Yann E. Morin)
Changes v1 --> v2:
- Rename patch files (Thomas Petazzoni)
- Fix header of the mk files (Thomas Petazzoni)
- Fix indent (Thomas Petazzoni)
- Put LIBENCA_CONF_ENV on one line (Thomas Petazzoni)
---
package/Config.in | 1 +
package/libenca/Config.in | 7 ++++
.../libenca/libenca-000-do-not-build-tools.patch | 44 ++++++++++++++++++++++
.../libenca-001-fix-installation-error.patch | 44 ++++++++++++++++++++++
...benca-002-remove-prefix-hack-in-configure.patch | 33 ++++++++++++++++
package/libenca/libenca-003-iconv.patch | 15 ++++++++
package/libenca/libenca.mk | 33 ++++++++++++++++
7 files changed, 177 insertions(+)
create mode 100644 package/libenca/Config.in
create mode 100644 package/libenca/libenca-000-do-not-build-tools.patch
create mode 100644 package/libenca/libenca-001-fix-installation-error.patch
create mode 100644 package/libenca/libenca-002-remove-prefix-hack-in-configure.patch
create mode 100644 package/libenca/libenca-003-iconv.patch
create mode 100644 package/libenca/libenca.mk
diff --git a/package/Config.in b/package/Config.in
index 397cc11..677f01e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -773,6 +773,7 @@ menu "Text and terminal handling"
source "package/enchant/Config.in"
source "package/icu/Config.in"
source "package/libedit/Config.in"
+source "package/libenca/Config.in"
source "package/libfribidi/Config.in"
source "package/libiconv/Config.in"
source "package/linenoise/Config.in"
diff --git a/package/libenca/Config.in b/package/libenca/Config.in
new file mode 100644
index 0000000..58217dc
--- /dev/null
+++ b/package/libenca/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_LIBENCA
+ select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
+ bool "libenca"
+ help
+ Extremely Naive Charset Analyser
+
+ http://cihar.com/software/enca/
diff --git a/package/libenca/libenca-000-do-not-build-tools.patch b/package/libenca/libenca-000-do-not-build-tools.patch
new file mode 100644
index 0000000..83db61b
--- /dev/null
+++ b/package/libenca/libenca-000-do-not-build-tools.patch
@@ -0,0 +1,44 @@
+From be1fe3e057ccb90fd476bf855f19ecbe97bf4e1e Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Wed, 15 Jan 2014 00:18:34 +0100
+Subject: [PATCH 1/3] Do not build tools
+
+We don't want to build tools using buildroot because there is currently no
+support for cross compile.
+And we need to execute make_hash (which seems to be the only things that get
+compiled in tools) to create encodings.h which will later be used during the
+build process.
+Thus, we disable the build of the tools, and we do ourselves using a
+POST_CONFIGURE_HOOKS.
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index c9f203a..b5b50be 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,8 +1,8 @@
+ # @(#) $Id: Makefile.am,v 1.35 2005/11/24 10:21:32 yeti Exp $
+ if MAINTAINER_MODE
+-SUBDIRS = tools data script lib src devel-docs test
++SUBDIRS = data script lib src devel-docs test
+ else
+-SUBDIRS = tools script lib src devel-docs test
++SUBDIRS = script lib src devel-docs test
+ endif
+ man_MANS = man/enca.1
+
+@@ -19,7 +19,6 @@ M4TESTS = \
+ m4/localias.m4 \
+ m4/long-text.l2 \
+ m4/recode-bugs.m4 \
+- m4/tools.m4 \
+ m4/typevar.m4
+
+ EXTRA_DIST = \
+--
+1.8.5.2
+
diff --git a/package/libenca/libenca-001-fix-installation-error.patch b/package/libenca/libenca-001-fix-installation-error.patch
new file mode 100644
index 0000000..fc27841
--- /dev/null
+++ b/package/libenca/libenca-001-fix-installation-error.patch
@@ -0,0 +1,44 @@
+From 1ca09a1a8f3dd07e2805855a1f1a67a54e8d8adb Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Wed, 15 Jan 2014 00:20:08 +0100
+Subject: [PATCH 2/3] Fix installation error
+
+ln will complain that the link already exists and will error.
+Adding the -f flag, force ln to recreate the link without failing the
+build.
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ Makefile.am | 2 +-
+ src/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b5b50be..ddf1d5f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -54,7 +54,7 @@ install-data-hook:
+ cd $(DESTDIR)$(man1dir); \
+ inst1=`echo enca | sed '$(transform)'`.1; \
+ inst2=`echo enconv | sed '$(transform)'`.1; \
+- $(LN_S) $$inst1 $$inst2
++ $(LN_S) -f $$inst1 $$inst2
+
+ uninstall-hook:
+ inst=`echo enconv | sed '$(transform)'`.1; \
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 2f01a12..3885137 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -47,7 +47,7 @@ install-exec-hook:
+ cd $(DESTDIR)$(bindir); \
+ inst1=`echo enca | sed '$(transform)'`; \
+ inst2=`echo enconv | sed '$(transform)'`; \
+- $(LN_S) $$inst1$(EXEEXT) $$inst2$(EXEEXT)
++ $(LN_S) -f $$inst1$(EXEEXT) $$inst2$(EXEEXT)
+
+ uninstall-hook:
+ inst=`echo enconv | sed '$(transform)'`; \
+--
+1.8.5.2
+
diff --git a/package/libenca/libenca-002-remove-prefix-hack-in-configure.patch b/package/libenca/libenca-002-remove-prefix-hack-in-configure.patch
new file mode 100644
index 0000000..45701f9
--- /dev/null
+++ b/package/libenca/libenca-002-remove-prefix-hack-in-configure.patch
@@ -0,0 +1,33 @@
+From 354a8217eb735c9678f42436d647571fcebc3ead Mon Sep 17 00:00:00 2001
+From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+Date: Wed, 15 Jan 2014 00:46:10 +0100
+Subject: [PATCH 3/3] Remove prefix hack in configure
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+---
+ configure.ac | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9db3b21..9b99df4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -100,15 +100,6 @@ gtk_CHECK_GTK_DOC
+ dnl Check for good random number sources
+ AC_CHECK_FILES(/dev/random /dev/urandom /dev/srandom /dev/arandom)
+
+-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.
+ ye_CHECK_LIBM
+
+--
+1.8.5.2
+
diff --git a/package/libenca/libenca-003-iconv.patch b/package/libenca/libenca-003-iconv.patch
new file mode 100644
index 0000000..2ea43c0
--- /dev/null
+++ b/package/libenca/libenca-003-iconv.patch
@@ -0,0 +1,15 @@
+libiconv.m4: Fix AM_ICONV macro usage
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+--- a/m4/libiconv.m4 2013-09-30 09:48:22.000000000 +0200
++++ b/m4/libiconv.m4 2014-01-18 12:56:32.634514555 +0100
+@@ -17,7 +17,7 @@
+ dnl
+
+ dnl Use standard iconv test
+-AM_ICONV
++m4_pattern_allow([AM_ICONV])
+ CONVERTER_LIBS="$CONVERTER_LIBS $LIBICONV"
+
+ dnl Compile iconvcap.c and run it to determine what encodings iconv actually
diff --git a/package/libenca/libenca.mk b/package/libenca/libenca.mk
new file mode 100644
index 0000000..1c5c162
--- /dev/null
+++ b/package/libenca/libenca.mk
@@ -0,0 +1,33 @@
+################################################################################
+#
+# libenca
+#
+################################################################################
+
+LIBENCA_VERSION = 1.15
+LIBENCA_SITE = $(call github,nijel,enca,$(LIBENCA_VERSION))
+LIBENCA_INSTALL_STAGING = YES
+LIBENCA_AUTORECONF = YES
+LIBENCA_LICENSE = GPLv2
+LIBENCA_LICENSE_FILES = COPYING
+LIBENCA_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+
+LIBENCA_CONF_ENV += ac_cv_file__dev_random=yes \
+ ac_cv_file__dev_urandom=yes \
+ ac_cv_file__dev_arandom=no \
+ ac_cv_file__dev_srandom=no
+
+define LIBENCA_MAKE_HOST_TOOL
+ cd $(@D)/tools && sed -e 's/^#define \([A-Z0-9_]*\) \(.*\)/@\1@ \2/' \
+ -e 's/"//g' \
+ -e 's/NULL$$//' \
+ -e 's/ /\//' \
+ -e 's/^\(.*\)$$/s\/\1\//' \
+ ../iconvenc.h >encodings.sed
+ cd $(@D)/tools && $(HOSTCC) -o make_hash make_hash.c
+ cd $(@D)/tools && sed -f encodings.sed ./encodings.dat | ./make_hash >encodings.h
+endef
+
+LIBENCA_POST_CONFIGURE_HOOKS += LIBENCA_MAKE_HOST_TOOL
+
+$(eval $(autotools-package))
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 4/5] libass: new package
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
` (2 preceding siblings ...)
2014-01-26 21:38 ` [Buildroot] [PATCH v4 3/5] libenca: new package Maxime Hadjinlian
@ 2014-01-26 21:39 ` Maxime Hadjinlian
2014-01-28 21:43 ` Peter Korsgaard
2014-01-26 21:39 ` [Buildroot] [PATCH v4 5/5] xbmc: " Maxime Hadjinlian
4 siblings, 1 reply; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:39 UTC (permalink / raw)
To: buildroot
libass is a portable subtitle renderer for the
ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
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>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
Changes v3 -> v4:
- None
Changes v2 -> v3
- Add missing libfribidi dependency
- Fix header
Changes v1 -> v2
- Bump version to 0.10.2 (Bernd Kuhls)
---
package/Config.in | 1 +
package/libass/Config.in | 11 +++++++++++
package/libass/libass.mk | 14 ++++++++++++++
3 files changed, 26 insertions(+)
create mode 100644 package/libass/Config.in
create mode 100644 package/libass/libass.mk
diff --git a/package/Config.in b/package/Config.in
index 677f01e..fa637cf 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -630,6 +630,7 @@ source "package/yajl/Config.in"
endmenu
menu "Multimedia"
+source "package/libass/Config.in"
source "package/libbluray/Config.in"
source "package/libdvbsi/Config.in"
source "package/libdvdnav/Config.in"
diff --git a/package/libass/Config.in b/package/libass/Config.in
new file mode 100644
index 0000000..9170c6f
--- /dev/null
+++ b/package/libass/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_LIBASS
+ bool "libass"
+ select BR2_PACKAGE_FREETYPE
+ select BR2_PACKAGE_FONTCONFIG
+ select BR2_PACKAGE_LIBENCA
+ select BR2_PACKAGE_LIBFRIBIDI
+ help
+ libass is a portable subtitle renderer for the ASS/SSA
+ (Advanced Substation Alpha/Substation Alpha) subtitle format
+
+ http://code.google.com/p/libass/
diff --git a/package/libass/libass.mk b/package/libass/libass.mk
new file mode 100644
index 0000000..5c2a1b3
--- /dev/null
+++ b/package/libass/libass.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# libass
+#
+################################################################################
+
+LIBASS_VERSION = 0.10.2
+LIBASS_SITE = http://libass.googlecode.com/files
+LIBASS_INSTALL_STAGING = YES
+LIBASS_DEPENDENCIES = freetype fontconfig libenca libfribidi
+LIBASS_LICENSE = BSD-3c
+LIBASS_LICENSE_FILES = COPYING
+
+$(eval $(autotools-package))
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 5/5] xbmc: new package
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
` (3 preceding siblings ...)
2014-01-26 21:39 ` [Buildroot] [PATCH v4 4/5] libass: " Maxime Hadjinlian
@ 2014-01-26 21:39 ` Maxime Hadjinlian
4 siblings, 0 replies; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-26 21:39 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 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 | 176 ++++++++++++++++++
package/xbmc/xbmc.service | 12 ++
7 files changed, 678 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 fa637cf..0c4b296 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..b482b08
--- /dev/null
+++ b/package/xbmc/xbmc.mk
@@ -0,0 +1,176 @@
+################################################################################
+#
+# 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_MAKE=$(MAKE1)
+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.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 3/5] libenca: new package
2014-01-26 21:38 ` [Buildroot] [PATCH v4 3/5] libenca: new package Maxime Hadjinlian
@ 2014-01-28 18:58 ` Peter Korsgaard
2014-01-28 19:17 ` Peter Korsgaard
1 sibling, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2014-01-28 18:58 UTC (permalink / raw)
To: buildroot
>>>>> "Maxime" == Maxime Hadjinlian <maxime.hadjinlian@gmail.com> writes:
> Extremely Naive Charset Analyser.
> 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>
> Cc: Bernd Kuhls <berndkuhls@hotmail.com>
> ---
> Changes v3 --> v4:
> - Add support for libiconv (Patch from Bernd Kuhls)
> Changes v2 --> v3:
> - Bump libenca to 1.15 (1.9 was 4 years ago)
> - Rework the whole libenca.mk file
> - Switch source to github
> - New patch against Makefile.am and do AUTORECONF (Thomas Petazzoni,
> Yann E. Morin)
> - Remove the uses of prefix by adding a patch which removes a hack in
> the configure.ac (Yann E. Morin)
> Changes v1 --> v2:
> - Rename patch files (Thomas Petazzoni)
> - Fix header of the mk files (Thomas Petazzoni)
> - Fix indent (Thomas Petazzoni)
> - Put LIBENCA_CONF_ENV on one line (Thomas Petazzoni)
> ---
> package/Config.in | 1 +
> package/libenca/Config.in | 7 ++++
> .../libenca/libenca-000-do-not-build-tools.patch | 44 ++++++++++++++++++++++
> .../libenca-001-fix-installation-error.patch | 44 ++++++++++++++++++++++
> ...benca-002-remove-prefix-hack-in-configure.patch | 33 ++++++++++++++++
> package/libenca/libenca-003-iconv.patch | 15 ++++++++
> package/libenca/libenca.mk | 33 ++++++++++++++++
> 7 files changed, 177 insertions(+)
> create mode 100644 package/libenca/Config.in
> create mode 100644 package/libenca/libenca-000-do-not-build-tools.patch
> create mode 100644 package/libenca/libenca-001-fix-installation-error.patch
> create mode 100644 package/libenca/libenca-002-remove-prefix-hack-in-configure.patch
> create mode 100644 package/libenca/libenca-003-iconv.patch
> create mode 100644 package/libenca/libenca.mk
> diff --git a/package/Config.in b/package/Config.in
> index 397cc11..677f01e 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -773,6 +773,7 @@ menu "Text and terminal handling"
> source "package/enchant/Config.in"
> source "package/icu/Config.in"
> source "package/libedit/Config.in"
> +source "package/libenca/Config.in"
> source "package/libfribidi/Config.in"
> source "package/libiconv/Config.in"
> source "package/linenoise/Config.in"
> diff --git a/package/libenca/Config.in b/package/libenca/Config.in
> new file mode 100644
> index 0000000..58217dc
> --- /dev/null
> +++ b/package/libenca/Config.in
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_LIBENCA
> + select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
A quick test shows that locale / libiconv actually isn't
needed. Configure warns if they aren't available, but it does build.
> + bool "libenca"
> + help
> + Extremely Naive Charset Analyser
> +
> + http://cihar.com/software/enca/
> diff --git a/package/libenca/libenca-000-do-not-build-tools.patch b/package/libenca/libenca-000-do-not-build-tools.patch
> new file mode 100644
> index 0000000..83db61b
> --- /dev/null
> +++ b/package/libenca/libenca-000-do-not-build-tools.patch
> @@ -0,0 +1,44 @@
> +From be1fe3e057ccb90fd476bf855f19ecbe97bf4e1e Mon Sep 17 00:00:00 2001
> +From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> +Date: Wed, 15 Jan 2014 00:18:34 +0100
> +Subject: [PATCH 1/3] Do not build tools
> +
> +We don't want to build tools using buildroot because there is currently no
> +support for cross compile.
> +And we need to execute make_hash (which seems to be the only things that get
> +compiled in tools) to create encodings.h which will later be used during the
> +build process.
> +Thus, we disable the build of the tools, and we do ourselves using a
> +POST_CONFIGURE_HOOKS.
As long as we build make_hash in advance, the make file won't try to
rebuild it so we don't actually need this patch.
> +define LIBENCA_MAKE_HOST_TOOL
> + cd $(@D)/tools && sed -e 's/^#define \([A-Z0-9_]*\) \(.*\)/@\1@ \2/' \
> + -e 's/"//g' \
> + -e 's/NULL$$//' \
> + -e 's/ /\//' \
> + -e 's/^\(.*\)$$/s\/\1\//' \
> + ../iconvenc.h >encodings.sed
> + cd $(@D)/tools && $(HOSTCC) -o make_hash make_hash.c
> + cd $(@D)/tools && sed -f encodings.sed ./encodings.dat | ./make_hash >encodings.h
It would be good to use HOST_CFLAGS / HOST_LDFLAGS as well. We might as
well use util/Makefile instead of hardcoding all these steps.
Committed with those changes, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 3/5] libenca: new package
2014-01-26 21:38 ` [Buildroot] [PATCH v4 3/5] libenca: new package Maxime Hadjinlian
2014-01-28 18:58 ` Peter Korsgaard
@ 2014-01-28 19:17 ` Peter Korsgaard
1 sibling, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2014-01-28 19:17 UTC (permalink / raw)
To: buildroot
>>>>> "Maxime" == Maxime Hadjinlian <maxime.hadjinlian@gmail.com> writes:
> Extremely Naive Charset Analyser.
> 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>
> Cc: Bernd Kuhls <berndkuhls@hotmail.com>
> ---
> Changes v3 --> v4:
> - Add support for libiconv (Patch from Bernd Kuhls)
> Changes v2 --> v3:
> - Bump libenca to 1.15 (1.9 was 4 years ago)
> - Rework the whole libenca.mk file
> - Switch source to github
> - New patch against Makefile.am and do AUTORECONF (Thomas Petazzoni,
> Yann E. Morin)
> - Remove the uses of prefix by adding a patch which removes a hack in
> the configure.ac (Yann E. Morin)
> Changes v1 --> v2:
> - Rename patch files (Thomas Petazzoni)
> - Fix header of the mk files (Thomas Petazzoni)
> - Fix indent (Thomas Petazzoni)
> - Put LIBENCA_CONF_ENV on one line (Thomas Petazzoni)
> ---
> package/Config.in | 1 +
> package/libenca/Config.in | 7 ++++
> .../libenca/libenca-000-do-not-build-tools.patch | 44 ++++++++++++++++++++++
> .../libenca-001-fix-installation-error.patch | 44 ++++++++++++++++++++++
> ...benca-002-remove-prefix-hack-in-configure.patch | 33 ++++++++++++++++
> package/libenca/libenca-003-iconv.patch | 15 ++++++++
Oh and plese don't forget to send the patches upstream!
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 4/5] libass: new package
2014-01-26 21:39 ` [Buildroot] [PATCH v4 4/5] libass: " Maxime Hadjinlian
@ 2014-01-28 21:43 ` Peter Korsgaard
0 siblings, 0 replies; 12+ messages in thread
From: Peter Korsgaard @ 2014-01-28 21:43 UTC (permalink / raw)
To: buildroot
>>>>> "Maxime" == Maxime Hadjinlian <maxime.hadjinlian@gmail.com> writes:
> libass is a portable subtitle renderer for the
> ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
> 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>
> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> ---
> Changes v3 -> v4:
> - None
> Changes v2 -> v3
> - Add missing libfribidi dependency
> - Fix header
> Changes v1 -> v2
> - Bump version to 0.10.2 (Bernd Kuhls)
> +++ b/package/libass/Config.in
> @@ -0,0 +1,11 @@
> +config BR2_PACKAGE_LIBASS
> + bool "libass"
> + select BR2_PACKAGE_FREETYPE
> + select BR2_PACKAGE_FONTCONFIG
> + select BR2_PACKAGE_LIBENCA
> + select BR2_PACKAGE_LIBFRIBIDI
fontconfig and libenca are optional, so we shouldn't select them here.
> + help
> + libass is a portable subtitle renderer for the ASS/SSA
> + (Advanced Substation Alpha/Substation Alpha) subtitle format
> +
> + http://code.google.com/p/libass/
> diff --git a/package/libass/libass.mk b/package/libass/libass.mk
> new file mode 100644
> index 0000000..5c2a1b3
> --- /dev/null
> +++ b/package/libass/libass.mk
> @@ -0,0 +1,14 @@
> +################################################################################
> +#
> +# libass
> +#
> +################################################################################
> +
> +LIBASS_VERSION = 0.10.2
> +LIBASS_SITE = http://libass.googlecode.com/files
> +LIBASS_INSTALL_STAGING = YES
> +LIBASS_DEPENDENCIES = freetype fontconfig libenca libfribidi
It uses pkg-config to find the libraries, so we also need
host-pkgconf. It also looks for libiconv if available, so we need to add
it. As mentioned fontconfig and libenca are optional. There's also
optional support for harfbuzz so I added that as well.
> +LIBASS_LICENSE = BSD-3c
> +LIBASS_LICENSE_FILES = COPYING
I know the website states that, but COPYING and the file headers are
ISC, so I changed it to that.
Committed with those fixes, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 1/5] sdl: add host version
2014-01-26 21:38 ` [Buildroot] [PATCH v4 1/5] sdl: add host version Maxime Hadjinlian
@ 2014-01-28 22:07 ` Thomas Petazzoni
2014-01-29 9:16 ` Maxime Hadjinlian
0 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2014-01-28 22:07 UTC (permalink / raw)
To: buildroot
Dear Maxime Hadjinlian,
On Sun, 26 Jan 2014 22:38:57 +0100, Maxime Hadjinlian wrote:
> 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>
For my curiosity, which specific SDL and SDL_image host tools are used
by XBMC ?
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 1/5] sdl: add host version
2014-01-28 22:07 ` Thomas Petazzoni
@ 2014-01-29 9:16 ` Maxime Hadjinlian
2014-01-29 9:19 ` Thomas Petazzoni
0 siblings, 1 reply; 12+ messages in thread
From: Maxime Hadjinlian @ 2014-01-29 9:16 UTC (permalink / raw)
To: buildroot
Thomas, all
On Tue, Jan 28, 2014 at 11:07 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Maxime Hadjinlian,
>
> On Sun, 26 Jan 2014 22:38:57 +0100, Maxime Hadjinlian wrote:
>> 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>
>
> For my curiosity, which specific SDL and SDL_image host tools are used
> by XBMC ?
This is needed by TexturePacker which is a host tool, that is used to
pack the various images (jpeg and png) found in XBMC's GUI (Since it
supports themes), it will generate a XBT file, wich will be read by
XBMC on the target to depack and display the GUI.
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Buildroot] [PATCH v4 1/5] sdl: add host version
2014-01-29 9:16 ` Maxime Hadjinlian
@ 2014-01-29 9:19 ` Thomas Petazzoni
0 siblings, 0 replies; 12+ messages in thread
From: Thomas Petazzoni @ 2014-01-29 9:19 UTC (permalink / raw)
To: buildroot
Dear Maxime Hadjinlian,
On Wed, 29 Jan 2014 10:16:52 +0100, Maxime Hadjinlian wrote:
> This is needed by TexturePacker which is a host tool, that is used to
> pack the various images (jpeg and png) found in XBMC's GUI (Since it
> supports themes), it will generate a XBT file, wich will be read by
> XBMC on the target to depack and display the GUI.
Ok, thanks! It answers my curiosity question :)
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-01-29 9:19 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-26 21:38 [Buildroot] [PATCH v4 0/5] Introducing XBMC Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 1/5] sdl: add host version Maxime Hadjinlian
2014-01-28 22:07 ` Thomas Petazzoni
2014-01-29 9:16 ` Maxime Hadjinlian
2014-01-29 9:19 ` Thomas Petazzoni
2014-01-26 21:38 ` [Buildroot] [PATCH v4 2/5] sdl_image: " Maxime Hadjinlian
2014-01-26 21:38 ` [Buildroot] [PATCH v4 3/5] libenca: new package Maxime Hadjinlian
2014-01-28 18:58 ` Peter Korsgaard
2014-01-28 19:17 ` Peter Korsgaard
2014-01-26 21:39 ` [Buildroot] [PATCH v4 4/5] libass: " Maxime Hadjinlian
2014-01-28 21:43 ` Peter Korsgaard
2014-01-26 21:39 ` [Buildroot] [PATCH v4 5/5] xbmc: " Maxime Hadjinlian
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox