Merge pull request #63113 from ck3d/vdr-xineliboutput

initial vdr plugin xineliboutput-2.1.0
This commit is contained in:
markuskowa 2019-06-20 13:37:36 +02:00 committed by GitHub
commit 02128a8bb5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 90 additions and 6 deletions

View File

@ -1,7 +1,8 @@
{ stdenv, fetchurl, fetchgit, vdr, 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,64 @@
{ 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 {
url = "mirror://sourceforge/project/xineliboutput/xineliboutput/${name}/${name}.tgz";
sha256 = "1phrxpaz8li7z0qy241spawalhcmwkv5hh3gdijbv4h7mm899yba";
};
# configure don't accept argument --prefix
dontAddPrefix = true;
postConfigure = ''
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;
inherit (vdr.meta) platforms;
};
};
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];