initial vdr plugin xineliboutput-2.1.0

Needed to patch package xineLib to fix usage of XINE_PLUGIN_PATH .
This commit is contained in:
Christian Kögler 2019-06-14 10:04:27 +02:00
parent 7815c86c10
commit 8eafd21f9e
4 changed files with 89 additions and 6 deletions

View File

@ -1,7 +1,8 @@
{ stdenv, fetchurl, fetchgit, vdr, ffmpeg_2, alsaLib, fetchFromGitHub
, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg, ncurses }:
let
, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg, ncurses
, callPackage
}: let
mkPlugin = name: stdenv.mkDerivation {
name = "vdr-${vdr.version}-${name}";
inherit (vdr) src;
@ -11,6 +12,8 @@ let
};
in {
xineliboutput = callPackage ./xineliboutput {};
skincurses = (mkPlugin "skincurses").overrideAttrs(oldAttr: {
buildInputs = oldAttr.buildInputs ++ [ ncurses ];
});

View File

@ -1,5 +1,12 @@
{ symlinkJoin, lib, makeWrapper, vdr, plugins ? [] }:
symlinkJoin {
{ symlinkJoin, lib, makeWrapper, vdr
, plugins ? []
}: let
makeXinePluginPath = l: lib.concatStringsSep ":" (map (p: "${p}/lib/xine/plugins") l);
requiredXinePlugins = lib.flatten (map (p: p.passthru.requiredXinePlugins or []) plugins);
in symlinkJoin {
name = "vdr-with-plugins-${(builtins.parseDrvName vdr.name).version}";
@ -8,7 +15,9 @@ symlinkJoin {
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/vdr --add-flags "-L $out/lib/vdr --localedir=$out/share/locale"
wrapProgram $out/bin/vdr \
--add-flags "-L $out/lib/vdr --localedir=$out/share/locale" \
--prefix XINE_PLUGIN_PATH ":" ${makeXinePluginPath requiredXinePlugins}
'';
meta = with vdr.meta; {

View File

@ -0,0 +1,63 @@
{ stdenv, fetchurl, lib, vdr
, libav, libcap, libvdpau
, xineLib, libjpeg, libextractor, mesa_noglu, libGLU
, libX11, libXext, libXrender, libXrandr
, makeWrapper
}: let
name = "vdr-xineliboutput-2.1.0";
makeXinePluginPath = l: lib.concatStringsSep ":" (map (p: "${p}/lib/xine/plugins") l);
self = stdenv.mkDerivation {
inherit name;
src = fetchurl {
name = "src.tgz";
url = "https://sourceforge.net/projects/xineliboutput/files/xineliboutput/${name}/${name}.tgz/download";
sha256 = "6af99450ad0792bd646c6f4058f6e49541aab8ba3a10e131f82752f4d5ed19de";
};
configurePhase = ''
./configure
sed -i config.mak \
-e 's,XINEPLUGINDIR=/[^/]*/[^/]*/[^/]*/,XINEPLUGINDIR=/,'
'';
makeFlags = [ "DESTDIR=$(out)" ];
postFixup = ''
for f in $out/bin/*; do
wrapProgram $f \
--prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xineLib ]}"
done
'';
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
libav
libcap
libextractor
libjpeg
libGLU
libvdpau
libXext
libXrandr
libXrender
libX11
mesa_noglu
vdr
xineLib
];
passthru.requiredXinePlugins = [ xineLib self ];
meta = with lib;{
homepage = https://sourceforge.net/projects/xineliboutput/;
description = "xine-lib based software output device for VDR.";
maintainers = [ maintainers.ck3d ];
license = licenses.gpl2;
platforms = [ "i686-linux" "x86_64-linux" ];
};
};
in self

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, xorg, alsaLib, libGLU_combined, aalib
{ stdenv, fetchurl, fetchpatch, pkgconfig, xorg, alsaLib, libGLU_combined, aalib
, libvorbis, libtheora, speex, zlib, perl, ffmpeg
, flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager
, libmpcdec
@ -20,6 +20,14 @@ stdenv.mkDerivation rec {
libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec
];
patches = [
(fetchpatch {
name = "0001-fix-XINE_PLUGIN_PATH-splitting.patch";
url = "https://sourceforge.net/p/xine/mailman/attachment/32394053-5e27-6558-f0c9-49e0da0bc3cc%40gmx.de/1/";
sha256 = "0nrsdn7myvjs8fl9rj6k4g1bnv0a84prsscg1q9n49gwn339v5rc";
})
];
NIX_LDFLAGS = "-lxcb-shm";
propagatedBuildInputs = [zlib];