「JHBuild」の版間の差分
(ページの作成:「Category:開発 en:JHBuild JHBuild はモジュール (ソースコードパッケージ) を自動的にダウンロード・コンパイルすることができ...」) |
Kusanaginoturugi (トーク | 投稿記録) (校正(でき・出来)) |
||
(2人の利用者による、間の6版が非表示) | |||
53行目: | 53行目: | ||
</nowiki>}} |
</nowiki>}} |
||
− | ''modules'' を編集してビルドしたいモジュールを指定してください。ほとんどの設定変数は [ |
+ | ''modules'' を編集してビルドしたいモジュールを指定してください。ほとんどの設定変数は [https://developer.gnome.org/jhbuild/unstable/config-reference.html GNOME JHBuild Manual] に説明が書いてあります。 |
== 使用方法 == |
== 使用方法 == |
||
63行目: | 63行目: | ||
$ jhbuild sysdeps |
$ jhbuild sysdeps |
||
− | ''sanitycheck'' も ''sysdeps'' と同じようなチェックを行いますが、[ |
+ | ''sanitycheck'' も ''sysdeps'' と同じようなチェックを行いますが、[https://lists.gnu.org/archive/html/automake/2016-05/msg00000.html automake の regexp エラー] が原因で automake 1.15 以前では automake のバージョンのチェックに失敗します ([http://git.savannah.gnu.org/gitweb/?p=automake.git;a=commit;h=13f00eb4493c217269b76614759e452d8302955e 既に次のバージョンの automake では修正済み])。 |
何かエラーが表示される場合、リポジトリから欠けているパッケージをインストールするか、あるいは ''bootstrap'' コマンドを実行します。ビルドに必要なツールがダウンロード・ビルド・インストールされます: |
何かエラーが表示される場合、リポジトリから欠けているパッケージをインストールするか、あるいは ''bootstrap'' コマンドを実行します。ビルドに必要なツールがダウンロード・ビルド・インストールされます: |
||
83行目: | 83行目: | ||
モジュールの生成を諦めた場合、そのモジュールに依存するモジュールも全て生成されなくなります。 |
モジュールの生成を諦めた場合、そのモジュールに依存するモジュールも全て生成されなくなります。 |
||
− | 壊れているパッケージを無視して、 |
+ | 壊れているパッケージを無視して、できるだけ多くのパッケージをビルドしたい場合、次を実行: |
$ yes 3 | jhbuild --try-checkout build |
$ yes 3 | jhbuild --try-checkout build |
||
158行目: | 158行目: | ||
* gitg は {{Pkg|gtkspell3}} を必要とします。 |
* gitg は {{Pkg|gtkspell3}} を必要とします。 |
||
− | * gtk-vnc は {{ |
+ | * gtk-vnc は {{Pkg|perl-text-csv}} を必要とします。 |
* latexila は {{AUR|lcov}} を必要とします。 |
* latexila は {{AUR|lcov}} を必要とします。 |
||
* pango は {{AUR|libpthread-stubs}} を必要とします。 |
* pango は {{AUR|libpthread-stubs}} を必要とします。 |
||
− | * totem-pl-parser は {{ |
+ | * totem-pl-parser は {{Pkg|libgcrypt15}} を必要とします。 |
* xf86-video-intel は {{Pkg|xorg-server-devel}} を必要とします。 |
* xf86-video-intel は {{Pkg|xorg-server-devel}} を必要とします。 |
||
− | * xwayland は {{Pkg|xtrans}}, {{Pkg|xcmiscproto}}, {{Pkg|bigreqsproto}} を必要とします。 |
+ | * xwayland は {{Pkg|xtrans}}, {{Pkg|xcmiscproto}}{{Broken package link|パッケージが存在しません}}, {{Pkg|bigreqsproto}}{{Broken package link|パッケージが存在しません}} を必要とします。 |
− | * zeitgeist は {{Pkg|python2-rdflib}} を必要とします。 |
+ | * zeitgeist は {{Pkg|python2-rdflib}}{{Broken package link|パッケージが存在しません}} を必要とします。 |
* wireless-tools は {{Pkg|wireless_tools}} を必要とします。 |
* wireless-tools は {{Pkg|wireless_tools}} を必要とします。 |
||
* xorg-macros は {{Pkg|xorg-util-macros}} を必要とします。 |
* xorg-macros は {{Pkg|xorg-util-macros}} を必要とします。 |
||
170行目: | 170行目: | ||
== 参照 == |
== 参照 == |
||
− | [ |
+ | [https://developer.gnome.org/jhbuild/ GNOME JHBuild Manual] |
2024年7月10日 (水) 20:24時点における最新版
JHBuild はモジュール (ソースコードパッケージ) を自動的にダウンロード・コンパイルすることができるツールです。様々なソース (CVS, Subversion, Git, Bazaar, tarball など) からモジュールを取得して、依存関係を解決します。プロジェクト全体をビルドするのではなく、ビルドしたい特定のモジュールを選択することも可能です。
元々 JHBuild は GNOME をビルドするために書かれましたが、今は他のプロジェクトでも使えるようになっています。
目次
インストール
jhbuildAUR パッケージをインストールしてください。安定版が入ります。
設定
JHBuild の設定ファイルは ~/.config/jhbuildrc
にあります。Python の構文を使って設定変数を定義します。以下は GNOME をビルドするときのファイル例です:
# -*- mode: python -*- # -*- coding: utf-8 -*- # edit this file to match your settings and copy it to ~/.config/jhbuildrc # if you have a GNOME git account, uncomment this line # repos['git.gnome.org'] = 'ssh://user@git.gnome.org/git/' # what module set should be used. The default can be found in # jhbuild/defaults.jhbuildrc, but can be any file in the modulesets directory # or a URL of a module set file on a web server. # moduleset = 'gnome-apps-3.12' # # A list of the modules to build. Defaults to the GNOME core and tested apps. # modules = [ 'meta-gnome-core', 'meta-gnome-apps-tested' ] # Or to build the old GNOME 2.32: # moduleset = 'gnome2/gnome-2.32' # modules = ['meta-gnome-desktop'] # what directory should the source be checked out to? checkoutroot = os.path.expanduser('~/checkout/gnome') # the prefix to configure/install modules to (must have write access) prefix = '/opt/gnome' # custom CFLAGS / environment pieces for the build # os.environ['CFLAGS'] = '-Wall -g -O0' # extra arguments to pass to all autogen.sh scripts # to speed up builds of GNOME, try '--disable-static --disable-gtk-doc' #autogenargs='' # On multiprocessor systems setting makeargs to '-j2' may improve compilation # time. Be aware that not all modules compile correctly with '-j2'. # Set makeargs to 'V=1' for verbose build output. #makeargs = '-j2'
modules を編集してビルドしたいモジュールを指定してください。ほとんどの設定変数は GNOME JHBuild Manual に説明が書いてあります。
使用方法
必要ツールのインストール
sysdeps を実行することで JHBuild は必要なツールがインストールされているかどうかチェックします:
$ jhbuild sysdeps
sanitycheck も sysdeps と同じようなチェックを行いますが、automake の regexp エラー が原因で automake 1.15 以前では automake のバージョンのチェックに失敗します (既に次のバージョンの automake では修正済み)。
何かエラーが表示される場合、リポジトリから欠けているパッケージをインストールするか、あるいは bootstrap コマンドを実行します。ビルドに必要なツールがダウンロード・ビルド・インストールされます:
$ jhbuild bootstrap
ビルド
設定ファイルに記述したモジュールを全てビルドしたい場合、build コマンドを実行:
$ jhbuild build
JHBuild は各モジュールのダウンロード・configure・コンパイル・インストールを実行します。詳しくは次を参照:
$ jhbuild help
ビルド中にエラーが発生した場合、JHBuild は何をすべきかメニューを表示します。シェルを開いてエラーを修正したり、ビルドを再実行したり、モジュールのビルドを諦めたり、あるいはエラーを無視して続行することが選べます。大抵の場合、シェルを開いて makefile や設定ファイルを確認すると良いでしょう。例えばビルドエラーが起こったときは、手動で make
を実行してシェルからエラーを確認できます。
モジュールの生成を諦めた場合、そのモジュールに依存するモジュールも全て生成されなくなります。
壊れているパッケージを無視して、できるだけ多くのパッケージをビルドしたい場合、次を実行:
$ yes 3 | jhbuild --try-checkout build
トラブルシューティング
Python の問題
JHBuild を使わずにスクラッチからビルド、あるいは JHBuild シェルでビルド
スクラッチからビルドする場合、以下のように autogen.sh を実行する必要があります:
$ PYTHON=/usr/bin/python2 ./autogen.sh
そして ~/.config/jhbuildrc
に PYTHON 環境変数を設定してください:
os.environ['PYTHON'] = '/usr/bin/python2'
itstool が Python モジュールを認識できない
[4] Start shell
を選択して次を実行:
$ sed -ir 's/| python /| python2 /' configure
それからシェルを exit して [1] Rerun phase configure
を選択してください。詳しくは このマージリクエスト を参照。
pkg-config の問題
PKG_CONFIG_PATH
にある .pc ファイルのどれかが誤っていると、JHBuild はインストールされている .pc ファイルを全て検出することができず、.pc ファイルが存在しないとエラーを吐きます。jhbuild sysdeps
の出力を確認してください。問題のある .pc ファイルに関するメッセージがあるはずです。
gnome-devel-docs がビルドできない
[4] Start shell
を選択して以下を実行:
$ git revert --no-edit 9ba0d959
そして、シェルを終了してから [1] Rerun phase build
を選択してください。詳しくは このバグレポート を参照。
pango がビルドできない
cairo.h が存在しないというエラーでビルドが失敗する場合、[4]shell を開いて pango/pangocairo.h
を編集します。以下の行を:
#define <cairo.h>
以下のように置き換えてください:
#define <cairo/cairo.h>
geary がビルドできない
以下のエラーメッセージが表示される場合:
[ 78%] Generating webkitgtk-3.0.vapi error: /home/rffontenelle/jhbuild/install/share/gir-1.0/WebKit-3.0.gir not found Generation failed: 1 error(s), 0 warning(s) make[2]: *** [src/CMakeFiles/geary.dir/build.make:1277: src/webkitgtk-3.0.vapi] Error 1 make[1]: *** [CMakeFiles/Makefile2:798: src/CMakeFiles/geary.dir/all] Error 2
geary が WebKitGTK (<= 2.4) に依存しているのに、JHBuild が WebKit2GTK (新しいバージョン) をコンパイルしてしまうのが原因です。これは既知の問題 (#741866 と メーリングリスト) で、Geary をポートする計画があります (#728002)。
他の壊れているモジュール
以下のモジュールはビルドができず、修正方法も存在しません (ぜひ調査してみてください):
- aisleriot—バグレポート (調査すればおそらく修正は容易)
- gegl
- gnome-boxes—バグレポート (修正方法が書かれています)
- gnome-photos
- gtksourceviewmm
- meta-gnome-apps-tested
- nemiver
- orca
- rygel
- valadoc
上記のリストには壊れているモジュールに依存しているモジュールも含まれています (問題のないモジュールもあるかもしれないが、未確認)。
特定のモジュールのビルドに必要なパッケージ
- gitg は gtkspell3 を必要とします。
- gtk-vnc は perl-text-csv を必要とします。
- latexila は lcovAUR を必要とします。
- pango は libpthread-stubsAUR を必要とします。
- totem-pl-parser は libgcrypt15 を必要とします。
- xf86-video-intel は xorg-server-devel を必要とします。
- xwayland は xtrans, xcmiscproto[リンク切れ: パッケージが存在しません], bigreqsproto[リンク切れ: パッケージが存在しません] を必要とします。
- zeitgeist は python2-rdflib[リンク切れ: パッケージが存在しません] を必要とします。
- wireless-tools は wireless_tools を必要とします。
- xorg-macros は xorg-util-macros を必要とします。