diff mbox

[WIP,15/16] xbmc: Bump version to Gotham_beta3

Message ID 1396296389-28821-16-git-send-email-bernd.kuhls@t-online.de
State Superseded
Headers show

Commit Message

Bernd Kuhls March 31, 2014, 8:06 p.m. UTC
- add support for uClibc, X.org, mesa3d, vaapi

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
 package/xbmc/Config.in |   26 +++++++++--------
 package/xbmc/xbmc.mk   |   73 ++++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 76 insertions(+), 23 deletions(-)

Comments

Yann E. MORIN March 31, 2014, 10:05 p.m. UTC | #1
Bernd, All,

Hihi! Gotham! :-)

On 2014-03-31 22:06 +0200, Bernd Kuhls spake thusly:
> - add support for uClibc, X.org, mesa3d, vaapi

For very large and complex beasts like XBMC, it would be better to
split the patch:
  - a first patch to bump
  - a second to add uClibc support
  - a third to add mesa3d
  - a fourth to add vaapi

This will make it easier to review.

As you said, we should consider this bump as an RFC: better wait for the
final release rather than bundle a beta release.

Regards,
Yann E. MORIN.
Bernd Kuhls April 1, 2014, 5:11 p.m. UTC | #2
Hi,

"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
news:20140331220546.GD5004@free.fr:

>   - a first patch to bump
>   - a second to add uClibc support

both is done by the version bump to Gotham. Frodo does not support uClibc, 
Gotham will do thanks to the two small patches[1] I sent to the xbmc team ;) 
Why I do not like the idea to split the Config.in patch? See next comment...

>   - a third to add mesa3d
>   - a fourth to add vaapi
> 
> This will make it easier to review.

I am not sure if the version bump alone creates a bisectable, that means 
buildable xbmc package. My time is limited, so I prefer not to test four 
different patches for "complex beasts like XBMC" and their ability, that each 
of them still compiles without errors.

> As you said, we should consider this bump as an RFC: better wait for the
> final release rather than bundle a beta release.

Of course ;) But we should start testing, especially on non-intel platforms. 
If something is missing, we still have a chance to get it into Gotham release 
code.

Regards, Bernd

[1] https://github.com/xbmc/xbmc/pull/3920
    https://github.com/xbmc/xbmc/pull/4427
Yann E. MORIN April 1, 2014, 6:35 p.m. UTC | #3
On 2014-04-01 19:11 +0200, Bernd Kuhls spake thusly:
> Hi,
> 
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote in 
> news:20140331220546.GD5004@free.fr:
> 
> >   - a first patch to bump
> >   - a second to add uClibc support
> 
> both is done by the version bump to Gotham. Frodo does not support uClibc, 
> Gotham will do thanks to the two small patches[1] I sent to the xbmc team ;) 

Great! Thanks! :-)

> Why I do not like the idea to split the Config.in patch? See next comment...
> 
> >   - a third to add mesa3d
> >   - a fourth to add vaapi
> > 
> > This will make it easier to review.
> 
> I am not sure if the version bump alone creates a bisectable, that means 
> buildable xbmc package. My time is limited, so I prefer not to test four 
> different patches for "complex beasts like XBMC" and their ability, that each 
> of them still compiles without errors.

I can understand that your time is precious. But so is mine, and all the
other reviewers.

Reviewing small patches is much easier than reviewing a single patch
with many changes. We already have some difficulties finding time to
review even simple patches, that when we see a large patch, it is just
not that appealing.

For example, you're saying that bumping to Gotham will enable us to
build on uClibc. That's fine, but they are two different things:
  - a bump of version, which keeps the same feature-set
  - a new feature, which is to build with uClibc

If something goes amiss with uClibc, we can just revert that and keep
the bump. If it was a single change, we'd have to revert all of it
just because of the failure of a single new feature.

Ditto with mesa3d and vaapi. If only vaapi has a problem and it is in a
single patch, we may have to revert the whole thing, while if vaapi is
in its own patch, it is easy to revert [*].

Note also, that many of the XBMC sub-options have dependencies on
toolchain features (eg. IPv6, threads, and so on...) which are not
currently expressed, being implicit as XBMC depends on (e)glibc, and so
those features are guaranteed to be present in this case. But when
enabling building with uClibc, those dependencies will have to be added,
which is not a trivial change. And your patch is missing all those new
required dependencies. Having split-patches will make it easier to check
those dependencies.

But in the end, if you can't find the time to split the patch into
atmic, semantically-separated patches, you are still welcome to post
your work on the list. :-) Maybe someone will be interested enough that
he'll get your patch, do the split himself, and resubmit the splitted
patches.

[*] revert: in case the fix is not obvious, the best approach is to
revert changes until they are fixed. Of course, if the ix is trivial,
there is no revert needed, but better safe than sorry.

