Jitsi(SIP communicator)的環境部署和打包發布


Jitsi(SIP communicator)的環境部署和打包發布 - nomousewch的專欄 - 博客頻道 - CSDN.NET

  • 簡介

         Jitsi是一個開源的,安全(ZRTP加密),高質量的SIP/XMPP視頻通話、會議、聊天、桌面共享、文件傳傳輸。可以安裝在你喜歡的操作系統中並且支持多種IM網絡。Jitsi是當最功能最完整的高級通信工具。Jitsi讓你可以在同一個軟件中連到Facebook、GoogleTalk、XMPP、Windows Live、Yahoo!、AIM和ICQ進行通信。Jitsi應該算的上是最好的Java開源XMPP客戶端之一,而且它還同時支持SIP協議,能夠進行語音和視頻聊天,功能不可謂不強大,最近研究了Jitsi,打算在它的基礎上進行二次開發,下面寫一下自己這方面的經驗。http://jitsi.org/是Jitsi的官網,我們可以從download中獲取最新的源碼。

 

  • 環境配置

        獲取源碼后,可以配置開發環境,我用的是eclipse,可以參照官網的教程來進行,在這就不多說了,見http://jitsi.org/index.php/Documentation/ConfigureEclipseNew,部署之后可以通過ant來運行,或者配置run configuration來運行都可以。

  • 打包發布

        這個是Jitsi最難的地方了,官網上對於這方面沒有很詳細的說明,我研究了很久才搞定。

        通用版本的打包比較容易,只需要安裝一個izpack工具就可以了,見http://izpack.org/,配置好這個工具之后在jitsi主目錄下進入resource/install文件夾,運行build.xml文件中的 build-installation-generic 生成一個jar包。需要注意的是這個通用版本你必須先安裝jre才能夠運行。

        在windows上面進行打包就比較煩了,需要一系列工具,包括:

  1. cygwin     用於在windows上模擬Linux環境,裝好之后可以直接在命令行下執行linux命令比如ls,top等。
  2. mingw     主要使用它的gcc和make工具,用於將Jitsi的一些c語言程序直接編譯為windows下的exe文件。
  3. 7zip          用於壓縮安裝程序
  4. wix            微軟提供的工具,可以用來制作windows下的安裝引導程序,例如做成msi文件。
  5. jre             提供內置的Java運行環境。

        我們一個一個進行安裝,由於對c語言不熟悉,在安裝cygwin和mingw的時候浪費了N多時間。

        首先是cygwin,在http://www.cygwin.com/上點擊setup.exe進行安裝,具體過程見http://apps.hi.baidu.com/share/detail/30458811,最好裝在c:/cgywin目錄,將此目錄/bin加入環境配置變量path中。

        然后是mingw,在http://www.mingw.org/上用mingw-get-inst.exe進行安裝,安裝時只需要選擇gcc就可以了,最好裝在c:/mingw/x86目錄,將此目錄/bin加入環境配置變量path中,安裝好了之后寫一個c程序,用gcc試驗一下,成功編譯即可。

        7zip直接安裝就行了,不需要做什么配置。

        wix我用的是3.5的版本,需要.net framework4.0支持,裝完后將安裝目錄(不需要/bin了)加入環境配置變量path中。將jre所在的目錄修改與ant-build-config.properties 中一致即可。

       下面在cygwin命令行中進入jitsi主目錄下resource/install文件夾,運行ant build-installation-wix ,一路等待,打好OK,有可能會碰到幾個問題,解決方案一起給出。

  • makefile的問題



     ant報錯如下:

     [exec] process_begin: CreateProcess((null), C:/mingw/x86/bin/gcc.exe -dumpmachine, ...) failed.

     [exec] makefile:45: *** target pattern contains no `%'.  Stop.

     這個是gcc編譯問題問題,打開jitsi主目錄下src/native/windows/run文件夾下的Makefile,修改下面兩行

      cygwin.target.dir := "$(TARGET_DIR)"

       修改為       

      cygwin.target.dir := $(TARGET_DIR)

       然后

      -rm.exe -f ../../../../resources/install/windows/config.h

      echo.exe -e '#define PRODUCTNAME "$(PRODUCTNAME)"\n#$(DEFINE_PACKAGECODE)' > $(cygwin.target.dir)/config.h

      修改為

      echo #define PRODUCTNAME "$(PRODUCTNAME)" > $(cygwin.target.dir)/config.h

      echo #$(DEFINE_PACKAGECODE) >> $(cygwin.target.dir)/config.h

      注意不要用任何空格,不然會出錯。      

  • msi壓縮成exe的問題

        ant報錯如下:

     [exec] C:/mingw/bin/gcc.exe -O2 -Wall -Wreturn-type -DWINVER=0x0502 -D_WIN32_WINNT=0x0502 -I"C:\Users\wuch\workspace\Jitsi/release/windows/tmp" -DBSPATCH_API_STATIC -DBZ2_API_STATIC -I. -I./include -I. -DLZMA_API_STATIC -I./include -I./api -I../run
bspatch.c lasterror.c ../run/registry.c setup.c "C:\Users\wuch\workspace\Jitsi/release/windows/tmp"/setup.res -mwindows -L./lib/ -L. -L./lib/ -L./.libs -o "C:\Users\wuch\workspace\Jitsi/release/windows/tmp"/setup.exe -ladvapi32 -lbz2 -llzma -lole32 -lshell32

     [exec] setup.c:1770:1: warning: 'Setup_wstr2str' defined but not used

     [exec] c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -lbz2

     [exec] c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../mingw32/bin/ld.exe: cannot find -llzma

     [exec] collect2: ld returned 1 exit status

     [exec] make.exe: *** [C:\Users\wuch\workspace\Jitsi/release/windows/tmp/setup.exe] Error 1

 

      這個問題是因為make的時候找不到相應的動態鏈接庫,我們在安裝mingw的時候少安裝了libarchive庫,命令行進去mingw安裝目錄(c:/mingw/bin),運行mingw-get install libarchive,會自動安裝libarchive庫,再次編譯OK。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM