diff --git a/pkgs/applications/video/kdenlive/default.nix b/pkgs/applications/video/kdenlive/default.nix index d7fab74e6cac..8c51c4f35a3b 100644 --- a/pkgs/applications/video/kdenlive/default.nix +++ b/pkgs/applications/video/kdenlive/default.nix @@ -1,28 +1,36 @@ -{ stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon -, mlt, gettext , qimageblitz, qjson, shared_mime_info, soprano -, pkgconfig, shared_desktop_ontologies, libv4l }: +{ stdenv, fetchurl, frei0r, lib, cmake, qt4, perl, kdelibs, automoc4 +, phonon , makeWrapper, mlt, gettext , qimageblitz, qjson +, shared_mime_info, soprano, pkgconfig, shared_desktop_ontologies +, libv4l +}: stdenv.mkDerivation rec { name = "kdenlive-${version}"; - version = "0.9.6"; + version = "0.9.8"; src = fetchurl { url = "mirror://kde/stable/kdenlive/${version}/src/${name}.tar.bz2"; - sha256 = "1rw2cbzy5mabwijvryyzbhpgldn2zy5jy4j87hl4m1i8ah9lgi7x"; + sha256 = "17x5srgywcwlbpbs598jwwc62l8313n4dbqx3sdk7p6lyvwk3jln"; }; - buildInputs = - [ cmake qt4 perl kdelibs automoc4 phonon mlt gettext qimageblitz - qjson shared_mime_info soprano pkgconfig shared_desktop_ontologies libv4l - ]; + buildInputs = [ + automoc4 cmake frei0r gettext kdelibs libv4l makeWrapper mlt perl + phonon pkgconfig qimageblitz qjson qt4 shared_desktop_ontologies + shared_mime_info soprano + ]; enableParallelBuilding = true; + postInstall = '' + wrapProgram $out/bin/kdenlive --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 + wrapProgram $out/bin/kdenlive_render --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 + ''; + meta = { description = "Free and open source video editor"; - license = "GPLv2+"; + license = stdenv.lib.licenses.gpl2Plus; homepage = http://www.kdenlive.org/; - maintainers = with stdenv.lib.maintainers; [viric]; + maintainers = with stdenv.lib.maintainers; [ goibhniu viric ]; platforms = with stdenv.lib.platforms; linux; }; } diff --git a/pkgs/applications/video/shotcut/CuteLogger.patch b/pkgs/applications/video/shotcut/CuteLogger.patch new file mode 100644 index 000000000000..77b451cb437d --- /dev/null +++ b/pkgs/applications/video/shotcut/CuteLogger.patch @@ -0,0 +1,13 @@ +diff --git shotcut-14.07/CuteLogger/CuteLogger.pro shotcut-14.07/CuteLogger/CuteLogger.pro +index 501eddc..a5290b0 100644 +--- shotcut-14.07/CuteLogger/CuteLogger.pro ++++ shotcut-14.07/CuteLogger/CuteLogger.pro +@@ -42,7 +42,7 @@ unix:!symbian { + maemo5 { + target.path = /opt/usr/lib + } else { +- target.path = /usr/lib ++ target.path = $(INSTALL_ROOT)/usr/lib + } + INSTALLS += target + } diff --git a/pkgs/applications/video/shotcut/default.nix b/pkgs/applications/video/shotcut/default.nix new file mode 100644 index 000000000000..97c3720f7f93 --- /dev/null +++ b/pkgs/applications/video/shotcut/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, SDL, frei0r, gettext, makeWrapper, mlt, pkgconfig, qt5 }: + +stdenv.mkDerivation rec { + name = "shotcut-${version}"; + version = "14.07"; + + src = fetchurl { + url = "https://github.com/mltframework/shotcut/archive/v${version}.tar.gz"; + sha256 = "05g0b3jhmmdv8qnlgmi8wsfi7l3c5zvjcrrb3q7ajfc3q7yf6k6a"; + }; + + buildInputs = [ SDL frei0r gettext makeWrapper mlt pkgconfig qt5 ]; + + # Fixed in git and can be removed for the next release + patches = [ ./CuteLogger.patch ]; + + configurePhase = "qmake PREFIX=$out"; + + postInstall = '' + mkdir -p $out/share/shotcut + cp -r src/qml $out/share/shotcut/ + wrapProgram $out/bin/shotcut --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 + ''; + + meta = with stdenv.lib; { + description = "A free, open source, cross-platform video editor"; + longDescription = '' + An offical binary for Shotcut, which includes all the + dependencies pinned to specific versions, is provided on + http://shotcut.org. + + If you encounter problems with this version, please contact the + nixpkgs maintainer(s). If you wish to report any bugs upstream, + please use the official build from shotcut.org instead. + ''; + homepage = http://shotcut.org; + license = licenses.gpl3; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix new file mode 100644 index 000000000000..a1b0d87cdfdc --- /dev/null +++ b/pkgs/development/libraries/epoxy/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchurl, autoconf, autogen, automake, gettext, libX11 +, mesa, pkgconfig, python, utilmacros +}: + +stdenv.mkDerivation rec { + name = "epoxy-${version}"; + version = "1.2"; + + src = fetchurl { + url = "https://github.com/anholt/libepoxy/archive/v${version}.tar.gz"; + sha256 = "1xp8g6b7xlbym2rj4vkbl6xpb7ijq7glpv656mc7k9b01x22ihs2"; + }; + + buildInputs = [ + autoconf autogen automake gettext libX11 mesa pkgconfig python + utilmacros + ]; + + configureScript = '' + ./autogen.sh --prefix="$out" + ''; + + meta = with stdenv.lib; { + description = "A library for handling OpenGL function pointer management"; + homepage = https://github.com/anholt/libepoxy; + license = licenses.mit; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/frei0r/default.nix b/pkgs/development/libraries/frei0r/default.nix new file mode 100644 index 000000000000..2e3db4c2d73a --- /dev/null +++ b/pkgs/development/libraries/frei0r/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, autoconf, cairo, opencv, pkgconfig }: + +stdenv.mkDerivation rec { + name = "frei0r-plugins-${version}"; + version = "1.4"; + + src = fetchurl { + url = "https://files.dyne.org/.xsend.php?file=frei0r/releases/${name}.tar.gz"; + sha256 = "0mxyhdp1p1a3ga8170ijygb870zwbww1dgp3kdr1nd4zvsmzqw44"; + }; + + buildInputs = [ autoconf cairo opencv pkgconfig ]; + + meta = with stdenv.lib; { + homepage = http://frei0r.dyne.org; + description = "Minimalist, cross-platform, shared video plugins"; + license = licenses.gpl2; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + + }; +} diff --git a/pkgs/development/libraries/gtest/default.nix b/pkgs/development/libraries/gtest/default.nix index 1e030d4d7ce0..a59e3d07cb44 100644 --- a/pkgs/development/libraries/gtest/default.nix +++ b/pkgs/development/libraries/gtest/default.nix @@ -21,6 +21,7 @@ stdenv.mkDerivation rec { mkdir -p $out/lib cp -v libgtest.a libgtest_main.a $out/lib cp -v -r ../include $out + cp -v -r ../src $out ''; meta = { diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix index 1d21e03efa6c..00d586a9f04c 100644 --- a/pkgs/development/libraries/mlt/default.nix +++ b/pkgs/development/libraries/mlt/default.nix @@ -1,29 +1,39 @@ -{ stdenv, fetchurl, SDL, ffmpeg, libdv, libsamplerate, libvorbis -, libxml2 , pkgconfig, qt4, sox, gtk2 }: +{ stdenv, fetchurl, SDL, frei0r, jack2, libav, libdv, libsamplerate +, libvorbis, libxml2, makeWrapper, movit, pkgconfig, qt, sox +}: stdenv.mkDerivation rec { name = "mlt-${version}"; - version = "0.9.0"; + version = "0.9.2"; src = fetchurl { - url = "mirror://sourceforge/mlt/${name}.tar.gz"; - sha256 = "1j8wbkwpa6k5anyf4nvf71l8251d7clzj6v09jl3vvfakaf6l37j"; + url = "https://github.com/mltframework/mlt/archive/v${version}.tar.gz"; + sha256 = "0vk1i2yrny6dbip4aha25ibgv4m2rdhpxmz6a74q9wz1cgzbb766"; }; - buildInputs = - [ SDL ffmpeg libdv libsamplerate libvorbis libxml2 pkgconfig qt4 - sox # gtk2 /*optional*/ - ]; + buildInputs = [ + SDL frei0r jack2 libav libdv libsamplerate libvorbis libxml2 + makeWrapper movit pkgconfig qt sox + ]; # Mostly taken from: # http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/installing-source/installing-mlt-rendering-engine - configureFlags = [ "--enable-gpl" "--enable-gpl3" "--avformat-swscale" ]; + configureFlags = [ + "--avformat-swscale" "--enable-gpl" "--enable-gpl" "--enable-gpl3" + "--enable-opengl" + ]; enableParallelBuilding = true; - meta = { - homepage = http://www.mltframework.org/; + postInstall = '' + wrapProgram $out/bin/melt --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1 + ''; + + meta = with stdenv.lib; { description = "Open source multimedia framework, designed for television broadcasting"; - license = "GPLv3"; + homepage = http://www.mltframework.org/; + license = licenses.gpl3; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix new file mode 100644 index 000000000000..bfd474c88e71 --- /dev/null +++ b/pkgs/development/libraries/movit/default.nix @@ -0,0 +1,25 @@ +{ stdenv, fetchurl, SDL, eigen, epoxy, fftw, gtest, pkgconfig }: + +stdenv.mkDerivation rec { + name = "movit-${version}"; + version = "1.1.1"; + + src = fetchurl { + url = "http://movit.sesse.net/${name}.tar.gz"; + sha256 = "1k3qbkxapcplpsx22xh4m4ccp9fhsjfcj3pjzbcnrc51103aklag"; + }; + + GTEST_DIR = "${gtest}"; + + propagatedBuildInputs = [ eigen epoxy ]; + + buildInputs = [ SDL fftw gtest pkgconfig ]; + + meta = with stdenv.lib; { + description = "High-performance, high-quality video filters for the GPU"; + homepage = http://movits.sesse.net; + license = licenses.gpl2Plus; + maintainers = [ maintainers.goibhniu ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ebf2704b7952..6a7fcdc3126c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4427,6 +4427,10 @@ let enginepkcs11 = callPackage ../development/libraries/enginepkcs11 { }; + epoxy = callPackage ../development/libraries/epoxy { + inherit (xorg) utilmacros libX11; + }; + esdl = callPackage ../development/libraries/esdl { }; exiv2 = callPackage ../development/libraries/exiv2 { }; @@ -4519,6 +4523,8 @@ let freetype = callPackage ../development/libraries/freetype { }; + frei0r = callPackage ../development/libraries/frei0r { }; + fribidi = callPackage ../development/libraries/fribidi { }; funambol = callPackage ../development/libraries/funambol { }; @@ -5693,7 +5699,11 @@ let mkvtoolnix = callPackage ../applications/video/mkvtoolnix { }; - mlt = callPackage ../development/libraries/mlt { }; + mlt-qt4 = callPackage ../development/libraries/mlt { qt = qt4; }; + + mlt-qt5 = callPackage ../development/libraries/mlt { qt = qt5; }; + + movit = callPackage ../development/libraries/movit { }; mps = callPackage ../development/libraries/mps { }; @@ -9247,6 +9257,8 @@ let ruby_ncursesw_sup = callPackage ../development/libraries/ruby_ncursesw_sup { }; + shotcut = callPackage ../applications/video/shotcut { mlt = mlt-qt5; }; + smplayer = callPackage ../applications/video/smplayer { }; sup = with rubyLibs; callPackage ../applications/networking/mailreaders/sup { @@ -10550,7 +10562,7 @@ let kdeconnect = callPackage ../applications/misc/kdeconnect { }; - kdenlive = callPackage ../applications/video/kdenlive { }; + kdenlive = callPackage ../applications/video/kdenlive { mlt = mlt-qt4; }; kdesvn = callPackage ../applications/version-management/kdesvn { };