> > As you said, we should consider this bump as an RFC: better wait for the
> > final release rather than bundle a beta release.
> 
> Of course ;) But we should start testing, especially on non-intel platforms. 
> If something is missing, we still have a chance to get it into Gotham release 
> code.

Yes. I'm sure Maxime will be very happy not to have to handle this bump! ;-)

Regards,
Yann E. MORIN.
Bernd Kuhls April 1, 2014, 7:40 p.m. UTC | #4
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
news:20140401183534.GB3291@free.fr: 

> Note also, that many of the XBMC sub-options have dependencies on
> toolchain features (eg. IPv6, threads, and so on...) which are not
> currently expressed, being implicit as XBMC depends on (e)glibc, and so
> those features are guaranteed to be present in this case. But when
> enabling building with uClibc, those dependencies will have to be added,
> which is not a trivial change. And your patch is missing all those new
> required dependencies. Having split-patches will make it easier to check
> those dependencies.

Hi,

ok, you convinced me to split the patch, I already started work ;)

efc3c8359e6493dbcdf32afd4f9d4075dd4b9f4a WIP: xbmc: needs host-gawk
bbcfd437efa76bd358a287d0505dc98f2c9987e5 WIP: xbmc: Add option for Goom 
screensaver
3b33e850145ae59e1a51f14933b1d889a7ce8091 WIP: xbmc: Disable broken rsxs 
screensaver
ca08b3b00d44a70cd65bedb5737254ff286b1c72 WIP: xbmc: Add lame support
aaf2d1b40144266446d5764baf65b9ed1a44e7a3 WIP: xbmc: Add alsa support
7a4721ab543e705ced87f8e4dbeb38c91af14914 WIP: xbmc: Add VA-API support
21c7aa5957c8855a1b0ecbe5f2a8a16b583d4439 WIP: xbmc: Add X.org support
283da553c5fe11f64486e825e8d1975403fa633e WIP: xbmc: Allow compilation with 
uClibc
19018489f879c289b41de3013ea98724bb0c550c WIP: xbmc: Bump version to 
Gotham_beta3

Regards, Bernd
Maxime Hadjinlian April 1, 2014, 9:29 p.m. UTC | #5
Hi Bernd, Yann, all
On Tue, Apr 1, 2014 at 9:40 PM, Bernd Kuhls <berndkuhls@hotmail.com> wrote:
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
> news:20140401183534.GB3291@free.fr:
>
>> Note also, that many of the XBMC sub-options have dependencies on
>> toolchain features (eg. IPv6, threads, and so on...) which are not
>> currently expressed, being implicit as XBMC depends on (e)glibc, and so
>> those features are guaranteed to be present in this case. But when
>> enabling building with uClibc, those dependencies will have to be added,
>> which is not a trivial change. And your patch is missing all those new
>> required dependencies. Having split-patches will make it easier to check
>> those dependencies.
>
> Hi,
>
> ok, you convinced me to split the patch, I already started work ;)
>
> efc3c8359e6493dbcdf32afd4f9d4075dd4b9f4a WIP: xbmc: needs host-gawk
> bbcfd437efa76bd358a287d0505dc98f2c9987e5 WIP: xbmc: Add option for Goom
> screensaver
> 3b33e850145ae59e1a51f14933b1d889a7ce8091 WIP: xbmc: Disable broken rsxs
> screensaver
> ca08b3b00d44a70cd65bedb5737254ff286b1c72 WIP: xbmc: Add lame support
> aaf2d1b40144266446d5764baf65b9ed1a44e7a3 WIP: xbmc: Add alsa support
> 7a4721ab543e705ced87f8e4dbeb38c91af14914 WIP: xbmc: Add VA-API support
> 21c7aa5957c8855a1b0ecbe5f2a8a16b583d4439 WIP: xbmc: Add X.org support
> 283da553c5fe11f64486e825e8d1975403fa633e WIP: xbmc: Allow compilation with
> uClibc
> 19018489f879c289b41de3013ea98724bb0c550c WIP: xbmc: Bump version to
> Gotham_beta3
>
> Regards, Bernd
Thanks a lot for putting this out there. I knew you'd be eager to do
it, I did not expect you'd be *this* eager but I am really pleased to
see this.
Anyway, I will have a close look at your patch and test them out.

As Yann said, the addition of uClibc will not be trivial but hey,
that's no fun if there is no challenge ;).

Looking forward to your following patches.

>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Yann E. MORIN April 1, 2014, 9:30 p.m. UTC | #6
Bernd, All,

