Kdenlive/开发者手册
(此页面只是一个框架,其中包含许多括号中的注释,这些注释是指示今天晚些时候进一步重写的提示;请不要在 2008-04-25 之前对它的内容提出投诉 :) )
此页面面向希望偶尔或作为 Kdenlive 开发者为 Kdenlive 贡献代码的人员。
本手册面向仅对进行有限数量的特定修复感兴趣的偶尔贡献者,以及愿意在(或多或少)定期基础上处理错误追踪器条目的常规开发者。
贡献者和开发者需要的设置相同,他们必须
- 安装 svn;
- 通过 svn 使用最新的 kdenlive 源代码;
- 拥有所有所需库的开发版本(至少是头文件,可能还有源代码);
- 订阅 kdenlive devel 邮件列表。
开发者还需要
- 一个有效的 sourceforge.net 帐户(需要注册为 kdenlive 开发者)
- 一个 kdenlive 开发者帐户(由项目管理员授予)
可以使用 kdenlive svn 的 svn Web 界面检索 Kdenlive 源代码:http://kdenlive.svn.sourceforge.net/ 检查 kdenlive 的 kde3 版本 kde4 版本(现在大部分工作都在这里完成)
svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/branches/KDE4
警告 : 针对 kde3 的 kdenlive 将不再维护,因此您需要安装一个最小的 KDE4 环境。
另请参阅 获取和安装 Kdenlive。
第一次
cd <somedir> svn co ...
下次
cd <somedir>kdenlive (make sure people notice it's <somedir>/kdenlive, not <somedir>) svn update
当您的修改与 svn 版本冲突时,请解决它(使用 svn resolve 的示例)或在 Google 上搜索“svn resolve”
(添加关于开发者当前修改相对于 svn 更新的说明:何时手动合并,如何合并)
对于单个文件,请使用文件的完整路径运行“svn diff”。示例
svn diff kdenlive/krender.cpp
您可以一次比较多个文件
svn diff 'file1.cpp file2.cpp ...'
您可以一次比较整个目录
svn diff 'directory'
以创建补丁文件
svn diff kdenlive/krender.cpp > my-first.patch
当然,您可以混合匹配,例如为一堆文件和目录创建单个补丁;但补丁越大,人们就越难审查它。作为一项指南,补丁应该只包含与单个问题相关的修改。如果您的本地源代码树包含多个问题的修改,请为每个问题制作一个补丁。
偶尔贡献者必须将补丁提交到 devel 邮件列表(http://sourceforge.net/mail/?group_id=46786)以供审查和包含。
开发者可以直接提交 svn 更改。
如果您有疑问或提示,可以尝试在 #kdenlive-dev 上询问,如果开发者在场。
贡献者和开发者:随时更新/添加特定平台的说明。
截至 2008-04-24,Mandriva 2008.1/x86_64 提供 MLT(++) 版本 0.2.5,但开发库仍然是版本 0.2.2,这对于 kdenlive 来说太旧了!这意味着在 Mandriva 2008.1/x86_64 上的 kdenlive 开发者还必须通过 SVN 获取 MLT 并将其在本地编译(添加关于如何将用户生成的 MLT(++) 库用于 kdenlive 调试,同时保留生产库和 kdenlive 不变的详细信息)。
Mdv2008.1 的 ffmpeg 也缺少 swscale 支持(除了其他内容),因此它也可以从重新编译中受益。
- 在 Mdv2008.1/x86_64 上获取和配置 ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
我从 Mdv2008.1/x86_64 ffmpeg 设置和 [[Kdenlive/Getting_and_installing|获取和安装 Kdenlive] 页面合并的 ./configure 设置中获得了我的 ./configure 设置,其中包含以下值得注意的要点
- 强制将 --shlibdir 设置为 /usr/lib64,否则动态库最终会出现在 /usr/lib 中。
- 强制将 --incdir 设置为 /usr/include,否则 pkg-config 文件(*.pc)将包含一个非法的“$PREFIX”。
- 禁用静态库,因为它们没有用。
- 删除了 libogg 和一些其他 ffmpeg 不再识别的库。
- 将 --enable-pp 更改为 --enable-postproc,并将 --enable-swscaler 更改为 --enable-swscale。
./configure --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include --enable-shared --disable-static --enable-liba52 --enable-postproc --enable-gpl --enable-pthreads --enable-libnut --enable-libtheora --enable-libvorbis --enable-x11grab --enable-libmp3lame --enable-libfaad --enable-libfaac --enable-libx264 --enable-libxvid --enable-libamr_nb --enable-libamr_wb --enable-swscale --enable-nonfree
make 和 make install 步骤在我看来进行得很好。新安装的 ffmpeg 和库似乎可以正常工作。 :)
- 在 Mdv2008.1/x86_64 上获取和配置 mlt
svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt mlt
根据建议的配置设置,我启用了 mmx(没有理由不支持它),使用了 --avformat-shared(使用我刚安装的 ffmpeg 库),并禁用了 frei0r(在我的系统上不可用)、gtk2(我不使用 Gtk)、jackrack(我不使用 jack)和 qimage(由于某种原因,如果我保持启用状态,它无法找到一些 qt-mt 库;也许这是 KDE3 与 KDE4 的问题;我仍然使用 KDE3)。
./configure --prefix=/usr --libdir=/usr/lib64 --enable-gpl --avformat-shared --enable-motion-est --disable-frei0r --disable-gtk2 --disable-jackrack --disable-qimage
同样,make 和 make install 进行得很好。
- 在 Mdv2008.1/x86_64 上获取和配置 mlt++
svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt++ mlt++
我只需要确保库目录是 /usr/lib64(默认情况下将是 /usr/lib)。
./configure --libdir=/usr/lib64
同样,make 和 make install 进行得很好。
- 在 Mdv2008.1/x86_64 上获取和配置 Kdenlive
svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/trunk/kdenlive
...
这与 Mandriva 安装非常相似,因此我只是从上面进行了一些剪切粘贴。从 Fedora 7 开始,我无法编译/使用 kdenlive。今天我在 Fedora 10 预览版上做到了,这些是我遵循的步骤 (意大利语翻译)
- 操作系统和存储库
由于 Fedora 10 仍然是预览版,因此找到最新的存储库并不奇怪:然后我遇到了全新的 RpmFusion 存储库,其中包含几乎所有需要的依赖项。
- 已安装的开发包
yum install cmake kdelibs-devel ladspa-devel libdv-devel libsamplerate libquicktime-devel libtheora-devel jack-audio-connection-kit-devel jack-rack soprano-devel libmad-devel faad2-devel faac-devel lame-devel lame-libs
也许我错过了很多其他...
- 获取和配置 ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-shared --enable-pthreads --enable-libmp3lame --enable-libfaac --enable-libfaad --enable-libvorbis --enable-swscale --prefix=/usr
请注意,据我所知,--prefix 必须与 mlt 相同
make && make install
构建完美结束。
- 获取和配置 frei0r
wget http://propirate.net/frei0r/latest.tar.gz
tar xvzf latest.tar.gz
cd frei0r-plugins.1.1.22/
./configure make && make install
- 获取和配置 Mlt
svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt mlt
然后我发现我必须修复 pkg-config 路径,以便让 mlt 配置找到 avformat 库(也许我在上面的 --prefix 上出了问题:但我并不确定)
PKG_CONFIG_PATH=/usr/lib/pkgconfig/ export PKG_CONFIG_PATH
为了使用 Qt4,需要调整 qimage 库路径(请考虑结尾处的 P.S.)
./configure --prefix=/usr --enable-gpl --qimage-libdir=/usr/lib64/ --qimage-includedir=/usr/include/Qt --avformat-swscale --disable-mmx --disable-sox
请注意,根据我的经验,如果不禁用 mmx 和 sox,编译将退出并出现错误。
同样,make 和 make install 进行得很好。
- 获取和配置 mlt++
svn co https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt++ mlt++
./configure --prefix=/usr
同样,make 和 make install 进行得很好。
- 获取和配置 Kdenlive
svn co https://kdenlive.svn.sourceforge.net/svnroot/kdenlive/branches/KDE4
cd KDE4
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make && make install
完成!
P.S.(最新消息):但是,同样的过程在我的家用台式机上有效,而在办公室的笔记本电脑上无效;似乎 mlt 在该笔记本电脑上没有正确检测到 Qt4 包含文件,而是针对 qt3 构建,因此在启动时崩溃。 :-(