hazkey-communityをビルド&Archパッケージ化してみた



前回記事の続きです。


AURからインストールした fcitx5-hazkey を使用中、エディタなど編集領域で選択・反転→コピペ しようとすると、

「あれ!?選択範囲が消える!」
「俺のメモ(駄文)どこいった!!??」
という挙動に遭遇。メモ(駄文)なんだけど消えたら結構困った。

おそらくバグだと思われる挙動。解決策として、フォーク版?の hazkey-community をビルドしてArch Linux用パッケージ(PKGBUILD)を作ることにしました。

本家の方にバグ報告を投げてもいいんだけど、制作者さん学生っぽいし忙しいのかな?とか考えると、開発がアクティブなコミュニティ版を利用させてもらうことにしました。制作者様ありがとうございます。

swift-bin にビルド時間がかかり、hazkey-comminy のビルド時間は数分で終わります。



1. 事前準備:swift-bin

ビルドにはSwiftが必要です。

AURから swift-bin をあらかじめインストールしておきましょう。
yay -S swift-bin
⏱ 時間の目安: swift-bin のビルド/インストールには、私の非力な2010年前後のPCで約10分かかりました。気長に待ちましょう。一度入れてしまえば次回からはビルドせず済みます。



2. PKGBUILDを作成

自分専用の PKGBUILD を錬成します。

今回は「自分が使えればヨシ!」のストイック仕様なのでバージョン適当・ハッシュチェック(SKIP)全部適当で、インストールまでできればよしというもの。ストイック仕様という言い方。私が今回ビルドしたバージョンはV2.40です。



⏱ CPU推論向けにビルド: 私の2010年製の非力なPCでは、GPU推論変換するととんでもなくカクついてまともに使用できません。CPU推論変換を有効にするため、以下 -DGGML_VULKAN=OFF をビルドコマンドに追記してあります。GPU自信ニキはOFFにする必要はありません。
touch PKGBUILD
mousepad PKGBUILD

# Maintainer: USER pkgname=hazkey-community pkgver=1.0.0 pkgrel=1 pkgdesc="Hazkey server and client (CPU inference)" arch=('x86_64') url="https://github.com/presire/hazkey-community" license=('MIT') depends=('fcitx5' 'qt6-base' 'protobuf' 'swift-bin') makedepends=('cmake' 'ninja' 'git' 'swift-bin' 'protobuf' 'qt6-tools') source=("git+https://github.com/presire/hazkey-community.git") sha256sums=('SKIP') prepare() { cd "$srcdir/hazkey-community" git submodule update --init --recursive } build() { cd "$srcdir/hazkey-community" mkdir -p build && cd build cmake -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \
        ## GPU推論 off -DGGML_VULKAN=OFF \ .. ninja -j $(nproc) } package() { cd "$srcdir/hazkey-community/build" DESTDIR="$pkgdir" ninja install }
cmake の最終行 .. は端末でポチポチやるのはいいんだけど、build(){}の記述でこのような書き方が良いのかは不明。ビルドは問題なく通りますけれども。


3. ビルド&インストール

既存のhazkeyはアンインストールしておきます。
sudo pacman -Rns hazkey-zenzai-model fcitx5-hazkey-bin
makepkg -si
⏱ ビルド時間: hazkey-community のビルド自体は約5分で爆速で完了します!


まとめ

無事にビルド&パッケージ化が完了し、右クリック反転コピペで選択文字が消滅する現象からも無事に解放されました。本当よくできてるよなぁ。制作者様重ねてありがとうございます。





コメント

item