On 2014-04-01 21:40 +0200, Bernd Kuhls spake thusly:
> "Yann E. MORIN" <yann.morin.1998@free.fr> wrote in
> news:20140401183534.GB3291@free.fr: 
> 
> > Note also, that many of the XBMC sub-options have dependencies on
> > toolchain features (eg. IPv6, threads, and so on...) which are not
> > currently expressed, being implicit as XBMC depends on (e)glibc, and so
> > those features are guaranteed to be present in this case. But when
> > enabling building with uClibc, those dependencies will have to be added,
> > which is not a trivial change. And your patch is missing all those new
> > required dependencies. Having split-patches will make it easier to check
> > those dependencies.
> 
> Hi,
> 
> ok, you convinced me to split the patch, I already started work ;)
> 
> efc3c8359e6493dbcdf32afd4f9d4075dd4b9f4a WIP: xbmc: needs host-gawk
> bbcfd437efa76bd358a287d0505dc98f2c9987e5 WIP: xbmc: Add option for Goom 
> screensaver
> 3b33e850145ae59e1a51f14933b1d889a7ce8091 WIP: xbmc: Disable broken rsxs 
> screensaver
> ca08b3b00d44a70cd65bedb5737254ff286b1c72 WIP: xbmc: Add lame support
> aaf2d1b40144266446d5764baf65b9ed1a44e7a3 WIP: xbmc: Add alsa support
> 7a4721ab543e705ced87f8e4dbeb38c91af14914 WIP: xbmc: Add VA-API support
> 21c7aa5957c8855a1b0ecbe5f2a8a16b583d4439 WIP: xbmc: Add X.org support
> 283da553c5fe11f64486e825e8d1975403fa633e WIP: xbmc: Allow compilation with 
> uClibc
> 19018489f879c289b41de3013ea98724bb0c550c WIP: xbmc: Bump version to 
> Gotham_beta3

Wonderful! :-)

Just to make sure: the bump to Gotham should be the first change, and
then all other changes are additions to that?

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/package/xbmc/Config.in b/package/xbmc/Config.in
index e078d2f..758ad2d 100644
--- a/package/xbmc/Config.in
+++ b/package/xbmc/Config.in
@@ -1,11 +1,5 @@ 
-comment "xbmc needs an (e)glibc toolchain w/ C++, threads"
-	depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-
-comment "xbmc requires an OpenGL ES and EGL backend"
-	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES
-	depends on BR2_TOOLCHAIN_USES_GLIBC
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_HAS_THREADS
+comment "xbmc requires an OpenGL backend"
+	depends on !BR2_PACKAGE_HAS_OPENGL_EGL || !BR2_PACKAGE_HAS_OPENGL_ES || !BR2_PACKAGE_HAS_OPENGL_GL
 
 menuconfig BR2_PACKAGE_XBMC
 	bool "xbmc"
@@ -23,6 +17,8 @@  menuconfig BR2_PACKAGE_XBMC
 	select BR2_PACKAGE_LIBCDIO
 	select BR2_PACKAGE_LIBCURL
 	select BR2_PACKAGE_LIBFRIBIDI
+	select BR2_PACKAGE_LIBGLEW if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_LIBGLU if BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_LIBGCRYPT
 	select BR2_PACKAGE_LIBID3TAG
 	select BR2_PACKAGE_LIBMAD
@@ -35,6 +31,7 @@  menuconfig BR2_PACKAGE_XBMC
 	select BR2_PACKAGE_LIBUNGIF
 	select BR2_PACKAGE_LIBVORBIS
 	select BR2_PACKAGE_LIBXML2
+	select BR2_PACKAGE_LIBXSLT
 	select BR2_PACKAGE_LZO
 	select BR2_PACKAGE_NCURSES
 	select BR2_PACKAGE_OPENSSL
@@ -50,16 +47,21 @@  menuconfig BR2_PACKAGE_XBMC
 	select BR2_PACKAGE_PYTHON_UNICODEDATA
 	select BR2_PACKAGE_PYTHON_ZLIB
 	select BR2_PACKAGE_READLINE
+	select BR2_PACKAGE_SDL if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_SDL_X11 if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_SDL_IMAGE if BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_SQLITE
 	select BR2_PACKAGE_TAGLIB
 	select BR2_PACKAGE_TIFF
 	select BR2_PACKAGE_TINYXML
+	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_XMU if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_XRANDR if BR2_PACKAGE_XSERVER_XORG_SERVER
+	select BR2_PACKAGE_XLIB_XT if BR2_PACKAGE_XSERVER_XORG_SERVER
 	select BR2_PACKAGE_YAJL
 	select BR2_PACKAGE_ZLIB
-	depends on BR2_TOOLCHAIN_USES_GLIBC
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES
+	depends on (BR2_PACKAGE_HAS_OPENGL_EGL && BR2_PACKAGE_HAS_OPENGL_ES) || BR2_PACKAGE_HAS_OPENGL_GL
 	help
 	  XBMC is an award-winning free and open source (GPL) software
 	  media player and entertainment hub for digital media.
