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

105 lines
3.5 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
, libX11, xproto, inputproto, libxml2
2013-01-05 22:07:47 +01:00
, libXt, libXmu, libXext, xextproto
, libXinerama, libXrandr, randrproto
, libXtst, libXfixes, fixesproto, systemd
2013-01-05 22:07:47 +01:00
, SDL, SDL_image, SDL_mixer, alsaLib
, mesa, glew, fontconfig, freetype, ftgl
, libjpeg, jasper, libpng, libtiff
, ffmpeg, libmpeg2, libsamplerate, libmad
, libogg, libvorbis, flac, libxslt
, lzo, libcdio, libmodplug, libass, libbluray
, sqlite, mysql, nasm, gnutls, libva
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 ? true
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 {
name = "xbmc-13.0";
2013-01-05 22:07:47 +01:00
src = fetchurl {
url = "https://github.com/xbmc/xbmc/archive/13.0-Gotham.tar.gz";
sha256 = "096hin8qp1864ypyw9xysy13niwf79bgfgivxi7w7mh2dagn0mjx";
2013-01-05 22:07:47 +01:00
};
buildInputs = [
makeWrapper libxml2 gnutls
pkgconfig cmake gnumake yasm pythonFull
2013-12-29 11:15:13 +01:00
boost libmicrohttpd autoreconfHook
gettext pcre yajl fribidi libva
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 libxslt systemd
lzo libcdio libmodplug libass libbluray
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 ":" "${systemd}/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
};
}