HaikuPorts の使い方

Haiku OS にソフトを移植するプロジェクトが HaikuPorts です。ですが、移植ではなく最初から Haiku OS 用に書かれたソフトも管理しています。

HaikuPorts はソフトの情報やビルド方法を記載したレシピ群 haikuports とそのレシピを読み込んでビルドを行う haikuporter に分かれています。

HaikuPorts を利用した移植ソフトの管理やビルドを行う手順を説明します。

まず、レポジトリをクローンして初期設定を行います。

mkdir misc
cd misc
git clone --depth 1 https://github.com/haikuports/haikuporter.git
git clone --depth 1 https://github.com/haikuports/haikuports.git
cd haikupoter
cp haikuports-sample.conf /boot/home/config/settings/haikuports.conf
lpe ~/config/settings/haikuports.conf

haikuports.conf ファイルで HaikuPorts の設定を行います。この設定に従って haikuporter が実行されます。

TREE_PATH を合うように書き換えておいてください。

-TREE_PATH="/boot/home/haikuports"
+TREE_PATH="/boot/home/misc/haikuports"

x86_gcc2 環境で利用している場合、SECONDARY_TARGET_ARCHITECTURES を有効にします。

-#SECONDARY_TARGET_ARCHITECTURES="x86"
+SECONDARY_TARGET_ARCHITECTURES="x86"

行頭の # を外して SECONDARY_TARGET_ARCHITECTURES 有効にしておくと、GCC 7 などに互換性のあるレシピがビルドできるようになります。 SECONDARY_TARGET_ARCHITECTURES でビルドするには、許可されているレシピ名にアーキテクチャ名を以下のように繋げて指定します。

hp name_x86
# hp name # SECONDARY でない場合は _x86 が不要

haikuporter 実行用にエイリアスを設定しておきます。以下の内容を /boot/home/config/settings/profile に追加します。

alias hc="cd /boot/home/misc/haikuports"
alias hpd="/boot/home/misc/haikuporter/haikuporter -S -j1 --get-dependencies --no-source-packages"
alias hpu="/boot/home/misc/haikuporter/haikuporter -S -j1 --no-source-packages"
alias hp="/boot/home/misc/haikuporter/haikuporter -S -j1 --no-source-packages --no-repository-update"

ソースパッケージを作成、利用する機会はあまりないため、--no-source-packages を指定しています。 ビルドごとにレポジトリの読み込みが行われると時間がかかるため --no-repository-update を指定しています。 しかし、--no-repository-update をいつも利用していると BUILD_PREREQUIRES などの変更が適用されないことがあります。 レシピを変更したときには --no-repository-update を付けないコマンドを使用してください。

ターミナルを起動して以下のコマンドを実行します。

hpd

最初は依存関係やレシピのチェックが行われるため少し時間がかかります。あとは hp コマンドを使用して更新を避けます。時々 hpd を実行してあげてください。

レシピのビルドは次のようにして行います。recipe_name にビルドしたいレシピ名を指定します。複数のレシピを同時に指定することもできます。

hp recipe_name

環境が x86_gcc2 (GCC 2.95) で x86 (GCC 7) に互換性のあるレシピをビルドするときは、レシピ名に _x86 を繋げて指定します。

hp recipe_name_x86

このとき、haikuports.conf ファイルの SECONDARY_TARGET_ARCHITECTURES で許可されていなければレシピが見つからないエラーが出ます。 前出の方法で有効にしてください。 また、レシピの SECONDARY_ARCHITECTURES で指定がなければ、互換性が無いとしてビルドできません。

haikuporter にはさまざまなオプションがあります。以下のようにしてオプション一覧を参照できます。

hp --help

ビルドに成功するとパッケージが haikuports/packages に出力されます。HaikuDepot や pkgman でインストールできます。