RTC Builder: チケット
https://www.openrtm.org/redmine/
https://www.openrtm.org/redmine/redmine/favicon.ico
2018-12-14T07:32:46Z
Redmine for OpenRTM-aist
Redmine
調査 #4636 (担当): 利用可能なJavaバージョンの調査
https://www.openrtm.org/redmine/issues/4636
2018-12-14T07:32:46Z
ga
sakamoto@globalassist.co.jp
<p>Oracle Javaのライセンスおよび新規バージョンにおいてCORBAが削除されることになったことに伴い、また、Eclipseのバージョンアップに伴い、利用可能なJavaバージョン、およびEclipseのバージョンについて調査を行うとともに、今後利用すべきJavaとEclipseについて検討し指針を示すこと。</p>
整備 #4614 (解決): rpmパッケージに含めるファイルとディレクトリ指定方法を見直す
https://www.openrtm.org/redmine/issues/4614
2018-08-13T00:18:57Z
n.kawauchi
n.kawauchi@aist.go.jp
<ul>
<li>eclipseに含まれるファイルは、バージョンによって変更があるようなので、フルネームでファイルを指定していると<br />そのファイルが含まれなくなった時にエラーになる</li>
<li>実際、eclipse4.3にはabout_filesが含まれない</li>
</ul>
<ul>
<li>debパッケージ生成時の指定に倣い、ワイルドカードを使って指定するように変更する</li>
</ul>
調査 #4551 (解決): CMakeLists.txtのテンプレートに含まれているfind_package(OpenRTM) を外した場合の動作を調べる
https://www.openrtm.org/redmine/issues/4551
2018-06-01T00:15:22Z
n.kawauchi
n.kawauchi@aist.go.jp
<ul>
<li>Windows環境の場合はインストーラがシステム環境変数OpenRTM_DIRを定義しているので、CMakeはOpenRTMConfig.cmakeのディレクトリをすぐに特定できる。<br />この環境では、CMakeLists.txtへfind_package(OpenRTM) を記載して検索してはいけないとのこと。(slack 原さんより)</li>
<li>CMakeを使う(find_packageを使う)ということは、なるべく環境変数に依存しない方がよい(ポータビリティが増します)ということですが、<br />OpenRTM-aistはWindows環境の場合、32bit版、64bit版の両方をインストールして切り替えて使用することができるようにしているため、システム環境変数を利用している</li>
<li>Linux環境での動作も確認し、テンプレートの修正について調査する</li>
</ul>
整備 #4491 (解決): Java の テンプレートの修正
https://www.openrtm.org/redmine/issues/4491
2018-03-23T05:05:20Z
katami
<p>Java の テンプレートの修正をお願いします。</p>
<ul>
<li>src/CMakeLists.txtの削除<br />src/CMakeLists.txtは使っておりませんので削除をお願いします。<br />Eclipseの自動ビルドが走ると、src/CMakeLists.txtはbinにコピーされてしまいますので、削除をお願いします。</li>
</ul>
<ul>
<li>include ディレクトリの削除<br />使用していませんので、削除をお願いします。</li>
</ul>
整備 #4474 (解決): JavaのRTCソースコードテンプレート
https://www.openrtm.org/redmine/issues/4474
2018-03-02T00:13:58Z
katami
<p>JavaDocでエラーが発生するために、ソースコードのテンプレートの修正をお願いします。。</p>
<ul>
<li>doxygenの形式からjavadoc形式に変更(構成やタグ)</li>
<li>説明文内の大なり(>)、小なり(<)の対応</li>
<li>インデントを半角スペース</li>
<li>コメントの記述ミス</li>
</ul>
整備 #4471 (解決): JavaのRTC作成用テンプレート
https://www.openrtm.org/redmine/issues/4471
2018-02-28T01:42:53Z
katami
<p>CPackによるインストーラパッケージの対応のためテンプレートの修正をお願いします。</p>
<a name="CMakeListstxt-の変更"></a>
<h2 >CMakeLists.txt の変更<a href="#CMakeListstxt-の変更" class="wiki-anchor">¶</a></h2>
<p>pythonのCMakeLists.txtをベースに変更をお願いします。<br />差分が大きいので、RTC名が"ModuleName"の例を添付します。</p>
<a name="docCMakeListstxt-の変更"></a>
<h2 >doc/CMakeLists.txt の変更<a href="#docCMakeListstxt-の変更" class="wiki-anchor">¶</a></h2>
<p>以下のようにお願いします。<br /><pre>
install(DIRECTORY "."
DESTINATION "${INSTALL_PREFIX}/html"
COMPONENT documentation)
</pre></p>
<a name="build_ltRTC名gtxmlの変更"></a>
<h2 >build_<RTC名>.xmlの変更<a href="#build_ltRTC名gtxmlの変更" class="wiki-anchor">¶</a></h2>
<p>javadocでドキュメントを生成するように修正をお願いします。<br />差分が大きいのでRTC名が"ModuleName"の例を添付します。<br />例では MyService.idl のサービスポートを実装するRTCのbuild_<RTC名>.xmlとなっています。</p>
<a name="実行用スクリプトsh-の変更"></a>
<h2 >実行用スクリプト(*.sh) の変更<a href="#実行用スクリプトsh-の変更" class="wiki-anchor">¶</a></h2>
<p>変更点を示します。</p>
<pre>
@@ -5,7 +5,7 @@
FILE2=`ls ${RTM_JAVA_ROOT}/jar/commons-cli*`
FILE3=`ls ${RTM_JAVA_ROOT}/jar/jna-?.?.?.jar`
FILE4=`ls ${RTM_JAVA_ROOT}/jar/jna-platform-*.jar`
- CLASSPATH=.:$FILE1:$FILE2:$FILE3:$FILE4:${RTM_JAVA_ROOT}/bin:`dirname $0`/bin
+ CLASSPATH=.:$FILE1:$FILE2:$FILE3:$FILE4:${RTM_JAVA_ROOT}/bin:`dirname $0`/bin:`dirname $0`
echo ${CLASSPATH}
}
if test "x$RTM_JAVA_ROOT" = "x" ; then
</pre>
<a name="ソースコードの変更"></a>
<h2 >ソースコードの変更<a href="#ソースコードの変更" class="wiki-anchor">¶</a></h2>
<p>現状、javadocでエラーがでます。<br />整理して別チケットを発行します。</p>
整備 #4469 (解決): rtc.confのログレベルの修正
https://www.openrtm.org/redmine/issues/4469
2018-02-28T01:01:12Z
n-miyamoto
n-miyamoto@aist.go.jp
<p>RTC Builderの生成するrtc.confで、以下のようにログレベルがNORMALと記述される箇所があるが、NORMALというログレベルはないため、デフォルトのINFOに修正する。</p>
<pre>
logger.log_level: NORMAL
</pre>
<p>利用可能なログレベルは以下の9種類のため、rtc.conf内のコメント文についても修正する。</p>
<pre>
SILENT, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, VERBOSE, PARANOID
</pre>
整備 #4386 (解決): テンプレートにOSX用の定義を追加する
https://www.openrtm.org/redmine/issues/4386
2017-12-06T04:44:51Z
n.kawauchi
n.kawauchi@aist.go.jp
<p>RTCの生成されたプロジェクトのルートのCMakeLists.txtのOSX SpecificのセクションにSET文を1行追加して下さい。<br /><pre>
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Mac OS X specific code
SET(CMAKE_CXX_COMPILER "g++")
SET(CMAKE_MACOSX_RPATH 1) <--★追加
endif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
</pre></p>
整備 #4383 (解決): pythonのidlコンパイル用シェルスクリプトをのBOM無しに変更
https://www.openrtm.org/redmine/issues/4383
2017-12-05T05:02:25Z
katami
<p><a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: RTC Builderが生成するソースファイルの文字コードを「BOM付UTF-8」にする (終了)" href="https://www.openrtm.org/redmine/issues/3898">#3898</a> の変更により、RTCBが生成するpythonのidlコンパイル用シェルスクリプト(idlcompile.sh)がBOM付きになりました。<br />BOM付きのため、idlコンパイル(idlcompile.sh)を実行すると以下のようなエラーがでます。<br />BOM無しにお願いします。</p>
<pre>
$ sh ./idlcompile.sh
./idlcompile.sh: 1: ./idlcompile.sh: #!/bin/sh: not found
</pre>
整備 #4380 (解決): javaのRTC実行用xmlファイル(ant向け)を追加
https://www.openrtm.org/redmine/issues/4380
2017-11-30T06:39:45Z
katami
<p>EclipseからRTCを実行できるようにのant用のxmlファイルを追加します。<br />現状、EclipseからRTCを実行する場合、パッケージ・エクスプローラーの<RTC名>.batをダブルクリックすることにより実行します。しかしながら、EclipseがインストールされているディレクトリでRTCが実行されるため、プロジェクトディレクトリのrtc.confが反映されません。(コマンドプロンプトで<RTC名>.batを実行するとrtc.confを反映して実行することができます。)<br />そこで、antでRTCを実行できるように、生成するファイルにxmlファイルを追加します。<br />ファイル名は、run_<RTC名>.xml。<br />追加するファイルは以下のようなものです。(RTC名はModuleNameです。)<br /><pre><code class="xml syntaxhl"><span class="CodeRay"><span class="comment"><!--
# -*- Buildfile -*-
# @file run_ModuleName.xml
# @brief Execute RTComponent makefile for "ModuleName component"
# @date $Date$
#
# $Id$
--></span>
<span class="tag"><project</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">ModuleName</span><span class="delimiter">"</span></span> <span class="attribute-name">default</span>=<span class="string"><span class="delimiter">"</span><span class="content">exec</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><property</span> <span class="attribute-name">environment</span>=<span class="string"><span class="delimiter">"</span><span class="content">env</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">option</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"><target</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">exec</span><span class="delimiter">"</span></span> <span class="tag">></span>
<span class="tag"><java</span> <span class="attribute-name">classname</span>=<span class="string"><span class="delimiter">"</span><span class="content">ModuleNameComp</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><classpath></span>
<span class="tag"><pathelement</span> <span class="attribute-name">location</span>=<span class="string"><span class="delimiter">"</span><span class="content">bin</span><span class="delimiter">"</span></span><span class="tag">/></span>
<span class="tag"><pathelement</span> <span class="attribute-name">location</span>=<span class="string"><span class="delimiter">"</span><span class="content">.</span><span class="delimiter">"</span></span><span class="tag">/></span>
<span class="tag"><fileset</span> <span class="attribute-name">dir</span>=<span class="string"><span class="delimiter">"</span><span class="content">${env.RTM_JAVA_ROOT}/jar</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><include</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">*.jar</span><span class="delimiter">"</span></span><span class="tag">/></span>
<span class="tag"></fileset></span>
<span class="tag"></classpath></span>
<span class="tag"><arg</span> <span class="attribute-name">line</span>=<span class="string"><span class="delimiter">"</span><span class="content">${option}</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"></java></span>
<span class="tag"></target></span>
<span class="tag"></project></span>
</span></code></pre></p>
整備 #4379 (解決): javaのRTC実行用バッチファイルにcpの設定を追加。
https://www.openrtm.org/redmine/issues/4379
2017-11-30T04:14:43Z
katami
<p>Java版のRELEASE_1_2_0から、実行時にjna、jna-platformというライブラリを使う機能が実装されています。<br />そのため、RTC実行用バッチファイルにこれらのライブラリのクラスパスを追加する必要があります。<br />これらのライブラリは、同梱され C:\Program Files\OpenRTM-aist\1.2.0\jar にインストールされます。<br />RTC実行用バッチファイルにクラスパス設定の処理を追加願います。<br />また、実行時にrtc.confや<RTC>名.confが読み込めないですので併せて修正願います。<br />以下に実行用のバッチファイルを示します。RTC名は"ModuleName"です。<br />BOM無しでお願いします。</p>
<pre>
@echo off
set rtm_java_root=%RTM_JAVA_ROOT%
set JAR_BASE=%rtm_java_root%\jar\
for /F %%A in ('dir "%JAR_BASE%OpenRTM*" /B') do (set FILE1=%%A)
for /F %%A in ('dir "%JAR_BASE%commons-cli*" /B') do (set FILE2=%%A)
for /F %%A in ('dir "%JAR_BASE%jna-?.?.?.*" /B') do (set FILE3=%%A)
for /F %%A in ('dir "%JAR_BASE%jna-platform-?.?.?.*" /B') do (set FILE4=%%A)
set CLASSPATH=.;%JAR_BASE%%FILE1%;%JAR_BASE%%FILE2%;%JAR_BASE%%FILE3%;%JAR_BASE%%FILE4%;%~dp0\bin
@echo on
java ModuleNameComp -f rtc.conf %*
pause;
</pre>
整備 #4378 (解決): javaのRTC実行用シェルスクリプトにcpの設定を追加。
https://www.openrtm.org/redmine/issues/4378
2017-11-29T01:32:37Z
katami
<p>Java版のRELEASE_1_2_0から、実行時にjna、jna-platformというライブラリを使う機能が実装されています。<br />そのため、RTC実行用シェルスクリプトにこれらのライブラリのクラスパスを追加する必要があります。<br />これらのライブラリは、同梱され /usr/lib/x86_64-linux-gnu/openrtm-1.2/jar にインストールされます。<br />RTC実行用シェルスクリプトにクラスパス設定の処理を追加願います。<br />また、実行時にrtc.confや<RTC>名.confが読み込めないですので併せて修正願います。<br />以下に実行用のシェルスクリプトを示します。RTC名は"ModuleName"です。<br />BOM無しでお願いします。<br /><pre>
#!/bin/sh
get_classpath()
{
FILE1=`ls ${RTM_JAVA_ROOT}/jar/OpenRTM*`
FILE2=`ls ${RTM_JAVA_ROOT}/jar/commons-cli*`
FILE3=`ls ${RTM_JAVA_ROOT}/jar/jna-?.?.?.jar`
FILE4=`ls ${RTM_JAVA_ROOT}/jar/jna-platform-*.jar`
CLASSPATH=.:$FILE1:$FILE2:$FILE3:$FILE4:${RTM_JAVA_ROOT}/bin:`dirname $0`/bin
echo ${CLASSPATH}
}
if test "x$RTM_JAVA_ROOT" = "x" ; then
echo "Environment variable RTM_JAVA_ROOT is not set."
echo "Please specify the OpenRTM-aist installation directory."
echo "Abort."
exit 1
fi
export CLASSPATH=`get_classpath`
java ModuleNameComp -f rtc.conf $*
</pre></p>
整備 #4377 (解決): javaのRTCで生成されるビルド用ファイル(build_<RTC名>.xml)をantで実行するとワーニングがでる
https://www.openrtm.org/redmine/issues/4377
2017-11-29T01:15:37Z
katami
<p>javaのRTCで生成されるビルド用ファイル(build_<RTC名>.xml)をantで実行するとワーニングがでます。<br />ANT1.8からincludeantruntimeの属性のデフォルト値がtrueに変更になったようです。(ANT1.8以前はfalse)<br />以下はビルド時のワーニングです。<br /><pre>
$ ant -f build_ModuleName.xml
Buildfile: /home/t-katami/workspace/jtest004/build_ModuleName.xml
mkdir:
[mkdir] Created dir: /home/t-katami/workspace/jtest004/bin
compile:
[javac] /home/t-katami/workspace/jtest004/build_ModuleName.xml:20: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 3 source files to /home/t-katami/workspace/jtest004/bin
BUILD SUCCESSFUL
Total time: 0 seconds
</pre><br />build_<RTC名>.xmlの javaタスクに includeantruntime="false"の属性を追加願います。<br /><pre><code class="xml syntaxhl"><span class="CodeRay"><span class="comment"><!--
# -*- Buildfile -*-
# @file build_ModuleName.xml
# @brief RTComponent makefile for "ModuleName component"
# @date $Date$
#
# $Id$
--></span>
<span class="tag"><project</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">ModuleName</span><span class="delimiter">"</span></span> <span class="attribute-name">default</span>=<span class="string"><span class="delimiter">"</span><span class="content">compile</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">source</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="content">src</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"><property</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">dest</span><span class="delimiter">"</span></span> <span class="attribute-name">value</span>=<span class="string"><span class="delimiter">"</span><span class="content">bin</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"><property</span> <span class="attribute-name">environment</span>=<span class="string"><span class="delimiter">"</span><span class="content">env</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"><target</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">mkdir</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><mkdir</span> <span class="attribute-name">dir</span>=<span class="string"><span class="delimiter">"</span><span class="content">${dest}</span><span class="delimiter">"</span></span> <span class="tag">/></span>
<span class="tag"></target></span>
<span class="tag"><target</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">compile</span><span class="delimiter">"</span></span> <span class="attribute-name">depends</span>=<span class="string"><span class="delimiter">"</span><span class="content">mkdir</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><javac</span> <span class="attribute-name">includeantruntime</span>=<span class="string"><span class="delimiter">"</span><span class="content">false</span><span class="delimiter">"</span></span> <span class="attribute-name">srcdir</span>=<span class="string"><span class="delimiter">"</span><span class="content">${source}</span><span class="delimiter">"</span></span> <span class="attribute-name">destdir</span>=<span class="string"><span class="delimiter">"</span><span class="content">${dest}</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><classpath></span>
<span class="tag"><fileset</span> <span class="attribute-name">dir</span>=<span class="string"><span class="delimiter">"</span><span class="content">${env.RTM_JAVA_ROOT}/jar</span><span class="delimiter">"</span></span><span class="tag">></span>
<span class="tag"><include</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">"</span><span class="content">*.jar</span><span class="delimiter">"</span></span><span class="tag">/></span>
<span class="tag"></fileset></span>
<span class="tag"></classpath></span>
<span class="tag"></javac></span>
<span class="tag"></target></span>
<span class="tag"></project></span>
</span></code></pre></p>
整備 #4376 (解決): javaの ソースコードとRTC実行用シェルスクリプト/バッチファイルのBOM無しに変更
https://www.openrtm.org/redmine/issues/4376
2017-11-29T00:56:24Z
katami
<a class="issue tracker-2 status-5 priority-4 priority-default closed" title="機能: RTC Builderが生成するソースファイルの文字コードを「BOM付UTF-8」にする (終了)" href="https://www.openrtm.org/redmine/issues/3898">#3898</a> に基づき、RTCBが生成するjavaのソースコードとRTC実行用シェルスクリプト/バッチファイルがBOM付きになりました。<br />BOM付きのため、ビルド時とRTC実行時にエラーが発生します。<br />以下のファイルをBOM無しにお願いします。
<ul>
<li><RTC名>Comp.java</li>
<li><RTC名>.java</li>
<li><RTC名>Impl.java</li>
<li><サービス型名> SVC_impl.java</li>
<li><RTC名>.sh</li>
<li><RTC名>.bat</li>
</ul>
<ins>エラーの内容</ins>
<ul>
<li>JavacがBOM付き対応していないため、ビルドエラーがでてしまいます。<br /><pre>
$ ant -f build_ModuleName.xml
Buildfile: /home/t-katami/workspace/jtest003/build_ModuleName.xml
mkdir:
compile:
[javac] Compiling 3 source files to /home/t-katami/workspace/jtest003/bin
[javac] /home/t-katami/workspace/jtest003/src/ModuleName.java:1: エラー: '\ufeff'は不正な文字です
[javac] // -*- Java -*-
[javac] ^
[javac] /home/t-katami/workspace/jtest003/src/ModuleName.java:9: エラー: class、interfaceまたはenumがありません
[javac] import jp.go.aist.rtm.RTC.Manager;
[javac] ^
[javac] /home/t-katami/workspace/jtest003/src/ModuleNameComp.java:1: エラー: '\ufeff'は不正な文字です
[javac] // -*- Java -*-
[javac] ^
[javac] /home/t-katami/workspace/jtest003/src/ModuleNameComp.java:10: エラー: class、interfaceまたはenumがありません
[javac] import jp.go.aist.rtm.RTC.Manager;
[javac] ^
[javac] /home/t-katami/workspace/jtest003/src/ModuleNameImpl.java:1: エラー: '\ufeff'は不正な文字です
[javac] // -*- Java -*-
[javac] ^
[javac] /home/t-katami/workspace/jtest003/src/ModuleNameImpl.java:11: エラー: class、interfaceまたはenumがありません
[javac] import jp.go.aist.rtm.RTC.DataFlowComponentBase;
[javac] ^
[javac] エラー6個
BUILD FAILED
/home/t-katami/workspace/jtest003/build_ModuleName.xml:20: Compile failed; see the compiler error output for details.
Total time: 0 seconds
</pre></li>
<li>RTC実行用シェルスクリプト/バッチファイルが実行時に先頭行でエラーが発生します。<br /><pre>
$ sh ./ModuleName.sh
./ModuleName.sh: 1: ./ModuleName.sh: #!/bin/sh: not found
</pre><pre>
>ModuleName.bat
>・ソset CLASSPATH=.;C:\Program Files\OpenRTM-aist\1.2.0\\jar\OpenRTM-aist-1.2.0.jar;C:\Program Files\OpenRTM-aist\1.2.0\\jar\commons-cli-1.1.jar
'・ソset' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
</pre></li>
</ul>
整備 #4204 (解決): テンプレートからCMakeポリシー「CMP0002」の定義を外す
https://www.openrtm.org/redmine/issues/4204
2017-09-26T01:22:37Z
n.kawauchi
n.kawauchi@aist.go.jp
<ul>
<li>このポリシーはCMake3.8.2以降では設定されておらず、現在の定義では赤字で警告がでるようになったため外して下さい<br /><pre>
cmake_minimum_required(VERSION 2.8)
cmake_policy(SET CMP0002 OLD) ←★この行
</pre></li>
<li>これを外しても、CMake2.8.12.2(Ubuntu14.04)とCMake3.9.3(Windows10)の環境で、既存RTCのcmake,ビルドが<br />通ることは確認しています</li>
</ul>
<ul>
<li>この定義は、ImageProcessingのソースを整備した際に"doxygen_doc"と"uninstall"が各RTCに存在するため、重複メッセージが<br />出ないようにとこのポリシーを定義しました</li>
<li>ImageProcessingで整備したdeb/rpmパッケージ作成用定義をテンプレートに反映させる際に追加されたものです</li>
</ul>