「GNOME パッケージガイドライン」の版間の差分
(→Git リポジトリからのコミットの使用: 同期) |
(→Git リポジトリからのコミットの使用: 同期) |
||
| (同じ利用者による、間の1版が非表示) | |||
| 23行目: | 23行目: | ||
もう1つの一般的な方法は、GNOME ソフトウェアのソースコードを git リポジトリから特定のコミットをソースとして使用することです。特定のコミットを設定する Pacman の機能 ({{man|5|PKGBUILD|USING VCS SOURCES}} を参照) により PKGBUILD は最新の開発コミットに従わず、代わりに指定されたコミットハッシュからのソースを使用して {{ic|pkgver}} フィールドを更新しないため、VCS パッケージとして分類されません。 |
もう1つの一般的な方法は、GNOME ソフトウェアのソースコードを git リポジトリから特定のコミットをソースとして使用することです。特定のコミットを設定する Pacman の機能 ({{man|5|PKGBUILD|USING VCS SOURCES}} を参照) により PKGBUILD は最新の開発コミットに従わず、代わりに指定されたコミットハッシュからのソースを使用して {{ic|pkgver}} フィールドを更新しないため、VCS パッケージとして分類されません。 |
||
| − | 以下のテンプレートを参照してください |
+ | 以下のテンプレートを参照してください: |
{{hc|1=PKGBUILD|2= |
{{hc|1=PKGBUILD|2= |
||
| + | url="<nowiki>https://gitlab.gnome.org/GNOME/$pkgname</nowiki>" |
||
makedepends=(git) |
makedepends=(git) |
||
| − | + | _commit=''hash_of_a_commit'' # tags/''X.Y.Z'' <nowiki> |
|
| − | source=("git+ |
+ | source=("git+${url}.git#commit=$_commit") |
md5sums=('SKIP') |
md5sums=('SKIP') |
||
| 96行目: | 97行目: | ||
{{Note| |
{{Note| |
||
| − | * {{Pkg|desktop-file-utils}}=0.22- 以降、データベースは [[Pacman#フック|pacman フック]] 経由で自動的に更新されるため、.install ファイルで ''update-desktop-database'' を呼び出さないでください。 |
+ | * {{Pkg|desktop-file-utils}}=0.22-2 以降、データベースは [[Pacman#フック|pacman フック]] 経由で自動的に更新されるため、.install ファイルで ''update-desktop-database'' を呼び出さないでください。 |
* この依存関係は {{Pkg|gtk4}} などのパッケージによって満たされるため、パッケージは {{Pkg|desktop-file-utils}} に依存する必要は ''ありません''。 |
* この依存関係は {{Pkg|gtk4}} などのパッケージによって満たされるため、パッケージは {{Pkg|desktop-file-utils}} に依存する必要は ''ありません''。 |
||
}} |
}} |
||
2025年2月10日 (月) 02:12時点における最新版
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
GNOME パッケージは通常、2 つのソース URL スキームに従います。GNOME の FTP サーバーに保存されているリリース済みの tarball と、ソフトウェアの Git リポジトリ内の特定のコミットです。
リリースされた 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
url="https://gitlab.gnome.org/GNOME/$pkgname"
makedepends=(git)
_commit=hash_of_a_commit # tags/X.Y.Z
source=("git+${url}.git#commit=$_commit")
md5sums=('SKIP')
pkgver() {
cd $pkgname
git describe --tags | sed 's/-/+/g'
}
hash_of_a_commit を必要な Git コミットハッシュに置き換え、パッケージ化するパッケージのニーズに合わせて pkgver() ステートメントを置き換えます (VCS パッケージガイドライン#Git を参照)
ソースは git を使用してダウンロードされるため、他の VCS パッケージの場合と同様に、git が makedepends にあり、チェックサムが 'SKIP' に設定されている必要があります。 pkgver() 関数を使用することを強くお勧めします。そのため、提供されるコミットハッシュに応じて pkgver を設定します。
Meson と GNU ビルドシステム
歴史的に、GNOME はアプリケーションを構築するために GNU ビルドシステム を使用していました。現在アクティブなアプリケーションがいくつかあり、まだ GNU Build System を使用している非アクティブなアプリケーションも多数ありますが、現在アクティブな GNOME アプリケーションのほとんどは Meson Build System に移行されました。
ほとんどの GNOME アプリケーションのパッケージ化ニーズに適合する手順については、Meson パッケージガイドライン を参照してください。
GSettings スキーマ
GSettings は GNOME アプリケーションで使用される現在のスキーマで、GUI ツール dconf または CLI ツール gsettings (glib2 によって提供されます) を使用してアクセス/読み取り/編集できます。依存関係としてすでにインストールされている可能性があります。) GSettings には、以前はパッケージャーの注意が必要でしたが、現在では介入は必要ありません。
いくつかの見解:
- GSettings を使用するアプリケーションは通常 GTK (gtk3 以降) に依存しているため、GSettings 関連の依存関係は通常すでに満たされています。
./configureの--disable-schemas-compileフラグは、package()関数での GSettings データベースの再コンパイルを回避するために必要でしたが、現在は必要ありませんこれは、主にビルドシステムとして Meson を使用するアプリケーションの GNOME アプリケーションに適用されます。
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
PKGBUILD の package() 関数
Scrollkeeper ドキュメント
現在、GNOME アプリケーションは ScrollKeeper を使用していませんが、そのドキュメントを備えた GTK2 ベースのアプリケーションに遭遇する可能性があります。
GNOME 2.20 から scrollkeeper を利用する必要はなくなりました。rarianAUR が直接 OMF ファイルを読み込みます。現在 Scrollkeeper-update はダミーになっています。唯一の要件は、makedepends 配列に gnome-doc-utilsAUR を含めることです。
./configure から --disable-scrollkeeper スイッチを使うことで無効化できます。
GTK アイコンキャッシュ
多くのグラフィカル GNOME アプリケーションはシステムにアイコンをインストールし、それらのアイコンは gtk-update-icon-cache ツールを介してアイコンキャッシュに含まれます。アイコンが追加または削除されるたびに、このツールを使用してキャッシュが更新されます。
.desktop ファイル
多くのパッケージは、Freedesktop.org と互換性のある .desktop ファイルをインストールし、そのファイルに MimeType エントリを登録します。これらの情報はデータベースに保存され、追加または削除されるたびに更新する必要があります。これは update-desktop-database ツールの機能です。
AppStream およびメタ情報ファイル
他の多くのアプリケーションと同様、ほとんどの GNOME アプリケーションは Freedesktop.org の 仕様 に準拠しており、アプリケーションの説明がアプリケーションセンターに表示されるようにメタ情報ファイルを提供しています。gnome-software や Flathub など。
GNOME アプリケーションは通常、check() 関数で meson test が呼び出されたときに appstream-util ツールを使用してメタ情報ファイルを検証します。appstream-glib がインストールされていない場合、この特定の検証が実行されなくなるだけです (つまり、エラーが出てもビルドプロセスを中断しません)
次の 2 つの方法を使用して、アプリケーションによって appstream-util が使用されていることを確認できます。
- 1 つ目の方法は、
grep -R appstream-utilを実行するか、data/meson.buildファイルを調べて、appstream-util のソースコードを調べることです。 - もう 1 つの方法は、ビルドプロセスを読み取り、次を探します。
Program appstream-util found: NO
appstream-glib を checkdepends 配列に追加してメタ情報ファイルを検証します。