[openrtm-staff:1036] 10/13の作業報告(河内)

河内のぶ n.kawauchi @ aist.go.jp
2017年 10月 13日 (金) 19:11:37 JST


安藤様

河内です

本日の作業内容をお知らせします。
------------
■OpenRTM-aist修正(tags/RELEASE_1_1_2ソース)
・fedora26でのビルドエラー問題
・trunkの修正は、r2747にて、今回の問題のみを修正している。
・修正詳細は下記チケットの通り
http://redmine.openrtm.org/issues/3566

・branches/RELENG_1_1へはこの修正はマージされている。
・tags/RELEASE_1_1_2へは、この修正のみマージする。今回の作業経緯が
 分かるように、チケットに記載した。
http://redmine.openrtm.org/issues/4262

■fedora用OpenRTM-aist1.1.2版パッケージ作成 ・・・完了
・openrtm.orgへアップロード済み(C++,Python)
・リポジトリデータベースも更新してあるが、インストールテストについては
 稲葉さんにお願いする予定

★なぜ1.1.2版のfedora用パッケージをリリースしなかったのかについては
下記チケットの問題が解決できなかったため。解決した時点でリリースすべき
ところ、未対応のままになっていた。
http://redmine.openrtm.org/issues/3646

注意)1.1.2版のパッケージを作って気づいたのですが、C++は1.1.2版
 リリースに向けて32bitのアーキテクチャをi686に変更していましたが、
 Pythonはi386のままで、1.2.0版に向けてC++と合わせてi686へ修正して
 います。
 このため、rpmパッケージをアップロードするジョブがPythonのみ
 1.1.2版と1.2.0版で設定変更が1か所必要です。
 1.1.2版の対応は今回のみなので、別ジョブを定義せず修正で対応します。

修正内容)
http://openrtm.org:8080/view/01_Python/job/21_openrtm-python-linux-publish/configure
・「成果物をSCPリポジトリに公開」のところの設定(上から4番目)
・ソース:**/packages/*${DISTRIB_ARCH}.rpm
  ⇒・この設定のまま実行すると、1.1.2版の場合は64bitのrpmしか
    アップロードされない。1.2.0版の場合はOK!

・1.1.2版の場合、次のようにすると32bit, 64bitの両方アップロードされる
 ソース:**/packages/*${BASE_ARCH}.rpm
・アップロードを確認したら設定を元に戻しておく

▼Jenkinsジョブにてビルド(C++, Python)
・tagソースをビルドする
http://openrtm.org:8080/view/00_C++/job/03_openrtm-cxx-dist-tags/
http://openrtm.org:8080/view/01_Python/job/03_openrtm-python-build-tags/

・fedora用rpmパッケージをビルドする
・既存のジョブを使用するので、fedora以外のdebian, ubuntuは対象から
 外す。パラメータ入力で、tagsビルドジョブを指定する。
http://openrtm.org:8080/view/00_C++/job/20_openrtm-cxx-build-linux-package/
http://openrtm.org:8080/view/01_Python/job/20_openrtm-python-build-linux-package/

・rpmパッケージをアップロード
・アップロード先がopenrtm.orgになっていることを確認してジョブを実行
・Pythonの方は上記に示したように設定を変更してからジョブを実行する
http://openrtm.org:8080/view/00_C++/job/21_openrtm-cxx-linux-publish/
http://openrtm.org:8080/view/01_Python/job/21_openrtm-python-linux-publish/

・リポジトリデータベース更新
http://openrtm.org:8080/view/00_C++/job/22_openrtm-cxx-rebuild-fedora-repodb/

▼インストールテストは稲葉さんにお願いする予定
http://openrtm.org:8080/view/00_C++/job/23_openrtm-cxx-linux-install-test/
http://openrtm.org:8080/view/01_Python/job/23_openrtm-python-linux-install-test/


■OpenRTM-aist-Pythonのrtcd_python.exeは、py2exeでの生成で動作を試す
・生成したexeでマネージャー起動 OK!

・Windows10 + Python2.7.13 + vc2010 + OpenRTM-aist 1.2.0で生成したものを
 Windows7 + vc2013 + OpenRTM-aist 1.1.2 環境へ持って行き、
 「rtcd -d」の起動をRTSystemEditorで確認できた

▼py2exe用のsetup.py
・bundle_filesの設定を1または2にしてexeは生成できるのだが起動できない
「rtcd.exeは動作を停止しました。問題が発生したため、プログラムが正しく
 動作しなくなりました。」のエラーになる
・bundle_filesを3にすると、この指定が無い場合と同じ出力なので、これは
 外してます

・生成したexeが他のdll, pydファイル等と同じディレクトリにあると分かり
 づらいので、libの下に出力するように指定(TkCalibGUIと同様にした)
・setup.pyは以下となった
-----
from distutils.core import setup
import py2exe

option = {
  "compressed"	 : 1,
  "optimize"	 : 2,
  }

setup(
  options = { "py2exe"	: option
  },
  console = [
   {"script"	:	"rtcd.py" }
  ],
  zipfile = "lib/rtcd.zip"
)
-----

・生成されるファイル構造は以下の通りで、不要のexeだけを外し、残りを
 Windows7環境へ持って行き、「rtcd -d」での起動を確認した
-----
>tree /f dist
│  python27.dll
│  rtcd.exe
│  w9xpopen.exe ←これは不要
│
└─lib
        api-ms-win-crt-convert-l1-1-0.dll
        api-ms-win-crt-environment-l1-1-0.dll
        api-ms-win-crt-heap-l1-1-0.dll
        api-ms-win-crt-math-l1-1-0.dll
        api-ms-win-crt-runtime-l1-1-0.dll
        api-ms-win-crt-stdio-l1-1-0.dll
        api-ms-win-crt-string-l1-1-0.dll
        api-ms-win-crt-time-l1-1-0.dll
        api-ms-win-crt-utility-l1-1-0.dll
        bz2.pyd
        CRYPT32.dll
        omniORB422_vc14_rt.dll
        omnithread40_vc14_rt.dll
        pyexpat.pyd
        rtcd.zip
        select.pyd
        unicodedata.pyd
        VCRUNTIME140.dll
        _ctypes.pyd
        _hashlib.pyd
        _omnipy.pyd
        _socket.pyd
        _ssl.pyd
-----

以上です。


---------------------------------------------------
河内 のぶ  n.kawauchi @ aist.go.jp
産業技術総合研究所 ロボットイノベーション研究センター
ロボットソフトウエアプラットフォーム研究チーム
テクニカルスタッフ



More information about the openrtm-staff mailing list