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 構建,因此在啟動時崩潰。 :-(