Remove XBMC expressions in favor of the Kodi ones

wip/yesman
Edward Tjörnhammar 9 years ago
parent ca149f2be0
commit 1345a65765
  1. 5
      nixos/modules/rename.nix
  2. 2
      nixos/modules/services/x11/desktop-managers/default.nix
  3. 31
      nixos/modules/services/x11/desktop-managers/xbmc.nix
  4. 32
      pkgs/applications/video/xbmc/0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch
  5. 114
      pkgs/applications/video/xbmc/default.nix
  6. 108
      pkgs/applications/video/xbmc/plugins.nix
  7. 53
      pkgs/applications/video/xbmc/wrapper.nix
  8. 39
      pkgs/misc/emulators/retroarch/xbmc-advanced-launchers.nix
  9. 33
      pkgs/top-level/all-packages.nix

@ -107,7 +107,6 @@ in zipModules ([]
++ obsolete [ "services" "sshd" "permitRootLogin" ] [ "services" "openssh" "permitRootLogin" ]
++ obsolete [ "services" "xserver" "startSSHAgent" ] [ "services" "xserver" "startOpenSSHAgent" ]
++ obsolete [ "services" "xserver" "startOpenSSHAgent" ] [ "programs" "ssh" "startAgent" ]
++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "xbmc" ]
# VirtualBox
++ obsolete [ "services" "virtualbox" "enable" ] [ "services" "virtualboxGuest" "enable" ]
@ -136,6 +135,10 @@ in zipModules ([]
++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ]
# XBMC
++ obsolete [ "services" "xserver" "windowManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
++ obsolete [ "services" "xserver" "desktopManager" "xbmc" ] [ "services" "xserver" "desktopManager" "kodi" ]
# Options that are obsolete and have no replacement.
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
++ obsolete' [ "boot" "initrd" "luks" "enable" ]

@ -19,7 +19,7 @@ in
# E.g., if KDE is enabled, it supersedes xterm.
imports = [
./none.nix ./xterm.nix ./xfce.nix ./kde4.nix ./kde5.nix
./e19.nix ./gnome3.nix ./xbmc.nix ./kodi.nix
./e19.nix ./gnome3.nix ./kodi.nix
];
options = {

@ -1,31 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.xserver.desktopManager.xbmc;
in
{
options = {
services.xserver.desktopManager.xbmc = {
enable = mkOption {
default = false;
example = true;
description = "Enable the xbmc multimedia center.";
};
};
};
config = mkIf cfg.enable {
services.xserver.desktopManager.session = [{
name = "xbmc";
start = ''
${pkgs.xbmc}/bin/xbmc --lircdev /var/run/lirc/lircd --standalone &
waitPID=$!
'';
}];
environment.systemPackages = [ pkgs.xbmc ];
};
}

@ -1,32 +0,0 @@
From 9f1e45a10860dd23239de35673643e9e0e4a74f8 Mon Sep 17 00:00:00 2001
From: Lars Op den Kamp <lars@opdenkamp.eu>
Date: Tue, 28 Oct 2014 14:52:16 +0100
Subject: [PATCH 5/8] [CEC] renamed the iDoubleTapTimeoutMs in the new libCEC
for clarity. does not change binary compatibility
---
xbmc/peripherals/devices/PeripheralCecAdapter.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
index 1d068dc..ad123d9 100644
--- a/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
+++ b/xbmc/peripherals/devices/PeripheralCecAdapter.cpp
@@ -1347,8 +1347,13 @@ void CPeripheralCecAdapter::SetConfigurationFromSettings(void)
m_configuration.bPowerOffOnStandby = iStandbyAction == 13011 ? 1 : 0;
m_configuration.bShutdownOnStandby = iStandbyAction == 13005 ? 1 : 0;
+#if defined(CEC_DOUBLE_TAP_TIMEOUT_MS_OLD)
// double tap prevention timeout in ms
- m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms");
+ m_configuration.iDoubleTapTimeout50Ms = GetSettingInt("double_tap_timeout_ms") / 50;
+#else
+ // backwards compatibility. will be removed once the next major release of libCEC is out
+ m_configuration.iDoubleTapTimeoutMs = GetSettingInt("double_tap_timeout_ms");
+#endif
}
void CPeripheralCecAdapter::ReadLogicalAddresses(const CStdString &strString, cec_logical_addresses &addresses)
--
2.1.2

@ -1,114 +0,0 @@
{ stdenv, lib, fetchurl, makeWrapper
, pkgconfig, cmake, gnumake, yasm, pythonFull
, boost, avahi, libdvdcss, lame, autoreconfHook
, gettext, pcre, yajl, fribidi, which
, openssl, gperf, tinyxml2, taglib, libssh, swig, jre
, libX11, xproto, inputproto, libxml2
, libXt, libXmu, libXext, xextproto
, libXinerama, libXrandr, randrproto
, libXtst, libXfixes, fixesproto, systemd
, 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
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
, dbus_libs ? null, dbusSupport ? true
, udev, udevSupport ? true
, libusb ? null, usbSupport ? false
, samba ? null, sambaSupport ? true
, libmicrohttpd
# TODO: would be nice to have nfsSupport (needs libnfs library)
, rtmpdump ? null, rtmpSupport ? true
, libvdpau ? null, vdpauSupport ? true
, pulseaudio ? null, pulseSupport ? true
, libcec ? null, cecSupport ? true
}:
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;
assert cecSupport -> libcec != null;
stdenv.mkDerivation rec {
name = "xbmc-13.2";
src = fetchurl {
url = "https://github.com/xbmc/xbmc/archive/13.2-Gotham.tar.gz";
sha256 = "11g5a3h6kxz1vmnhagfjhg9nqf11wy0wzqqf4h338jh3lgzmvgxc";
};
buildInputs = [
makeWrapper libxml2 gnutls
pkgconfig cmake gnumake yasm pythonFull
boost libmicrohttpd autoreconfHook
gettext pcre yajl fribidi libva
openssl gperf tinyxml2 taglib libssh swig jre
libX11 xproto inputproto which
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
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
++ lib.optional cecSupport libcec
++ lib.optional rtmpSupport rtmpdump;
dontUseCmakeConfigure = true;
patches = [ ./0005-CEC-renamed-the-iDoubleTapTimeoutMs-in-the-new-libCE.patch ];
preConfigure = ''
substituteInPlace xbmc/linux/LinuxTimezone.cpp \
--replace 'usr/share/zoneinfo' 'etc/zoneinfo'
./bootstrap
'';
configureFlags = [
"--enable-external-libraries"
]
++ lib.optional (! sambaSupport) "--disable-samba"
++ lib.optional vdpauSupport "--enable-vdpau"
++ lib.optional pulseSupport "--enable-pulse"
++ lib.optional rtmpSupport "--enable-rtmp";
postInstall = ''
for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \
--prefix PATH ":" "${pythonFull}/bin" \
--prefix PATH ":" "${glxinfo}/bin" \
--prefix PATH ":" "${xdpyinfo}/bin" \
--prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
--prefix LD_LIBRARY_PATH ":" "${systemd}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libmad}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libcec}/lib" \
--prefix LD_LIBRARY_PATH ":" "${rtmpdump}/lib"
done
'';
meta = with stdenv.lib; {
homepage = http://xbmc.org/;
description = "Media center";
license = stdenv.lib.licenses.gpl2;
platforms = platforms.linux;
maintainers = [ maintainers.iElectric maintainers.titanous ];
};
}

@ -1,108 +0,0 @@
{ stdenv, fetchFromGitHub, xbmc }:
let
pluginDir = "/lib/xbmc/plugin";
mkXBMCPlugin = { plugin, namespace, version, src, meta, ... }:
stdenv.lib.makeOverridable stdenv.mkDerivation rec {
inherit src meta;
name = "xbmc-plugin-${plugin}-${version}";
passthru = {
xbmcPlugin = pluginDir;
namespace = namespace;
};
dontStrip = true;
installPhase = ''
d=$out${pluginDir}/${namespace}
mkdir -p $d
sauce="."
[ -d ${namespace} ] && sauce=${namespace}
cp -R $sauce/* $d
'';
};
in
{
advanced-launcher = mkXBMCPlugin rec {
plugin = "advanced-launcher";
namespace = "plugin.program.advanced.launcher";
version = "2.5.7";
src = fetchFromGitHub {
owner = "Angelscry";
repo = namespace;
rev = "f6f7980dc66d041e1635bb012d79aa8b3a8790ba";
sha256 = "0wk41lpd6fw504q5x1h76hc99vw4jg4vq44bh7m21ism85ds0r47";
};
meta = with stdenv.lib; {
homepage = "http://forum.xbmc.org/showthread.php?tid=85724";
description = "A program launcher for XBMC";
longDescription = ''
Advanced Launcher allows you to start any Linux, Windows and
OS X external applications (with command line support or not)
directly from the XBMC GUI. Advanced Launcher also give you
the possibility to edit, download (from Internet resources)
and manage all the meta-data (informations and images) related
to these applications.
'';
platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ];
};
};
genesis = mkXBMCPlugin rec {
plugin = "genesis";
namespace = "plugin.video.genesis";
version = "2.1.3";
src = fetchFromGitHub {
owner = "lambda81";
repo = "lambda-xbmc-addons";
rev = "f8aa34064bf31fffbb3c264af32c66bbdaf0a59e";
sha256 = "0d197fd6n3m9knpg38frnmfhqyabvh00ridpmikyw4vzk3hx11km";
};
meta = with stdenv.lib; {
homepage = "http://forums.tvaddons.ag/forums/148-lambda-s-xbmc-addons";
description = "The origins of streaming";
platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ];
};
};
svtplay = mkXBMCPlugin rec {
plugin = "svtplay";
namespace = "plugin.video.svtplay";
version = "4.0.9";
src = fetchFromGitHub {
owner = "nilzen";
repo = "xbmc-" + plugin;
rev = "29a754e49584d1ca32f0c07b87304669cf266bb0";
sha256 = "0k7mwaknw4h1jlq7ialbzgxxpb11j8bk29dx2gimp40lvnyw4yhz";
};
meta = with stdenv.lib; {
homepage = "http://forum.xbmc.org/showthread.php?tid=67110";
description = "Watch content from SVT Play";
longDescription = ''
With this addon you can stream content from SVT Play
(svtplay.se). The plugin fetches the video URL from the SVT
Play website and feeds it to the XBMC video player. HLS (m3u8)
is the preferred video format by the plugin.
'';
platforms = platforms.all;
maintainers = with maintainers; [ edwtjo ];
};
};
}

@ -1,53 +0,0 @@
{ stdenv, lib, makeWrapper, xbmc, plugins }:
let
p = builtins.parseDrvName xbmc.name;
in
stdenv.mkDerivation {
name = "xbmc-" + p.version;
version = p.version;
buildInputs = [ makeWrapper ];
buildCommand = ''
mkdir -p $out/share/xbmc/addons/packages
${stdenv.lib.concatMapStrings
(plugin: "ln -s ${plugin.out
+ plugin.xbmcPlugin
+ "/" + plugin.namespace
} $out/share/xbmc/addons/.;") plugins}
$(for plugin in ${xbmc}/share/xbmc/addons/*
do
$(ln -s $plugin/ $out/share/xbmc/addons/.)
done)
$(for share in ${xbmc}/share/xbmc/*
do
$(ln -s $share $out/share/xbmc/.)
done)
$(for passthrough in icons xsessions applications
do
ln -s ${xbmc}/share/$passthrough $out/share/
done)
$(for exe in xbmc{,-standalone}
do
makeWrapper ${xbmc}/bin/$exe $out/bin/$exe \
--prefix XBMC_HOME : $out/share/xbmc;
done)
'';
preferLocalBuilds = true;
meta = with xbmc.meta; {
inherit license homepage;
description = description
+ " (with plugins: "
+ lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
+ ")";
};
}

@ -1,39 +0,0 @@
{ stdenv, pkgs, cores }:
assert cores != [];
with pkgs.lib;
let
script = exec: ''
#!${stdenv.shell}
nohup sh -c "sleep 1 && pkill -SIGSTOP xbmc" &
nohup sh -c "${exec} '$@' -f;pkill -SIGCONT xbmc"
'';
scriptSh = exec: pkgs.writeScript ("xbmc-"+exec.name) (script exec.path);
execs = map (core: rec { name = core.core; path = core+"/bin/retroarch-"+name;}) cores;
in
stdenv.mkDerivation rec {
name = "xbmc-retroarch-advanced-launchers-${version}";
version = "0.2";
dontBuild = true;
buildCommand = ''
mkdir -p $out/bin
${stdenv.lib.concatMapStrings (exec: "ln -s ${scriptSh exec} $out/bin/xbmc-${exec.name};") execs}
'';
meta = {
description = "XBMC retroarch advanced launchers";
longDescription = ''
These retroarch launchers are intended to be used with
anglescry advanced launcher for XBMC since device input is
caught by both XBMC and the retroarch process.
'';
license = stdenv.lib.licenses.gpl3;
};
}

@ -10844,7 +10844,7 @@ let
ghostscript = if stdenv.isDarwin then null else ghostscript;
perl = null; # Currently Broken
};
imagemagickBig = imagemagick;
# Impressive, formerly known as "KeyJNote".
@ -12223,16 +12223,6 @@ let
cores = retroArchCores;
};
wrapXBMC = { xbmc }: import ../applications/video/xbmc/wrapper.nix {
inherit stdenv lib makeWrapper xbmc;
plugins = let inherit (lib) optional; in with xbmcPlugins;
([]
++ optional (config.xbmc.enableAdvancedLauncher or false) advanced-launcher
++ optional (config.xbmc.enableGenesis or false) genesis
++ optional (config.xbmc.enableSVTPlay or false) svtplay
);
};
wrapKodi = { kodi }: import ../applications/video/kodi/wrapper.nix {
inherit stdenv lib makeWrapper kodi;
plugins = let inherit (lib) optional; in with kodiPlugins;
@ -12274,37 +12264,24 @@ let
gtk = gtk2;
};
xbmcPlain = callPackage ../applications/video/xbmc {
ffmpeg = ffmpeg_1;
};
xbmcPlugins = recurseIntoAttrs (callPackage ../applications/video/xbmc/plugins.nix {
xbmc = xbmcPlain;
});
xbmc = wrapXBMC {
xbmc = xbmcPlain;
};
kodiPlain = callPackage ../applications/video/kodi { };
xbmcPlain = kodiPlain;
kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {
kodi = kodiPlain;
});
xbmcPlugins = kodiPlugins;
kodi = wrapKodi {
kodi = kodiPlain;
};
xbmc-retroarch-advanced-launchers =
callPackage ../misc/emulators/retroarch/xbmc-advanced-launchers.nix {
cores = retroArchCores;
};
xbmc = kodi;
kodi-retroarch-advanced-launchers =
callPackage ../misc/emulators/retroarch/kodi-advanced-launchers.nix {
cores = retroArchCores;
};
xbmc-retroarch-advanced-launchers = kodi-retroarch-advanced-launchers;
xca = callPackage ../applications/misc/xca { };

Loading…
Cancel
Save