2021年9月26日日曜日

Sequelerのebuildファイル(Gentoo用パッケージ)を作った

SequelerというLinux用のDBクライアントがあります。名前が似ていますがmacOS用のSequel ProとかSequel Aceとは別物です。

Linux用のツールですが、Gentoo用のリポジトリーに入っていなかったので自前でebuildファイルを作りました

サクッと作って終わり!というわけではなかったので、ちょっと苦労話でも語らせてもらいます。興味のない方はebuildファイルだけパクってトンズラこいても大丈夫です。

依存ライブラリーは公式ドキュメントの情報が不正確だった

この記事を執筆時点の公式ドキュメントによると、依存ライブラリーは以下の通り。


とりあえずこれらのライブラリーをそのまま導入してビルドしてみると、こんなエラーメッセージが出てビルドに失敗しました。

error: The name `AccelLabel' does not exist in the context of `Granite'
        button.add (new Granite.AccelLabel (label, accels));

よくわからんけどGraniteとかいうのがおかしいのかな、そういえば依存ライブラリーにGraniteってあったな・・・と思いつつGraniteのページを確認。ほーん、elementary OSで使ってるウィジェットなのね。そういえばPantheonデスクトップ環境もちょっと気になってるんだよなぁ。Gentooの公式リポジトリーからインストールできるようになったら使ってみたい。

閑話休題。Graniteのissueを見ても特にそれらしいものは挙がっていないように見えます。ちゃんとAccelLabelとかいうウィジェットも存在してるっぽいし、どうも原因がわからん・・・

そういえばSequelerのドキュメントにGraniteはv5.2以上が必要って書いてあったなーと思って、Granite v5.2の中身を見てみると、AccelLabelがないではありませんか。

試しにGranite v5.3をインストールし直して再度ビルドすると、無事成功。Sequelerのissueに同じようなことを書いていた人がいたので、そこに追記&修正PRを作っておきました。現時点ではまだマージされていませんが、ドキュメントの修正だけなので気軽に待ちます。

libgdaがビルドできない

無事Sequelerのビルド・起動に成功したのでいざMariaDBサーバーに接続しようとしたところ、今度は接続エラーが発生。

その時のエラーメッセージは忘れましたが、調べてみるとlibgdaでMySQLやMariaDBを使うにはmysqlフラグが、PostgreSQLを使うにはpostgreフラグが必要のようです。

ならばとmysqlフラグを立てて再度libgdaをビルドしたところ、今度は「"my_bool"が存在しない」という大量のエラーが。

この不具合はGentoo's Bugzillaに登録されていて、5.2.8で一度修正されていたけど5.2.9でデグレが起きていたようです。ならばとこちらにも修正PRを投げて無事マージされました。

これで無事MariaDBサーバーに接続できるようになりました。動作も問題なさそうです。

ただし手元にPostgreSQLサーバーがないので、そちらの動作確認はできていません。

0 件のコメント:

コメントを投稿