diff --git a/package/xbmc/xbmc.mk b/package/xbmc/xbmc.mk
index 9e346bd..974b4dd 100644
--- a/package/xbmc/xbmc.mk
+++ b/package/xbmc/xbmc.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-XBMC_VERSION = 12.3-Frodo
+XBMC_VERSION = Gotham_beta3
 XBMC_SITE = $(call github,xbmc,xbmc,$(XBMC_VERSION))
 XBMC_LICENSE = GPLv2
 XBMC_LICENSE_FILES = LICENSE.GPL
@@ -12,10 +12,10 @@  XBMC_LICENSE_FILES = LICENSE.GPL
 # called TexturePacker. It is responsible to take all the images used in the
 # GUI and pack them in a blob.
 # http://wiki.xbmc.org/index.php?title=TexturePacker
-XBMC_DEPENDENCIES = host-gperf host-lzo host-sdl_image host-swig
+XBMC_DEPENDENCIES = host-gawk host-gperf host-lzo host-nasm host-sdl_image host-swig
 XBMC_DEPENDENCIES += boost bzip2 expat flac fontconfig freetype jasper jpeg \
-	libass libcdio libcurl libegl libfribidi libgcrypt libgles libmad libmodplug libmpeg2 \
-	libogg libplist libpng libsamplerate libungif libvorbis libxml2 lzo ncurses \
+	libass libcdio libcurl libfribidi libgcrypt libmad libmodplug libmpeg2 \
+	libogg libplist libpng libsamplerate libungif libvorbis libxml2 libxslt lzo ncurses \
 	openssl pcre python readline sqlite taglib tiff tinyxml yajl zlib
 
 XBMC_CONF_ENV = \
@@ -27,11 +27,9 @@  XBMC_CONF_ENV = \
 	TEXTUREPACKER_NATIVE_ROOT="$(HOST_DIR)/usr"
 
 XBMC_CONF_OPT +=  \
-	--disable-alsa \
 	--disable-crystalhd \
 	--disable-debug \
 	--disable-dvdcss \
-	--disable-gl \
 	--disable-hal \
 	--disable-joystick \
 	--disable-mysql \
@@ -39,14 +37,11 @@  XBMC_CONF_OPT +=  \
 	--disable-optical-drive \
 	--disable-projectm \
 	--disable-pulse \
-	--disable-sdl \
 	--disable-ssh \
-	--disable-vaapi \
 	--disable-vdpau \
 	--disable-vtbdecoder \
-	--disable-x11 \
-	--disable-xrandr \
-	--enable-gles \
+	--disable-rsxs \
+	--enable-goom \
 	--enable-optimizations
 
 ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
@@ -60,6 +55,62 @@  ifeq ($(BR2_PACKAGE_DBUS),y)
 XBMC_DEPENDENCIES += dbus
 endif
 
+ifeq ($(BR2_PACKAGE_LIBVA),y)
+XBMC_DEPENDENCIES += libva
+XBMC_CONF_OPT += --enable-vaapi
+else
+XBMC_CONF_OPT += --disable-vaapi
+endif
+
+ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER),y)
+XBMC_DEPENDENCIES += \
+	libglew \
+	libglu \
+	mesa3d \
+	sdl_image \
+	xlib_libX11 \
+	xlib_libXext \
+	xlib_libXmu \
+	xlib_libXrandr \
+	xlib_libXt
+XBMC_CONF_OPT += \
+	--enable-x11 \
+	--enable-xrandr \
+	--enable-gl \
+	--enable-sdl
+else
+XBMC_CONF_OPT += \
+	--disable-x11 \
+	--disable-xrandr \
+	--disable-gl \
+	--disable-sdl
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_OPENGL_EGL),y)
+XBMC_DEPENDENCIES += libegl
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_OPENGL_ES),y)
+XBMC_DEPENDENCIES += libgles
+XBMC_CONF_OPT += --enable-gles
+else
+XBMC_CONF_OPT += --disable-gles
+endif
+
+ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
+XBMC_DEPENDENCIES += alsa-lib
+XBMC_CONF_OPT += --enable-alsa
+else
+XBMC_CONF_OPT += --disable-alsa
+endif
+
+ifeq ($(BR2_PACKAGE_LAME),y)
+XBMC_DEPENDENCIES += lame
+XBMC_CONF_OPT += --enable-libmp3lame
+else
+XBMC_CONF_OPT += --disable-libmp3lame
+endif
+
 ifeq ($(BR2_PACKAGE_XBMC_LIBUSB),y)
 XBMC_DEPENDENCIES += libusb-compat
 XBMC_CONF_OPT += --enable-libusb