= CSS 3.2.x のビルド方法 = この文章を書き始めた2014/9/9現在、CSS の stable バージョンは 3.2.16 になっており、KEK内部で使用されている最新版 3.1.2 からかなりバージョンアップしている。[[br]] CSS 3.2.xでは色々な機能追加とバグフィックス、仕様変更がされていて、これを使ってみたいというユーザーも出てきているが、KEK版の正式リリースは色々な課題があり現時点では行われていない。[[br]] 現バージョン 3.1.2 との相違点や機能検証、今後のバージョンアップへの追従や独自機能の追加等の問題に対処するためにはKEK版CSSのbuild方法の習得が必須なので、試しにやってみた。 == build環境整備 == CSSをbuildする方法は、以前 Cosylabの中本さんが作成した[http://www-linac.kek.jp/cont/epics/css/int/building_css_kek_internal.pdf CSS building from source, and construction of download site(ビルド手順書)]に書いてあるので、そのまま実行してみることにする。 || OS || CentOS 6.5 x64 (vmware) || || Eclipse || [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-win32-x86_64.zip Eclipse 3.7.2(Indigo SR2) RCP and RAP Developers 64bit] || || JAVA || [http://www.oracle.com/technetwork/jp/java/javase/downloads/jdk7-downloads-1880260.html (linux_x64)] || || Delta Pack || [http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/download.php?dropFile=eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz eclipse-3.7.2-delta-pack 64bit] || || CSS Source || git から取得 || vmware player 上にCentOS6.5をインストールして適当なユーザーを作成し、そこにCSSのbuild用ディレクトリを作成。[[br]] === CSS ソースコードのダウンロード === CSS のソースコードは !GitHub で管理されているので、gitを使ってダウンロード。ちなみにリポジトリを見るだけなら[https://github.com/ControlSystemStudio/cs-studio ここ]にアクセスすれば見える。 {{{ [michkawa@localhost css]$ git clone https://github.com/ControlSystemStudio/cs-studio.git }}} しばらく時間がかかる(今回は30分ぐらい)が、終了すると cs-studioというディレクトリが作成される。[[br]] gitはこのままでは使えないので、チェックアウトする。 {{{ [michkawa@localhost css]$ cd cs-studio [michkawa@localhost cs-studio]$ git checkout --track origin/3.2.x [michkawa@localhost cs-studio]$ cd .. }}} === Eclipse 3.7.2(Indigo SR2) RCP and RAP Developers のダウンロード === [http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-win32-x86_64.zip ここ]からダウンロードして、展開。 {{{ [michkawa@localhost css]$ wget http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/indigo/SR2/eclipse-rcp-indigo-SR2-win32-x86_64.zip [michkawa@localhost css]$ tar zxvf eclipse-rcp-indigo-SR2-win32-x86_64.zip }}} eclipse というディレクトリが作成される。 === JDK1.7.0_u67 のダウンロード === JDK1.7.0_u67の'''tar.gz版'''をダウンロードしてくる。u67でなくてもいいので最新のJDK1.7を取ってくる。[[br]] wgetでは取ってこれないので、!Webブラウザ経由で[http://www.oracle.com/technetwork/jp/java/javase/downloads/jdk7-downloads-1880260.html ここ]から。 ダウンロードしたファイルを展開。 {{{ [michkawa@localhost css]$ tar zxvf jdk-7u67-linux-x64.tar.gz }}} jdk1.7.0_67 というディレクトリが作成される。 === Eclipse Delta Pack のインストール === delta packをダウンロードして、展開。 {{{ [michkawa@localhost css]$ wget http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/download.php?dropFile=eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz [michkawa@localhost css]$ unzip eclipse-3.7.2-delta-pack.zip -D ./delta }}} == build 開始 == 環境が整ったら、buildを開始するための設定を変更する。[[br]] [http://www-linac.kek.jp/cont/epics/css/int/building_css_kek_internal.pdf ビルド手順書]では{{{cs-studio/products/KEK/plugins/org.csstudio.kek.build}}}の設定を変更することになっているが、これはHeadless-Build用の設定なので後で設定。[[br]][[br]] まずは、Eclipse上でbuildできるように設定を変更する。 CSSのbuild方法はkayさんが書いた[http://cs-studio.sourceforge.net/docbook/css_book.pdf Control System Studio Guide For installers and maintainers of CS-Studio]の{{{Chapter 4. Compiling, Running, Debugging CSS}}}を参考にした。 === CSSのimport === まず、eclipseを起動してbuildに必要なパッケージをEclipseのprojectに取り込む。 {{{ [michkawa@localhost ~]$ cd css/eclipse [michkawa@localhost eclipse]$ ./eclipse }}} eclipseが起動したら適当なプロジェクトを作成し、そこにimportしていく。eclipseのメニューから{{{file->import}}}で importダイアログが表示されたら、General->Existing Projects into Workspaceを選択し、ImportProjectを表示。 Select root directory の Browse... ボタンでファイルダイアログを表示し、パッケージディレクトリを指定していく。[[br]] [[Image(eclipse-Import.png,250px)]] [[Image(eclipse-Import -2.png,250px)]] [[Image(eclipse-import_dirs.png,250px)]] この時、指定したディレクトリ内のパッケージを再帰的に検索してくれるが、パッケージ数が多くなりすぎると途中までしか表示されないので、featuresとpluginsが表示されるところを指定していくと大体大丈夫。[[br]] {{{cs-studio/applicationsとcs-studio/core}}}を全部と必要に応じて、{{{cs-studio/products}}}の{{{COMMON,CS-STUDIO,Core}}}以外の各研究所固有パッケージを追加していく。今回は全部入れた。 === build === eclipseでKEK版をbuildする場合には、{{{org.csstudio.kek.product}}}を使用する。[[br]] Package Explorerの{{{org.csstudio.kek.product}}}内を表示し、css-kek.productを開くと以下のような画面が表示されるので、[[br]] [[Image(eclipse-Plug-in Development - org.csstudio.kek.product-css-kek.product - Eclipse.png,600px)]] {{{Testing->Synchronize}}}を押下してから、{{{Exporting->clipse Product export wizard}}}を押下すると、Exportダイアログが表示される。[[br]] [[Image(eclipse-Export.png,250px)]] {{{Destination->Directory}}}に出力先のディレクトリを設定して、Finishを押下するとbuildが始まるが、開始早々にエラーになる。[[br]] [[Image(eclipse-Problem Occurred.png)]] この時のエラーは、'''{{{org.csstudio.kek.core.feature->org.csstudio.kek.product_3.2.0.qualifier}}}内で{{{org.csstudio.sns.startuphelper}}}が見つからない'''というもので、実際にPackage Explorerには{{{org.csstudio.sns.startuphelper}}}がなくなっている。どうやら、{{{org.csstudio.sns.startuphelper}}}は{{{org.csstudio.startup.helper}}}に変わったらしい。[[br]] 他の研究所にはまだ残骸が残っているが、KEK版はSNS版を元にしているのでそれに倣うとする。[[br]] {{{Package Explorer->org.csstudio.kek.product->plugin.xml}}}をクリックすると、以下の画面が表示される。[[br]] [[Image(eclipse-Plug-in Development - org.csstudio.kek.product-plugin.xml - Eclipse.png,600px)]] 赤×の箇所が問題なので、"Remove"で削除。"Add"を押下し、Plug-in Selectionダイアログが表示されたら、Select a Plug-in入力ボックスに"startup"と入力する。自動的に候補が絞り込まれるので、{{{org.csstudio.startup.helper}}}を選択して、"OK"することで、リストに追加される。[[br]] 再度、buildを実行すると、またエラー。今度は{{{org.csstudio.core.feature->org.csstudio.sns.startuphelper_0.0.0}}}と言われる。[[br]] [[Image(eclipse-Problem Occurred 2.png)]] {{{org.csstudio.core.feature -> feature.xml ->Plug-ins}}}を開いて同様に修正。 [[Image(eclipse-Plug-in Development - org.csstudio.kek.core.feature-feature.xml - Plug-ins.png,600px)]] 修正後、{{{Dependencies}}}タブで"Compute"ボタンを押下。[[br]] 再度、{{{org.csstudio.kek.product}}}の{{{css-kek.product}}}を開いて、buildを実行。[[br]] エラーが出たら再度問題箇所を修正して、buildを繰り返す。