Upgrading Kdenlive to 0.8

svn path=/nixpkgs/trunk/; revision=28715
This commit is contained in:
Cillian de Roiste 2011-08-20 23:26:59 +00:00
parent c2386b3c91
commit d99e939015
2 changed files with 80 additions and 11 deletions

View File

@ -1,20 +1,19 @@
{stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon, mlt, gettext,
shared_mime_info, soprano}:
{ stdenv, fetchurl, lib, cmake, qt4, perl, kdelibs, automoc4, phonon, mlt, gettext
, qimageblitz, qjson, shared_mime_info, soprano }:
stdenv.mkDerivation rec {
name = "kdenlive-${version}";
version = "0.8";
stdenv.mkDerivation {
name = "kdenlive-0.7.8";
src = fetchurl {
url = mirror://sourceforge/kdenlive/kdenlive-0.7.8.tar.gz;
sha256 = "10bwmhh3kzdbq1nzq8s5ln7ydrzg41d1rihj5kdmf5hb91az8mvx";
url = "mirror://sourceforge/kdenlive/${name}.tar.gz";
sha256 = "18e3390c9eb7124af5cd43819c679374aec46dcaf1fc5cdb43918db470c1076f";
};
prePatch = ''
# For Qt47 compatibility.
sed -i 's@class QImage@#include <QImage>@' src/colorcorrection/vectorscopegenerator.h
'';
patches = [ ./kdenlive-newmlt.patch ];
buildInputs = [ cmake qt4 perl kdelibs automoc4 phonon mlt gettext
shared_mime_info soprano ];
qimageblitz qjson shared_mime_info soprano ];
meta = {
description = "Free and open source video editor";

View File

@ -0,0 +1,70 @@
From http://kdenlive.org/forum/cant-start-kdnlive-sdl-module-missing-mlt
Kdenlive 0.8 tries to detect mlt by reading from stderr, but between
mlt 0.7.2 and 0.7.4 mlt this has changed from stderr to stdout.
===================================================================
--- kdenlive-0.8/src.orig/wizard.cpp 2011-04-26 21:44:22.000000000 +0200
+++ kdenlive-0.8/src/wizard.cpp 2011-07-21 18:22:18.470831892 +0200
@@ -214,7 +214,7 @@
button(QWizard::NextButton)->setEnabled(false);
} else {
checkProcess.waitForFinished();
- QByteArray result = checkProcess.readAllStandardError();
+ QByteArray result = checkProcess.readAllStandardOutput();
// Check MLT avformat module
QTreeWidgetItem *avformatItem = new QTreeWidgetItem(m_mltCheck.programList, QStringList() << QString() << i18n("Avformat module (FFmpeg)"));
@@ -246,7 +246,7 @@
kDebug() << "// Error querying MLT's version";
} else {
checkProcess.waitForFinished();
- mltVersion = checkProcess.readAllStandardError();
+ mltVersion = checkProcess.readAllStandardOutput();
mltVersion = mltVersion.section('\n', 0, 0).simplified();
mltVersion = mltVersion.section(' ', -1).simplified();
version = 1000 * mltVersion.section('.', 0, 0).toInt() + 100 * mltVersion.section('.', 1, 1).toInt() + mltVersion.section('.', 2, 2).toInt();
@@ -275,7 +275,7 @@
kDebug() << "// Error parsing MLT's avformat codecs";
} else {
checkProcess2.waitForFinished();
- QByteArray codecList = checkProcess2.readAllStandardError();
+ QByteArray codecList = checkProcess2.readAllStandardOutput();
QString acodecList(codecList);
QStringList result;
QStringList alist = acodecList.split('\n', QString::SkipEmptyParts);
@@ -292,7 +292,7 @@
kDebug() << "// Error parsing MLT's avformat codecs";
} else {
checkProcess2.waitForFinished();
- QByteArray codecList = checkProcess2.readAllStandardError();
+ QByteArray codecList = checkProcess2.readAllStandardOutput();
QString vcodecList(codecList);
QStringList result;
QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts);
@@ -309,7 +309,7 @@
kDebug() << "// Error parsing MLT's avformat codecs";
} else {
checkProcess2.waitForFinished();
- QByteArray codecList = checkProcess2.readAllStandardError();
+ QByteArray codecList = checkProcess2.readAllStandardOutput();
QString vcodecList(codecList);
QStringList result;
QStringList vlist = vcodecList.split('\n', QString::SkipEmptyParts);
@@ -606,7 +606,7 @@
checkProcess.waitForFinished();
- QByteArray result = checkProcess.readAllStandardError();
+ QByteArray result = checkProcess.readAllStandardOutput();
if (!result.contains("- avformat")) errorMessage.append(i18n("MLT's avformat (FFMPEG) module not found. Please check your FFMPEG and MLT install. Kdenlive will not work until this issue is fixed.") + "\n");*/
QProcess checkProcess2;
@@ -616,7 +616,7 @@
checkProcess2.waitForFinished();
- QByteArray result = checkProcess2.readAllStandardError();
+ QByteArray result = checkProcess2.readAllStandardOutput();
if (!result.contains("sdl") || !result.contains("sdl_preview")) errorMessage.append(i18n("MLT's SDL module not found. Please check your MLT install. Kdenlive will not work until this issue is fixed.") + '\n');
if (!errorMessage.isEmpty()) {