nixpkgs/pkgs/applications/video/dvd-slideshow/default.nix
2015-06-10 19:02:09 +08:00

70 lines
2.3 KiB
Nix

{ stdenv, fetchurl, writeScript, cdrtools, dvdauthor, ffmpeg, imagemagick, lame, mjpegtools, sox, transcode, vorbisTools }:
let
wrapper = writeScript "dvd-slideshow.sh" ''
#!/bin/bash
# wrapper script for dvd-slideshow programs
export PATH=${cdrtools}/bin:${dvdauthor}/bin:${ffmpeg}/bin:${imagemagick}/bin:${lame}/bin:${mjpegtools}/bin:${sox}/bin:${transcode}/bin:${vorbisTools}/bin:$PATH
dir=`dirname "$0"`
exe=`basename "$0"`
case "$exe" in
dvd-slideshow)
# use mpeg2enc by default as ffmpeg is known to crash.
# run dvd-slideshow.ffmpeg to force ffmpeg.
"$dir/dvd-slideshow.real" -mpeg2enc $@
;;
dvd-slideshow.ffmpeg)
"$dir/dvd-slideshow.real" $@
;;
*)
"$dir/$exe.real" $@
;;
esac
'';
in stdenv.mkDerivation rec {
name = "dvd-slideshow";
version = "0.8.4-2";
src = fetchurl {
url = "mirror://sourceforge/dvd-slideshow/files/${name}-${version}.tar.gz";
sha256 = "17c09aqvippiji2sd0pcxjg3nb1mnh9k5nia4gn5lhcvngjcp1q5";
};
patchPhase = ''
# fix upstream typos
substituteInPlace dvd-slideshow \
--replace "version='0.8.4-1'" "version='0.8.4-2'" \
--replace "mymyecho" "myecho"
'';
installPhase = ''
mkdir -p "$out/bin"
cp dvd-slideshow "$out/bin/dvd-slideshow.real"
cp dvd-menu "$out/bin/dvd-menu.real"
cp dir2slideshow "$out/bin/dir2slideshow.real"
cp gallery1-to-slideshow "$out/bin/gallery1-to-slideshow.real"
cp jigl2slideshow "$out/bin/jigl2slideshow.real"
cp ${wrapper} "$out/bin/dvd-slideshow.sh"
ln -s dvd-slideshow.sh "$out/bin/dvd-slideshow"
ln -s dvd-slideshow.sh "$out/bin/dvd-slideshow.ffmpeg"
ln -s dvd-slideshow.sh "$out/bin/dvd-menu"
ln -s dvd-slideshow.sh "$out/bin/dir2slideshow"
ln -s dvd-slideshow.sh "$out/bin/gallery1-to-slideshow"
ln -s dvd-slideshow.sh "$out/bin/jigl2slideshow"
cp -a man "$out/"
'';
meta = {
description = "Suite of command line programs that creates a slideshow-style video from groups of pictures";
homepage = http://dvd-slideshow.sourceforge.net/wiki/Main_Page;
license = stdenv.lib.licenses.gpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.robbinch ];
};
}