Project

General

Profile

OpenRTM-aist Python 1.1.0-RELEASE用msi作成手順

インストーラ作成処理は、Jenkinsジョブと手動設定で行っている。

RTSystemEditorRCPとJREのマージモジュールの確認

  • これら2つのマージモジュールは、C++, Python, Java の各インストーラ共通で使用する
  • 現時点で、これら2つのマージモジュール作成処理は、C++のWindows用インストーラ作成スクリプトに含めている
  • マージモジュール作成手順については下記参照
    OpenRTP マージモジュール
  • C++用Windowsインストーラを作成する過程でマージモジュールを作成したら、以下へアップロードしている
    http://openrtm.org/pub/Windows/OpenRTM-aist/tools/msm/
       JRE_OpenJDK7_x86.msm
       JRE_OpenJDK7_x86_64.msm
       RTSystemEditorRCP_x86.msm
       RTSystemEditorRCP_x86_64.msm
    
  • 注意すべき点は、このmsmファイルをC++, Python, Java の全てのインストーラ作成で使うこと。
  • ソースに修正がないのにmsmファイルを作りなおすとGUID値が変わってしまうので、
    3言語のインストーラが同じmsmファイルを使うことが重要である。

Jenkinsジョブ(実行順)

  • 01_openrtm-python-build-tags
    チェックアウト後のソースからディストリビューション用のソースコードパッケージ(Unix用、Windows用)を作成する
  • 11_openrtm-python-build-package-win
    01_openrtm-python-build-tagsの結果をダウンロードしwindows用パッケージをビルドする
    • このジョブが途中エラーで終わる。ジョブスクリプトは以下の通り。
    • スクリプト最後の build.cmd の処理の途中で終わる
      echo %WORKSPACE%
      
      C:\cygwin64\bin\unzip.exe OpenRTM-aist-Python-1.1.0.zip
      cacls OpenRTM-aist-Python-1.1.0 /T /E /C /G Everyone:F
      
      xcopy /e/y/q OpenRTM-aist-Python-1.1.0 C:\distribution\OpenRTM-aist-Python-1.1.0\   ←★
      cd C:\distribution\OpenRTM-aist-Python-1.1.0\installer
      
      set ARCH=x86_64
      set URL=http://openrtm.org/pub/Windows/OpenRTM-aist/tools/msm/RTSystemEditorRCP_%ARCH%.msm
      C:\Cygwin64\bin\wget.exe %URL%
      set URL=http://openrtm.org/pub/Windows/OpenRTM-aist/tools/msm/JRE_OpenJDK7_%ARCH%.msm
      C:\Cygwin64\bin\wget.exe %URL%
      set INCLUDE_JRE=YES
      
      call build.cmd
      
    • エラーで終わったら、★印のxcopyのディレクトリコピーから手動でやり直せば成功する ⇒ 下記「手動作業」の項へ
  • 参考までに、エラー時のログは以下となっている
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer>set INCLUDE_JRE=YES 
    
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer>call build.cmd 
    
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer>if not DEFINED ARCH set ARCH=x86_64 
    
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer>if not DEFINED INCLUDE_JRE set INCLUDE_JRE=YES 
    
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer>echo off 
            1 個のファイルをコピーしました。
    
    Template Generation Error: line 130 in input data
      Value not found for: "RtmOpenrtm_aist26UtilsRtcprof.Files" 
    ------------------------------------------------------------
                       Guid="[RtmOpenrtm_aist26UtilsRtcprof.GUID]
    ">
              <RemoveFile Id='Py26_RtmOpenrtm_aistUtilsRtcprof' On='uninstall' Name='*.pyc' />
              <RemoveFile Id='Py26_RtmOpenrtm_aistUtilsRtcprof_2' On='uninstall' Name='rtc*.log' />
              [for file in RtmOpenrtm_aist26UtilsRtcprof.Files]
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              <File Id="[file.Id]
    " Name="[file.Name]
    " 
                    DiskId="1" Source="[file.Source]
    ------------------------------------------------------------
    Windows Installer XML Toolset Compiler version 3.8.1128.0
    Copyright (c) Outercurve Foundation. All rights reserved.
    
    OpenRTM-aist-Python.wxs
    C:\distribution\OpenRTM-aist-Python-1.1.0\installer\OpenRTM-aist-Python.wxs : error CNDL0104 : Not a valid source file; detail: ルート要素が見つかりません。
    light.exe : error LGHT0103 : The system cannot find the file 'OpenRTM-aist-Python.wixobj' with type 'Source'.
    Windows Installer XML Toolset Compiler version 3.8.1128.0
    Copyright (c) Outercurve Foundation. All rights reserved.
    

手動作業

32bitビルドの場合

  • C:\distribution\OpenRTM-aist-Python-1.1.0を削除する
  • ★のディスクコピーを行う
    • C:\Jenkins\workspace\11_openrtm-python-build-package-win下のOpenRTM-aist-Python-1.1.0をC:\distribution下へコピーする
  • C:\distribution\OpenRTM-aist-Python-1.1.0\installer へ移動して、build.cmdを実行するスクリプト(kawa.bat)を同じディレクトリに用意し、実行する
    • スクリプト例)kawa.bat
      set ARCH=x86
      set URL=http://openrtm.org/pub/Windows/OpenRTM-aist/tools/msm/RTSystemEditorRCP_%ARCH%.msm
      C:\Cygwin64\bin\wget.exe %URL%
      set URL=http://openrtm.org/pub/Windows/OpenRTM-aist/tools/msm/JRE_OpenJDK7_%ARCH%.msm
      C:\Cygwin64\bin\wget.exe %URL%
      set INCLUDE_JRE=YES
      call build.cmd
      
  • ビルドが終わったら、C:\distribution\OpenRTM-aist-Python-1.1.0 を別名にしておく。例えば、C:\distribution\OpenRTM-aist-Python-1.1.0-x86 など。
    これは、32/64bitの両インストーラを作成するため。 現在の設定では、C:\distribution直下は「OpenRTM-aist-Python-1.1.0」の名前でないとインストーラを作成できなかった。
    Jenkinsジョブではなく手動作業なので、設定を変更するよりこの対応で実行した。

64bitビルドの場合

  • ★のディスクコピーから同じ手順で行う
  • kawa.batのARCHを x86_64 にする