aur パッケージの更新パッチをメンテナに送った話

arch linux の aur パッケージソフトに更新パッチを送ったら採用されていた話です。

概要

私が使っている arch linux という OS には aur というリポジトリ (パッケージ集のようなもの) があります。 簡単に言うとコミュニティが運営している無料のソフト集です。 ios で言う App Storeandroid でいう play store をコミュニティが管理していると考えるとわかりやすいかも?

rn.nyaomin.info

aur はユーザーの善意で運営が行われています。 そのため、特にマイナーなソフトではアップデートが停滞している場合があります。 もしくはメンテナが不在になり放置されている場合もあります。

私が愛用しているマイナーなソフトも更新が 4 ヶ月以上されていない状態でした。 公式サイトで windows 向けや linuxdebian, fedora 向けにアップデートが提供されています。 それらの linux 向けに提供されているアップデートを取得して自分で更新するという手もあります。 しかし、コミュニティへの貢献を考えるとやはり aur をアップデートする方が良いと考えました。

そこで、aur のビルドファイルである PKGBUILD を更新しメンテナにパッチ形式で送り、更新依頼を行いました。

結果は無事に採用され、更新されています。 これで私が書いた PKGBUILD ファイルが aur に流れてしまう自体になっています。

マイナーなソフトとはいえ自分の書いたファイルが流れて本当に大丈夫か不安になります。 普段はプログラムなど書く立場でなく、機械系の設計を行っている身なので妙なバグがないか心配です。

とはいえ、流れたものは仕方ないです。

今後、同じようなことが起こる可能性もあるので今回行ったことをまとめておきます。

更新依頼の流れ

aur ファイルは git clone を使い、ダウンロードできます。

該当ファイルの更新とテスト

今回の更新に該当するフィアルは .SRCINFOPKGBUILD です。 詳しい内容は書かないですが、この二つのファイルを更新状況に合わせて書き換えます。 大体は最初に作ってくれた人が書いているため、更新やバージョンに関する部分だけ書き換えれば良いです。

ファイルを更新した後は自分のテスト環境で動作の確認を行います。 この辺のやり方は人によると思います。 ちなみに私は自分のサブ PC で適当に動作テストしました。

aur アカウントの作成

aur でメンテナと直接連絡を取るためにはアカウント登録する必要があります。

aur アカウント登録

登録自体は簡単です。 ユーザー名とメールアドレスがあればだれでも登録できます。

aur にユーザー登録することにより、各アカウントの詳細を見ることができるようになります。 これで、パッケージメンテナのメールアドレスを知ることができます。

更新ファイルのパッチ化

メンテナに送るファイルは git の差分を patch ファイルにすると親切だと思います。 これは多分です。 私は patch にして送っています。

$ git format-patch -<n>

-<n> に数字を入れると最新から数えたコミットまでのパッチを作ってくれます。

$ git format-patch -1  # 最新のコミットを patch 化
$ git format-patch -2  # 1 つ前のコミットまでを patch 化

パッチを作った後は気合と度胸でメンテナに直接メールします。 英語でメールを送ると間違いないと思います。 アメリカ語はさっぱりなので deepl なんかに活躍してもらいます。 一度英語に翻訳して、再度日本語に翻訳して意味がわかるようであれば多分通じます。

メンテナがセキュリティに敏感な可能性もあるため sha256sumハッシュ値を作成し、メールの最後にでもコピペすると親切かもしれないです。

パッチを送った後はメンテナ次第なので適当に待ちます。 検証してそのうち何らかの返信がくると思います。

おわり

世の中には無料のソフトが溢れています。 大別して、企業がデータ収集するために無料提供しているものとコミュニティによるものです。

企業がデータ収集のために無料提供しているソフトは特に何もする必要はないです。 個人情報を提供しているためです。

しかし、コミュニティがボランティアで開発運営しているものには何かしら貢献した方が良いと思います。 最も簡単なのはバグレポートを送ることでしょうか、多分バグ発生時にワンクリックで出来ます。 次にブログやツイッターで紹介することかもです。

私も OSS 文化を継続するために何かしら貢献していきたいと考えています。