Difference between revisions of "Get source and compile/ja"

From Second Life Wiki
Jump to navigation Jump to search
(Added 1.19.1 warning)
m (Switch VCS to GitHub)
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Languages}}
{{multi-lang|Get source and compile|ja}}
{{1.19.1 Warning}}
{{OSWikiContribBox}}
{{OSWikiContribBox}}


開発者として参加するつもりがなくても、ソースをダウンロードしてコンパイルしてみると、何か問題に気づくかもしれません。ダウンロードしたバージョンが特定の環境でうまくコンパイルできなければ、バグとして登録してください。
この情報は、ビューアのソースコードを使って何かしたい人に向けて書かれたものです。


= ソースを入手する =
== Snowstorm プロジェクト ==


== アーカイブ形式 (ZIP または Tar) のダウンロード ==
こちらにあるのが、最新のビューアのソースコードとなります。
ビューアのソースコードは、オープンソースのリポジトリサイト、[https://github.com/secondlife GitHub] の [https://en.wikipedia.org/wiki/Git Git]リポジトリにあります。そこにはたくさんのバージョンがありますが、多くの人が関心があるのは、おそらく以下のバージョンでしょう。


リンデンラボでは、過去から最新までのソースを、アーカイブ形式でダウンロードできるようにしています。詳しくは[[Source downloads|ソースのダウンロード]]を見てください。
* [https://github.com/secondlife/viewer Second Life Viewer]


== バージョン管理レポジトリ ==
普通の Web ブラウザでソースコードをブラウズすることもできますし、パソコンにダウンロードすることもできますし、Mercurial を使って好きなように操作することもできます。


リンデンラボでは、バージョン管理レポジトリも提供しています。また、''非公式の''レポジトリも、いくつか存在します。詳しくは[[version control repository|バージョン管理レポジトリ]]や[[source version control]]を見てください。
Viewer-Development ブランチの面白い特徴の一つに、Linden の担当者がバグフィックスや新しい機能を目の前で追加していくのを文字通り観察できる、というのがあります。


= コンパイルする =
それ以外にソースコードをブラウズするやり方として、[http://dimentox.com/snowstorm/ Doxygen] を使う方法があります。この方法では、UML ダイアグラムも参照することができます。
 
必ず [[Creating a version control repository]] をご一読ください。
 
=== バージョン管理 ===
 
ビューアの開発には Gitバージョン管理システムを利用しています。現在のリリースのリポジトリをクローンするには、以下のコマンドを使ってください。
 
<nowiki>git clone https://github.com/secondlife/viewer.git</nowiki>
 
== コンパイル ==


プラットフォームごとのコンパイル手順が、以下のページに記載されています。
プラットフォームごとのコンパイル手順が、以下のページに記載されています。
* [[Microsoft Visual Studio|Microsoft Windowsの場合]]
* [[Microsoft Windows Builds/ja|Microsoft Windowsの場合]]
* [[Compiling the viewer (Mac OS X)/ja|Mac OS Xの場合]]
* [[Compiling the viewer (Mac OS X)/ja|Mac OS Xの場合]]
* [[Compiling the viewer (Linux)|Linuxの場合]]
* [[Compiling the viewer (Linux)|Linuxの場合]]
* [[Cross compiling the viewer (i686-mingw32)|Linuxの場合 (ただしMicrosoft Windows用にクロスコンパイル)]]
* [[Compiling the viewer (FreeBSD)|FreeBSDの場合]]


= 実行する際のヒント =
=== 補足 ===
== チャネルとバージョンについて ==
 
バージョンをグループ分けしたチャネルというものがあります。リンデン社では、First Lookビューアのバージョンチェックとアップデートの管理を、リリース版のビューアやリリース候補版のビューアのアップデート管理と独立に行なうためにチャネルを利用しています。
*  [[Common compilation problems]] ビルドでエラーが発生した場合はこちら
*  [[Improving compilation time]] もっと高速にコンンパイルする方法
*  [[LLMozLib2]] LLMozLib2 のビルド
 
=== Autobuild ===
[[Autobuild]] は、ビューアからサードパーティーのライブラリまで、あらゆるものを管理/ビルドする Linden Lab の新しいフレームワークです。
 
手順の説明:
* [[Building the Viewer with Autobuild/ja]]
* [[Build_3rd_Party_lib_with_Autobuild]]


自分でコンパイルしたビューアを起動したときに強制アップデートを伝えるメッセージが出ても、あわてる必要はありません。あなたの努力が無駄になるわけではないのです。普通は、あなたが行なった改造をテストするために、新しいバージョンのソースに対して同じ改造をやり直す必要はないのです。チャネルが役に立ちます。
== 実行する際のヒント ==


ログインするときに、チャネル名とバージョンの組み合わせが、サーバ側にある一覧に対してチェックされます。チャネルごとに、特定のバージョンのログインが許可されたり、ブロックされたりします。危険なビューア (セキュリティ問題があるもの)、非互換なビューア (サーバとの通信方式の基本部分が変更になったもの)、サポートが打ち切られたビューア (古すぎてサポートの提供が割に合わないとリンデン社が判断したもの)、これらはブロックされます。リリース候補版やFirst Look版などのテスト版の場合には、リンデン社は最新版だけをテストして欲しいと思っているので最新版でないものは原則としてすべてブロックされます。
=== チャネルとバージョンについて ===


このチェックの仕組みは通常の利用者やリンデン社の従業員の便宜のために用意されていますが、多くの場合、技術的に必要不可欠ではありません。そこで、チャネルとバージョンの組が一覧にない場合、そのビューアのログインは許可されます。
チャネルというものは、単にバージョンをグループ化したものです。Linden Lab ではチャネルを使い、 Project、Beta、Release Vewers のそれぞれに対してアップデートの追跡/提供を行っています。


そこで、サーバにログインをブロックされたくない場合には、単にチャネル名を何か別の、例えば "My Most Excellent SL Viewer" などに変更してしまえば、ブロックされることはなくなります。
自分でコンパイルしたビューアを起動したときに強制アップデートを伝えるメッセージが出ても、あわてる必要はありません。自分が作ったものは全く消えません。(通常は)新しいソースリリースに対して変更を適用しなくても、自分のソースコードをテストできます。ここで、チャネルの出番です。


チャネルの変更は、ソース上で行なうこともできますし、実行時にコマンドのパラメタで行なうこともできます。ソース上で行なう方法の説明については[[Channel and Version Requirements#Setting a Channel and Version for an Open Source Viewer|Setting a Channel and Version for an Open Source Viewer]]を見てください。
ログインするときに、チャネル名とバージョンの組み合わせが、リストと照合されます。チャネルごとに、特定のバージョンのログインが許可されたり、ブロックされたりします。ブロックされるビューアは、危険なビューア (セキュリティ問題があるもの)、非互換なビューア (プロトコルが著しく変更されたもの)、サポートが打ち切られたビューア (古すぎてサポートの提供が割に合わないとリンデン社が判断したもの)、(ここで最も関係あるものとして)テストチャネルにあるビューア(Release Candidate, First Look) です。Linden Lab は、最新バージョンのビューアで生成されるデータだけをテストしたいと考えています。


コマンドのパラメタで変更したければ、次のパラメタを追加してください。
[[Channel_and_Version_Requirements#Setting_a_Channel_and_Version_for_an_Open_Source_Viewer | Setting a Channel and Version for an Open Source Viewer]] に、ソースコードでこれを行う方法が説明されています。
-channel "My Most Excellent SL Viewer"
Microsoft Windowsでは、このパラメタをビューアの起動に使うデスクトップアイコンに組み込んでしまうこともできます。デスクトップアイコンのショートカットのプロパティを編集して、「リンク先」に上のパラメタを追加してください。


MacOS Xではアプリケーションバンドル (.appディレクトリ) に入っている arguments.txtに上のパラメタを記述することで、LinuxではSecond Lifeのインストールディレクトリにあるgridargs.datに記述することで、やはりこのパラメタが毎回有効になるようにできます。
[[Channel and Version Requirements]] に、Linden Lab が Second Life でチャネルとバージョンを扱う際の公式なポリシーが詳細に説明されています。


リンデン社のSecond Lifeにおけるチャネルとバージョンの管理方法についての公式の見解と詳細な解説については、[[Channel and Version Requirements]]を見てください。
The Third Party Viewer Policy で、全てのビューアには一意のチャネル名を付けなければならない旨が規定されています。詳細は [http://secondlife.com/corporate/tpv.php こちら]を参照してください。


ただし、自分でコンパイルしたビューアのバイナリを配布するつもりであれば、チャネルの変更を (例えばソースを編集することによって) 永続化することは勧められません。それは、もしもそうしてしまうと、将来セキュリティ上の問題が発見されたとしてもグリッドによってバージョンのチェックが行なわれないために、あなたがコンパイルしたビューアを受け取った人が危険なバージョンのビューアをずっと使い続けてしまう恐れがあるからです。
[[Category:Compiling viewer]]

Latest revision as of 13:47, 17 November 2022

この情報は、ビューアのソースコードを使って何かしたい人に向けて書かれたものです。

Snowstorm プロジェクト

こちらにあるのが、最新のビューアのソースコードとなります。 ビューアのソースコードは、オープンソースのリポジトリサイト、GitHubGitリポジトリにあります。そこにはたくさんのバージョンがありますが、多くの人が関心があるのは、おそらく以下のバージョンでしょう。

普通の Web ブラウザでソースコードをブラウズすることもできますし、パソコンにダウンロードすることもできますし、Mercurial を使って好きなように操作することもできます。

Viewer-Development ブランチの面白い特徴の一つに、Linden の担当者がバグフィックスや新しい機能を目の前で追加していくのを文字通り観察できる、というのがあります。

それ以外にソースコードをブラウズするやり方として、Doxygen を使う方法があります。この方法では、UML ダイアグラムも参照することができます。

必ず Creating a version control repository をご一読ください。

バージョン管理

ビューアの開発には Gitバージョン管理システムを利用しています。現在のリリースのリポジトリをクローンするには、以下のコマンドを使ってください。

git clone https://github.com/secondlife/viewer.git

コンパイル

プラットフォームごとのコンパイル手順が、以下のページに記載されています。

補足

Autobuild

Autobuild は、ビューアからサードパーティーのライブラリまで、あらゆるものを管理/ビルドする Linden Lab の新しいフレームワークです。

手順の説明:

実行する際のヒント

チャネルとバージョンについて

チャネルというものは、単にバージョンをグループ化したものです。Linden Lab ではチャネルを使い、 Project、Beta、Release Vewers のそれぞれに対してアップデートの追跡/提供を行っています。

自分でコンパイルしたビューアを起動したときに強制アップデートを伝えるメッセージが出ても、あわてる必要はありません。自分が作ったものは全く消えません。(通常は)新しいソースリリースに対して変更を適用しなくても、自分のソースコードをテストできます。ここで、チャネルの出番です。

ログインするときに、チャネル名とバージョンの組み合わせが、リストと照合されます。チャネルごとに、特定のバージョンのログインが許可されたり、ブロックされたりします。ブロックされるビューアは、危険なビューア (セキュリティ問題があるもの)、非互換なビューア (プロトコルが著しく変更されたもの)、サポートが打ち切られたビューア (古すぎてサポートの提供が割に合わないとリンデン社が判断したもの)、(ここで最も関係あるものとして)テストチャネルにあるビューア(Release Candidate, First Look) です。Linden Lab は、最新バージョンのビューアで生成されるデータだけをテストしたいと考えています。

Setting a Channel and Version for an Open Source Viewer に、ソースコードでこれを行う方法が説明されています。

Channel and Version Requirements に、Linden Lab が Second Life でチャネルとバージョンを扱う際の公式なポリシーが詳細に説明されています。

The Third Party Viewer Policy で、全てのビューアには一意のチャネル名を付けなければならない旨が規定されています。詳細は こちらを参照してください。