nixpkgs/pkgs/applications/video/xbmc/default.nix

104 lines
3.4 KiB
Nix
Raw Normal View History

2013-01-05 22:07:47 +01:00
{ stdenv, lib, fetchurl, makeWrapper
, pkgconfig, cmake, gnumake, yasm, pythonFull
2013-12-29 11:15:13 +01:00
, boost, avahi, libdvdcss, lame, autoreconfHook
, gettext, pcre, yajl, fribidi, which
2013-03-12 01:35:16 +01:00
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre
2013-01-05 22:07:47 +01:00
, libX11, xproto, inputproto
, libXt, libXmu, libXext, xextproto
, libXinerama, libXrandr, randrproto
, libXtst, libXfixes, fixesproto
, SDL, SDL_image, SDL_mixer, alsaLib
, mesa, glew, fontconfig, freetype, ftgl
, libjpeg, jasper, libpng, libtiff
, ffmpeg, libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac
, lzo, libcdio, libmodplug, libass
2013-02-16 23:23:15 +01:00
, sqlite, mysql, nasm
2013-01-05 22:07:47 +01:00
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
, dbus_libs ? null, dbusSupport ? true
, udev, udevSupport ? true
, libusb ? null, usbSupport ? false
, samba ? null, sambaSupport ? true
2013-09-29 21:17:26 +02:00
, libmicrohttpd
2013-01-05 22:07:47 +01:00
# TODO: would be nice to have nfsSupport (needs libnfs library)
# TODO: librtmp
2013-01-05 22:07:47 +01:00
, libvdpau ? null, vdpauSupport ? true
, pulseaudio ? null, pulseSupport ? false
2013-01-05 22:07:47 +01:00
}:
assert dbusSupport -> dbus_libs != null;
assert udevSupport -> udev != null;
assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable
assert sambaSupport -> samba != null;
assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
assert pulseSupport -> pulseaudio != null;
2013-01-05 22:07:47 +01:00
stdenv.mkDerivation rec {
2013-12-29 11:15:13 +01:00
name = "xbmc-12.3";
2013-01-05 22:07:47 +01:00
src = fetchurl {
url = "http://mirrors.xbmc.org/releases/source/${name}.tar.gz";
2013-12-29 11:15:13 +01:00
sha256 = "0wyy9rsl11px4mh0fyq75n29905ldiqp8yraz6jxxvrls1hcj59y";
2013-01-05 22:07:47 +01:00
};
buildInputs = [
makeWrapper
pkgconfig cmake gnumake yasm pythonFull
2013-12-29 11:15:13 +01:00
boost libmicrohttpd autoreconfHook
2013-01-05 22:07:47 +01:00
gettext pcre yajl fribidi
2013-03-12 01:35:16 +01:00
openssl gperf tinyxml2 taglib libssh swig jre
2013-12-29 11:15:13 +01:00
libX11 xproto inputproto which
2013-01-05 22:07:47 +01:00
libXt libXmu libXext xextproto
libXinerama libXrandr randrproto
libXtst libXfixes fixesproto
SDL SDL_image SDL_mixer alsaLib
mesa glew fontconfig freetype ftgl
libjpeg jasper libpng libtiff
ffmpeg libmpeg2 libsamplerate libmad
libogg libvorbis flac
lzo libcdio libmodplug libass
sqlite mysql nasm avahi libdvdcss lame
2013-01-05 22:07:47 +01:00
curl bzip2 zip unzip glxinfo xdpyinfo
]
++ lib.optional dbusSupport dbus_libs
++ lib.optional udevSupport udev
++ lib.optional usbSupport libusb
++ lib.optional sambaSupport samba
++ lib.optional vdpauSupport libvdpau
++ lib.optional pulseSupport pulseaudio;
2013-01-05 22:07:47 +01:00
dontUseCmakeConfigure = true;
2013-06-21 09:13:38 +02:00
preConfigure = ''
substituteInPlace xbmc/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
2013-12-29 11:15:13 +01:00
./bootstrap
2013-06-21 09:13:38 +02:00
'';
2013-01-05 22:07:47 +01:00
configureFlags = [
"--enable-external-libraries"
]
++ lib.optional (! sambaSupport) "--disable-samba"
++ lib.optional vdpauSupport "--enable-vdpau"
++ lib.optional pulseSupport "--enable-pulse";
2013-01-05 22:07:47 +01:00
postInstall = ''
for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \
--prefix PATH ":" "${pythonFull}/bin" \
2013-01-05 22:07:47 +01:00
--prefix PATH ":" "${glxinfo}/bin" \
--prefix PATH ":" "${xdpyinfo}/bin" \
--prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib"
2013-01-05 22:07:47 +01:00
done
'';
meta = {
homepage = http://xbmc.org/;
description = "XBMC Media Center";
license = "GPLv2";
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.iElectric ];
2013-01-05 22:07:47 +01:00
};
}