diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/video/vdr')
-rw-r--r-- | nixpkgs/pkgs/applications/video/vdr/default.nix | 55 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/video/vdr/plugins.nix | 338 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/video/vdr/wrapper.nix | 30 | ||||
-rw-r--r-- | nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix | 64 |
4 files changed, 487 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/video/vdr/default.nix b/nixpkgs/pkgs/applications/video/vdr/default.nix new file mode 100644 index 000000000000..bcffb8585b31 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/vdr/default.nix @@ -0,0 +1,55 @@ +{ stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig +, gettext, systemd, perl, lib +, enableSystemd ? true +, enableBidi ? true +}: stdenv.mkDerivation rec { + + pname = "vdr"; + version = "2.4.1"; + + src = fetchurl { + url = "ftp://ftp.tvdr.de/vdr/${pname}-${version}.tar.bz2"; + sha256 = "1p51b14aqzncx3xpfg0rjplc48pg7520035i5p6r5zzkqhszihr5"; + }; + + enableParallelBuilding = true; + + postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd"; + + buildInputs = [ fontconfig libjpeg libcap freetype perl ] + ++ lib.optional enableSystemd systemd + ++ lib.optional enableBidi fribidi; + + buildFlags = [ "vdr" "i18n" ] + ++ lib.optional enableSystemd "SDNOTIFY=1" + ++ lib.optional enableBidi "BIDI=1"; + + nativeBuildInputs = [ perl ]; + + # plugins uses the same build environment as vdr + propagatedNativeBuildInputs = [ pkgconfig gettext ]; + + installFlags = [ + "DESTDIR=$(out)" + "PREFIX=" # needs to be empty, otherwise plugins try to install at same prefix + ]; + + installTargets = [ "install-pc" "install-bin" "install-doc" "install-i18n" + "install-includes" ]; + + postInstall = '' + mkdir -p $out/lib/vdr # only needed if vdr is started without any plugin + mkdir -p $out/share/vdr/conf + cp *.conf $out/share/vdr/conf + ''; + + outputs = [ "out" "dev" "man" ]; + + meta = with lib; { + homepage = http://www.tvdr.de/; + description = "Video Disc Recorder"; + maintainers = [ maintainers.ck3d ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/nixpkgs/pkgs/applications/video/vdr/plugins.nix new file mode 100644 index 000000000000..2ee196baccc7 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/vdr/plugins.nix @@ -0,0 +1,338 @@ +{ stdenv, fetchurl, fetchgit, vdr, alsaLib, fetchFromGitHub +, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg +, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg, ncurses +, callPackage +}: let + mkPlugin = name: stdenv.mkDerivation { + name = "vdr-${vdr.version}-${name}"; + inherit (vdr) src; + buildInputs = [ vdr ]; + preConfigure = "cd PLUGINS/src/${name}"; + installFlags = [ "DESTDIR=$(out)" ]; + }; +in { + + xineliboutput = callPackage ./xineliboutput {}; + + skincurses = (mkPlugin "skincurses").overrideAttrs(oldAttr: { + buildInputs = oldAttr.buildInputs ++ [ ncurses ]; + }); + + inherit (stdenv.lib.genAttrs [ + "epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo" + ] mkPlugin); + + femon = stdenv.mkDerivation rec { + + name = "vdr-femon-2.4.0"; + + buildInputs = [ vdr ]; + + src = fetchurl { + url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${name}.tgz"; + sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp"; + }; + + postPatch = "substituteInPlace Makefile --replace /bin/true true"; + + makeFlags = [ "DESTDIR=$(out)" ]; + + meta = with stdenv.lib; { + homepage = http://www.saunalahti.fi/~rahrenbe/vdr/femon/; + description = "DVB Frontend Status Monitor plugin for VDR"; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + + }; + + vaapidevice = stdenv.mkDerivation { + + name = "vdr-vaapidevice-0.7.0"; + + buildInputs = [ + vdr libxcb xcbutilwm ffmpeg + alsaLib + libvdpau # vdpau + libva # va-api + ] ++ (with xorg; [ libxcb libX11 ]); + + makeFlags = [ "DESTDIR=$(out)" ]; + + postPatch = '' + substituteInPlace softhddev.c --replace /usr/bin/X ${xorgserver}/bin/X + ''; + + src = fetchFromGitHub { + owner = "pesintta"; + repo = "vdr-plugin-vaapidevice"; + sha256 = "072y61fpkh3i2dragg0nsd4g3malgwxkwpdrb1ykdljyzf52s5hs"; + rev = "c99afc23a53e6d91f9afaa99af59b30e68e626a8"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/pesintta/vdr-plugin-vaapidevice; + description = "VDR SoftHDDevice Plug-in (with VA-API VPP additions)"; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + + }; + + + markad = stdenv.mkDerivation rec { + name = "vdr-markad-2017-03-13"; + + src = fetchgit { + url = "git://projects.vdr-developer.org/vdr-plugin-markad.git"; + sha256 = "0jvy70r8bcmbs7zdqilfz019z5xkz5c6rs57h1dsgv8v6x86c2i4"; + rev = "ea2e182ec798375f3830f8b794e7408576f139ad"; + }; + + buildInputs = [ vdr libav ]; + + postPatch = '' + substituteInPlace command/Makefile --replace '$(DESTDIR)/usr' '$(DESTDIR)' + + substituteInPlace plugin/markad.cpp \ + --replace "/usr/bin" "$out/bin" \ + --replace "/var/lib/markad" "$out/var/lib/markad" + + substituteInPlace command/markad-standalone.cpp \ + --replace "/var/lib/markad" "$out/var/lib/markad" + ''; + + preBuild = '' + mkdir -p $out/lib/vdr + ''; + + buildFlags = [ + "DESTDIR=$(out)" + "LIBDIR=$(out)/lib/vdr" + "VDRDIR=${vdr.dev}/include/vdr" + "LOCALEDIR=$(DESTDIR)/share/locale" + ]; + + installFlags = buildFlags; + + meta = with stdenv.lib; { + homepage = https://projects.vdr-developer.org/projects/plg-markad; + description = "Ein Programm zum automatischen Setzen von Schnittmarken bei Werbeeinblendungen während einer Sendung."; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + + }; + + epgsearch = stdenv.mkDerivation rec { + pname = "vdr-epgsearch"; + version = "2.4.0"; + + src = fetchurl { + url = "https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/vdr-plugin-epgsearch-${version}.tar.bz2"; + sha256 = "0xfgn17vicyjwdf0rbkrik4q16mnfi305d4wmi8f0qk825pa0z3y"; + }; + + postPatch = '' + for f in *.sh; do + patchShebangs "$f" + done + ''; + + nativeBuildInputs = [ + perl # for pod2man and pos2html + utillinux + groff + ]; + + buildInputs = [ + vdr + pcre + ]; + + buildFlags = [ + "SENDMAIL=" + "REGEXLIB=pcre" + ]; + + installFlags = [ + "DESTDIR=$(out)" + ]; + + outputs = [ "out" "man" ]; + + meta = with stdenv.lib; { + homepage = http://winni.vdr-developer.org/epgsearch; + description = "Searchtimer and replacement of the VDR program menu"; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + + }; + + vnsiserver = let + name = "vnsiserver"; + version = "1.8.0"; + in stdenv.mkDerivation { + name = "vdr-${name}-${version}"; + + buildInputs = [ vdr ]; + + installFlags = [ "DESTDIR=$(out)" ]; + + src = fetchFromGitHub { + repo = "vdr-plugin-${name}"; + owner = "FernetMenta"; + rev = "v${version}"; + sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw"; + }; + + meta = with stdenv.lib; { + homepage = https://github.com/FernetMenta/vdr-plugin-vnsiserver; + description = "VDR plugin to handle KODI clients."; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + + }; + + text2skin = stdenv.mkDerivation { + name = "vdr-text2skin-1.3.4-20170702"; + + src = fetchgit { + url = "git://projects.vdr-developer.org/vdr-plugin-text2skin.git"; + sha256 = "19hkwmaw6nwak38bv6cm2vcjjkf4w5yjyxb98qq6zfjjh5wq54aa"; + rev = "8f7954da2488ced734c30e7c2704b92a44e6e1ad"; + }; + + buildInputs = [ vdr graphicsmagick ]; + + buildFlags = [ + "DESTDIR=$(out)" + "IMAGELIB=graphicsmagic" + "VDRDIR=${vdr.dev}/include/vdr" + "LOCALEDIR=$(DESTDIR)/share/locale" + "LIBDIR=$(DESTDIR)/lib/vdr" + ]; + + preBuild = '' + mkdir -p $out/lib/vdr + ''; + + installPhase = ":"; + + meta = with stdenv.lib; { + homepage = https://projects.vdr-developer.org/projects/plg-text2skin; + description = "VDR Text2Skin Plugin"; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + }; + + fritzbox = let + libconvpp = stdenv.mkDerivation { + name = "jowi24-libconv++-20130216"; + propagatedBuildInputs = [ libiconv ]; + CXXFLAGS = "-std=gnu++11 -Os"; + src = fetchFromGitHub { + owner = "jowi24"; + repo = "libconvpp"; + rev = "90769b2216bc66c5ea5e41a929236c20d367c63b"; + sha256 = "0bf0dwxrzd42l84p8nxcsjdk1gvzlhad93nsbn97z6kr61n4cr33"; + }; + installPhase = '' + mkdir -p $out/lib $out/include/libconv++ + cp source.a $out/lib/libconv++.a + cp *.h $out/include/libconv++ + ''; + }; + + liblogpp = stdenv.mkDerivation { + name = "jowi24-liblogpp-20130216"; + CXXFLAGS = "-std=gnu++11 -Os"; + src = fetchFromGitHub { + owner = "jowi24"; + repo = "liblogpp"; + rev = "eee4046d2ae440974bcc8ceec00b069f0a2c62b9"; + sha256 = "01aqvwmwh5kk3mncqpim8llwha9gj5qq0c4cvqfn4h8wqi3d9l3p"; + }; + installPhase = '' + mkdir -p $out/lib $out/include/liblog++ + cp source.a $out/lib/liblog++.a + cp *.h $out/include/liblog++ + ''; + }; + + libnetpp = stdenv.mkDerivation { + name = "jowi24-libnet++-20180628"; + CXXFLAGS = "-std=gnu++11 -Os"; + src = fetchFromGitHub { + owner = "jowi24"; + repo = "libnetpp"; + rev = "212847f0efaeffee8422059b8e202d844174aaf3"; + sha256 = "0vjl6ld6aj25rzxm26yjv3h2gy7gp7qnbinpw6sf1shg2xim9x0b"; + }; + installPhase = '' + mkdir -p $out/lib $out/include/libnet++ + cp source.a $out/lib/libnet++.a + cp *.h $out/include/libnet++ + ''; + buildInputs = [ boost liblogpp libconvpp ]; + }; + + libfritzpp = stdenv.mkDerivation { + name = "jowi24-libfritzpp-20131201"; + CXXFLAGS = "-std=gnu++11 -Os"; + src = fetchFromGitHub { + owner = "jowi24"; + repo = "libfritzpp"; + rev = "ca19013c9451cbac7a90155b486ea9959ced0f67"; + sha256 = "0jk93zm3qzl9z96gfs6xl1c8ip8lckgbzibf7jay7dbgkg9kyjfg"; + }; + installPhase = '' + mkdir -p $out/lib $out/include/libfritz++ + cp source.a $out/lib/libfritz++.a + cp *.h $out/include/libfritz++ + ''; + propagatedBuildInputs = [ libgcrypt ]; + buildInputs = [ boost liblogpp libconvpp libnetpp ]; + }; + + in stdenv.mkDerivation rec { + pname = "vdr-fritzbox"; + + version = "1.5.3"; + + src = fetchFromGitHub { + owner = "jowi24"; + repo = "vdr-fritz"; + rev = version; + sha256 = "0wab1kyma9jzhm6j33cv9hd2a5d1334ghgdi2051nmr1bdcfcsw8"; + }; + + postUnpack = '' + cp ${libfritzpp}/lib/* $sourceRoot/libfritz++ + cp ${liblogpp}/lib/* $sourceRoot/liblog++ + cp ${libnetpp}/lib/* $sourceRoot/libnet++ + cp ${libconvpp}/lib/* $sourceRoot/libconv++ + ''; + + buildInputs = [ vdr boost libconvpp libfritzpp libnetpp liblogpp ]; + + installFlags = [ "DESTDIR=$(out)" ]; + + meta = with stdenv.lib; { + homepage = https://github.com/jowi24/vdr-fritz; + description = "A plugin for VDR to access AVMs Fritz Box routers"; + maintainers = [ maintainers.ck3d ]; + license = licenses.gpl2; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; + }; +} diff --git a/nixpkgs/pkgs/applications/video/vdr/wrapper.nix b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix new file mode 100644 index 000000000000..497ad7c77a08 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/vdr/wrapper.nix @@ -0,0 +1,30 @@ +{ 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}"; + + paths = [ vdr ] ++ plugins; + + nativeBuildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/vdr \ + --add-flags "-L $out/lib/vdr --localedir=$out/share/locale" \ + --prefix XINE_PLUGIN_PATH ":" ${makeXinePluginPath requiredXinePlugins} + ''; + + meta = with vdr.meta; { + inherit license homepage; + description = description + + " (with plugins: " + + lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins)) + + ")"; + }; +} diff --git a/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix b/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix new file mode 100644 index 000000000000..98fcd2b5d408 --- /dev/null +++ b/nixpkgs/pkgs/applications/video/vdr/xineliboutput/default.nix @@ -0,0 +1,64 @@ +{ stdenv, fetchurl, lib, vdr +, libav, libcap, libvdpau +, xineLib, libjpeg, libextractor, mesa, 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 + 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 |