From e7bb85e448356c3d0a526deb1a71bbe8fb4c9169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:14:38 +0200 Subject: [PATCH 1/7] Add epoxy: A library for handling OpenGL function pointer management --- pkgs/development/libraries/epoxy/default.nix | 30 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 +++ 2 files changed, 34 insertions(+) create mode 100644 pkgs/development/libraries/epoxy/default.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2d321fd2d802..1b4ef32d162b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4421,6 +4421,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 { }; From ae16e892bb41039db1a1a763d0d39dac4b166ba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:17:10 +0200 Subject: [PATCH 2/7] Add movit: High-performance, high-quality video filters for the GPU NOTE: movit expected to be able to read source files from gtest, so I also made them available. squash --- pkgs/development/libraries/gtest/default.nix | 1 + pkgs/development/libraries/movit/default.nix | 25 ++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 28 insertions(+) create mode 100644 pkgs/development/libraries/movit/default.nix 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/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 1b4ef32d162b..37f0117c97c4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5695,6 +5695,8 @@ let mps = callPackage ../development/libraries/mps { }; + movit = callPackage ../development/libraries/movit { }; + libmpeg2 = callPackage ../development/libraries/libmpeg2 { }; mpeg2dec = libmpeg2; From 0fec3f82fcfcf04a0990ef5f514d907b61c466a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:28:02 +0200 Subject: [PATCH 3/7] Add frei0r: Minimalist, cross-platform, shared video plugins --- pkgs/development/libraries/frei0r/default.nix | 22 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/libraries/frei0r/default.nix diff --git a/pkgs/development/libraries/frei0r/default.nix b/pkgs/development/libraries/frei0r/default.nix new file mode 100644 index 000000000000..137a941bc0a1 --- /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 = { + 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 37f0117c97c4..64402a052598 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4517,6 +4517,8 @@ let freetype = callPackage ../development/libraries/freetype { }; + frei0r = callPackage ../development/libraries/frei0r { }; + fribidi = callPackage ../development/libraries/fribidi { }; funambol = callPackage ../development/libraries/funambol { }; From 2723681a59f19f2efd743eb00c6d3dd9ea658453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:30:57 +0200 Subject: [PATCH 4/7] Kdenlive: 0.9.6 -> 0.9.8, add frei0r plugins, add myself to the maintainers --- pkgs/applications/video/kdenlive/default.nix | 30 +++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) 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; }; } From 1f9334cab31f47579225977bb8bc8b2059297838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:36:07 +0200 Subject: [PATCH 5/7] MLT: 0.9.0 -> 0.9.2, add movit and frei0r plugins, add qt4 and qt5 variants Shotcut segfaults on startup when compiled against an MLT which was built with qt4. Kdenlive seqfaults when compiled against an MLT which was built with qt5. Hence the need for the two variants. Also, I'm adopting MLT as a maintainer. --- pkgs/development/libraries/mlt/default.nix | 36 ++++++++++++++-------- pkgs/top-level/all-packages.nix | 8 +++-- 2 files changed, 28 insertions(+), 16 deletions(-) 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 64402a052598..b5704d5d6a67 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5693,12 +5693,14 @@ let mkvtoolnix = callPackage ../applications/video/mkvtoolnix { }; - mlt = callPackage ../development/libraries/mlt { }; + mlt-qt4 = callPackage ../development/libraries/mlt { qt = qt4; }; - mps = callPackage ../development/libraries/mps { }; + mlt-qt5 = callPackage ../development/libraries/mlt { qt = qt5; }; movit = callPackage ../development/libraries/movit { }; + mps = callPackage ../development/libraries/mps { }; + libmpeg2 = callPackage ../development/libraries/libmpeg2 { }; mpeg2dec = libmpeg2; @@ -10527,7 +10529,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 { }; From ab7349711bc7b9221098a4d2fb8ee6991cb3fd77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:50:01 +0200 Subject: [PATCH 6/7] Add Shotcut: A free, open source, cross-platform video editor Includes a patch which has already been applied upstream: mltframework/shotcut#31 --- .../video/shotcut/CuteLogger.patch | 13 ++++++ pkgs/applications/video/shotcut/default.nix | 41 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 56 insertions(+) create mode 100644 pkgs/applications/video/shotcut/CuteLogger.patch create mode 100644 pkgs/applications/video/shotcut/default.nix 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/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b5704d5d6a67..95d9d4d43577 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9232,6 +9232,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 { From a9c04fa6994823fa256e79c7f40881ff41ee659f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cillian=20de=20R=C3=B3iste?= Date: Sun, 27 Jul 2014 12:52:21 +0200 Subject: [PATCH 7/7] frei0r: fix typo --- pkgs/development/libraries/frei0r/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/libraries/frei0r/default.nix b/pkgs/development/libraries/frei0r/default.nix index 137a941bc0a1..2e3db4c2d73a 100644 --- a/pkgs/development/libraries/frei0r/default.nix +++ b/pkgs/development/libraries/frei0r/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { buildInputs = [ autoconf cairo opencv pkgconfig ]; - meta = { + meta = with stdenv.lib; { homepage = http://frei0r.dyne.org; description = "Minimalist, cross-platform, shared video plugins"; license = licenses.gpl2;