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
- スクリプト例)kawa.bat
- ビルドが終わったら、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 にする