Bug#469397: quick XBMC review

Andres Mejia mcitadel at gmail.com
Fri Nov 27 03:35:06 UTC 2009


Please CC the bug too.

On Wednesday 25 November 2009 16:35:59 Bruno Kleinert wrote:
> Hi there,
> 
> I had a quick look at XBMC's source tree and wrote some kind of
> "protocol" about everything that didn't look that good to me. Here we
> go...
> 
> ---[ snip ]---
> Copies of external packages' source code
> ========================================
> tinyXML version unknown
> lib/fontconfig_win32 version 2.7.3
> lib/freetype version 2.3.9
> lib/libSDL-WIN32 unknown version, patched with
> lib/libSDL-WIN32/SDL_SetWidthHeight.diff
> system/python/spyce
> cdrip/oggvorbis/*
> cores/dvdplayer/Codecs/ffmpeg
> cores/dvdplayer/Codecs/liba52
> cores/dvdplayer/Codecs/libdts
> cores/dvdplayer/Codecs/libdvd
> cores/dvdplayer/Codecs/libfaad2
> cores/dvdplayer/Codecs/libmad
> cores/dvdplayer/Codecs/libmpeg2
> cores/dvdplayer/DVDCodecs/Audio/liba52
> cores/dvdplayer/DVDCodecs/Audio/libdts
> cores/dvdplayer/DVDCodecs/Audio/libfaad
> cores/dvdplayer/DVDCodecs/Audio/libmad
> cores/dvdplayer/DVDInputStreams/dvdnav
> cores/dvdplayer/DVDInputStreams/mms
> cores/ffmpeg
> cores/paplayer/AC3Codec
> cores/paplayer/FLACCodec/flac-1.2.1
> cores/paplayer/ModuleCodec/dumb also it's non-DFSG free
> cores/paplayer/ogg
> cores/paplayer/SIDCodec/libsidplay
> cores/paplayer/SIDCodec/builders/hardsid-build
> cores/paplayer/SIDCodec/builders/resid-builder
> cores/paplayer/SPCCodec
> xbmc/cores/paplayer/timidity
> cores/paplayer/vgmstream
> cores/paplayer/vorbisfile
> cores/paplayer/WavPackCodec
> cores/paplayer/YMCodec
> FileSystem/curl
> lib/"mostly"* - WTF?! What an unbelievable mess! Even source copies
> contain other source copies?!?
> xbmc/screensavers/rsxs-0.9
> xbmc/visualizations/Goom/goom2k4-0 - Copied & patched
> xbmc/visualizations/Milkdrop/vis_milkdrop
> xbmc/visualizations/OpenGLSpectrum

Yes, xbmc does use third party code, which include libraries. It is possible 
to use system libraries rather than internal libraries for most of the 
libraries xbmc ships. I would like to see xbmc use nothing but system 
libraries where available, but this of course is going to require a lot of 
work.

> Illegal sources
> ===============
> media/Fonts/arial.ttf

I suppose these can be replaced with the Liberation fonts.

> All precompiled binaries (Some with not so obvious suffixes)

I don't see how these are illegal, unless you mean they don't have the 
corresponding source used to compile them, with license. In any case, could 
you clarify what you meant by this.

> skin/PM3.HD/HomeSystemIcon Licence.txt is non-DFSG free

The only file this affects is "skin/PM3.HD/media/homeinfo-system.png". The 
author agreed to allow for that file to be replaced with something suitable.

> skin/Project Mayhem III/fonts/FrancophilSans_readme.txt is non-DFSG free

The Project Mayhem III skin has been removed in the latest upstream source, so 
this doesn't matter anymore.

> found in tools/Linux/debian/copyright - DUMB license is non-DFSG;
> requires the licensee to feed their dogs at full moon. Haha, that is so
> funny...

For the issue with the DUMB license, I would be satisfied with either the DUMB 
devs (no pun intended) change their license to just simply the BSD (at least I 
think that's what their intention was before the extra clauses were thrown 
in), or xbmc uses libmikmod instead. I have a preference with switching to 
libmikmod, since I think that will be easier than trying to convince the DUMB 
devs to change their license.

> Questionable/Useless
> ====================
> media/weather.rar
> credits/credits.mod
> find -iname "*.bat"

These are used, though of course the .bat files are not used in linux.

> keymapping-schematic.pdf (Xbox, Microsoft logos, origin/author?)

This has been removed already.

> project/*

These are used for Windows at least.

> xbmc-xrandr.c - WTF?!

What exactly is the problem with xbmc-xrandr.c?

> scripts/*.zip

XBMC can open scripts that are inside a zip file.

> skin/PM3.HD/backgrounds/*.jpg (copyrights/authors questionable)

The PM3.HD skin is distributed under the same terms as xbmc. Same with the 
Confluence skin which will be in the next release of xbmc.

> skin/PM3.HD/media/flagging/audio/{dolbydigital.png,dts.png,mp3.png,wmapro.p
> ng} trademark logos and license/redistribution?
>  skin/PM3.HD/media/flagging/video/{divx.png,h264.png} trademark logos and
>  license/redistribution?

Not sure about the issue with the trademark logos. I've spoken with the author 
of the skin, and he's doesn't like idea of removing the logos, or replacing 
them with some other non-trademarked logo or something similar.

I'm going to need more time to resolve this. I think those logos only impose 
usage restrictions such as what size they can be, what color they have to be, 
and so forth. Overall, I think these are redistributable. In any case, xbmc 
would be placed in non-free anyway, although that was for other issues which 
I'll point out later.

> system/asound.conf - WTF?!

Don't know why that file is there.

> system/python/DLLs 'file' says precompiled PE32 binaries for .pyd files

These are used in windows.

> system/scrapers/video some files are company/trademark logos. author?
> copyright? redistribution?

Yes, this is the same as with the trademark issue above.

> tools/MingwBuildEnvironment/msys.7z
> tools/PackageMaker
> tools/TexturePacker
> tools/XBMCLive
> tools/XBMCTex
> tools/XprPack

The stuff in tools is basically utilities used by xbmc devs for various 
purposes. Some of it is sources for precompiled binaries in other parts of the 
source tree. XBMCLive is where the package xbmc-live comes from.

> visualisations - 'file' says there are lots of PE32 binaries with
> suffix .vis

These are precompiled binaries for windows.

> visualisations/Milkdrop/*.zip - ?!?
> visualisations/projectM - Authors? Copyright? Redistribution? Looks
> stolen to me

libprojectm is already in the Debian archive. Also, milkdrop is going to be a 
part of projectm soon.

> cores/paplayer/ADPCMCodec

Comes from adplug which is in the archive.

> cores/paplayer/GYMCodec

Code comes from gens/gs which is gpl. See http://info.sonicretro.org/Gens/GS.

> cores/paplayer/MACDll MAC code? License is non-DFSG free

I did bring this up before, where I had said xbmc should use libdemac or ffmpeg 
for monkey audio support. I would rather see xbmc go with ffmpeg, seeing that 
the author for the ffmpeg implementation is also the author for libdemac.

> cores/paplayer/shn - non-DFSG free

Yes, there is that nagging "non-commercial" clause. xbmc should probably take 
advantage of the ffmpeg implementation for shorten instead.

> xbmxc/osx - Whatever its licenses are, do we care about such sources?

Yes, it's used by osx.

> 
> 
> General
> =======
> Most GPL source code comment headers have an outdated FSF address
> Stuff (source or binary doesn't matter) from commercial platforms like
> Mac OS X and Windows is not our business. Whatever its licences say, it
> should not be part of an .orig.tar.*
> ---[ snap ]---

Will get to fixing the address from the GPL headers at some point.

About stuff that doesn't seem necessary or useful for Linux (or Debian), there 
has to be some legitimate reason for removing them from the orig tarball. 
Also, it has to be some reason other than "it's not useful for Linux/Debian".

The reason for this is simply because, speaking as upstream, we want to 
_avoid_ having our source tree munged as much as possible.

I personally do not want xbmc to be in a situation similar to how ffmpeg was in 
Debian.

> I don't plan to dig into XBMC myself because I don't use it nor do I
> plan to use it. It simply got my attraction because a friend uses it and
> some things looked like a very messy hack to me ;)
> 
> Maybe some of the above things are already fixed, I reviewed XBMC some
> weeks ago, so my protocol is probably a bit outdated.
> 
> Cheers - Fuddl
> 

As a final note, I would like to point out that there are issues with xbmc 
using third party code that is not GPL compatible (and essentially non-dfsg). 
The use of libgoahead is a major one, but there is more. You can find issues 
I've addressed from an older revision of the debian/copyright file. It can be 
found at [1].

This code is part of the reason why xbmc from not going into main. Of course 
resolving this issue is going to take a lot of effort. For now, xbmc will be 
placed in non-free.

As always, any help with resolving these issues are welcome.

1. 
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/xbmc;a=blob;f=tools/Linux/debian/copyright;hb=5f2e2ed337f701a739a018084a86b556c648d24f

-- 
Regards,
Andres





More information about the pkg-multimedia-maintainers mailing list