GNOME パッケージガイドライン
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
Arch Linux では GNOME パッケージは特定の決まり事に従っています。
目次
ソース URL
このトピックには、公式リポジトリ と AUR の両方で GNOME パッケージによって使用される最も一般的なソース URL が含まれています。例として、公式リポジトリ [1] および AUR で GNOME パッケージを検索してください。
リリースされた tarball を使用する
リリースされた tarball をダウンロードする場合、次のソース配列を使用して https://download.gnome.org から入手できます。
source=("https://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz")
ここで、 $ {pkgver%。*} は、pkgver
のサフィックス (microパッケージ) を削除することにより、major minor パッケージバージョンを返します。) たとえば pkgver = 3.28.0の場合 $ {pkgver%。*} は 3.28 を返します。
Git リポジトリからのコミットの使用
もう1つの一般的な方法は、GNOME ソフトウェアのソースコードを git リポジトリから特定のコミットをソースとして使用することです。特定のコミットを設定する Pacman の機能 (PKGBUILD(5) § USING VCS SOURCES を参照) が PKGBUILD を最新の開発コミットに従わず、pkgver
フィールドを更新しないため、VCS パッケージとして分類されません。代わりに指定されたコミットハッシュのソース。
以下のテンプレートをご覧ください。
PKGBUILD
makedepends=(git) commit=hash_of_a_commit source=("git+https://gitlab.gnome.org/GNOME/$pkgname.git#commit=$_commit") md5sums=('SKIP') pkgver() { cd $pkgname git describe --tags | sed 's/-/+/g' }
hash_of_a_commit を必要な Gitのコミットハッシュに置き換えます。
ソースは git を使用してダウンロードされるため、他の VCS パッケージの場合と同様に、git が makedepends にあり、チェックサムが 'SKIP' に設定されている必要があります。 pkgver()
関数を使用することを強くお勧めします。そのため、提供されるコミットハッシュに応じて pkgver
を設定します。
Meson と GNU ビルドシステム
歴史的に、GNOME はアプリケーションを構築するために GNU ビルドシステム を使用していました。現在アクティブなアプリケーションがいくつかあり、まだ GNU Build System を使用している非アクティブなアプリケーションも多数ありますが、現在アクティブな GNOME アプリケーションのほとんどは Meson Build System に移行されました。
ほとんどの GNOME アプリケーションのパッケージ化ニーズに適合する手順については、Meson パッケージガイドライン を参照してください。
GConf スキーマ
一部の GNOME パッケージは GConf スキーマをインストールします。そのようなパッケージは gconfAUR に依存します。
Gconf スキーマはシステムの GConf データベースにインストールされますが、それは避けねばなりません。パッケージによっては ./configure
で --disable-schemas-install
スイッチを使えるようになっていますが、これが上手く機能することは稀です。その代わりに、gconftool-2 には GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
という変数が存在し、この変数が設定された場合、gconftool-2 はデータベースをアップデートしません。
スキーマファイルをインストールするパッケージを作成するときは、PKGBUILD のパッケージのインストールの段階で以下を使ってください:
make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install
.install
ファイルから gconfpkg
を実行してはいけません。gconfAUR=3.2.6-4 から GConf スキーマは pacman フックによって (GNOME パッケージのインストール・削除時に) 自動的にインストール・削除されます。
GSettings スキーマ
GSettings は GNOME アプリケーションで使用される現在のスキーマで、GUI ツール dconf または CLI ツール gsettings (glib2 によって提供されます) を使用してアクセス/読み取り/編集できます。依存関係としてすでにインストールされている可能性があります。) GSettings には、以前はパッケージャーの注意が必要でしたが、現在では介入は必要ありません。
いくつかの見解:
- GSettings を使用するアプリケーションは通常 GTK (gtk3 以降) に依存しているため、GSettings 関連の依存関係は通常すでに満たされています。
./configure
の--disable-schemas-compile
フラグは、package()
関数での GSettings データベースの再コンパイルを回避するために必要でしたが、現在は必要ありませんこれは、主にビルドシステムとして Meson を使用するアプリケーションの GNOME アプリケーションに適用されます。
Scrollkeeper ドキュメント
GNOME 2.20 から scrollkeeper を利用する必要はなくなりました。rarianAUR が直接 OMF ファイルを読み込みます。現在 Scrollkeeper-update はダミーになっています。makedepend に gnome-doc-utilsAUR>=0.11.2 を追加すること以外は何もしなくてかまいません。
./configure
から --disable-scrollkeeper
スイッチを使うことで無効化できます。
GTK アイコンキャッシュ
パッケージが hicolor アイコンテーマにアイコンをインストールする場合があります。パッケージを gtk-update-icon-cache に依存するようにしてください。
.install
ファイルから gtk-update-icon-cache
を実行してはいけません。gtk-update-icon-cache=3.20.3-2 からアイコンキャッシュは pacman フックによって自動的に更新されます。
.desktop ファイル
多くのパッケージは Freedesktop.org 互換の .desktop
ファイルをインストールして MimeType エントリを登録します。そのようなパッケージは desktop-file-utils を依存パッケージとする必要があります。
.install
ファイルから update-desktop-database
を実行してはいけません。desktop-file-utils=0.22-2 からデータベースは pacman フックによって自動的に更新されます。
.install ファイル
以前は glib-compile-schemas
, gtk-update-icon-cache
, update-desktop-database
などのコマンドを呼び出してキャッシュやデータベースをインストール・更新するために GNOME パッケージの多くで .install
ファイルが使われていました。pacman 5.0 になってフックが実装されてからはパッケージのインストール時に自動的にコマンドが実行されるため不要になりました。
同じコマンドが2回実行されてしまうのを防ぐため、.install
ファイルから上記のコマンドを削除するようにしてください。