ArchLinux には AUR っていうコミュニティベースのパッケージリポジトリがあります。
AUR には個人が自由にパッケージが登録できるし、その登録も専用の git リポジトリに PKGBULD
を push するだけなのでとても簡単です。
PKGBULD の作り方や AUR への登録の仕方は ArchWiki の PKGBUILD や パッケージの共有 を見て下さい。Qiita にもちょっと古いですが 簡単! パッケージを作成してAURへ登録しよう という記事があります。
パッケージの登録はとても簡単なんですが、リポジトリに push するときにたまに登録をはじかれる事があったりします。git の update hook に https://git.archlinux.org/aurweb.git/tree/aurweb/git/update.py が登録されていて、この人が色々チェックしてるんですね。そんな罠をいくつか紹介します。
全ての commit に PKGBUILD と .SRCINFO がないといけない
.gitignore
から作りはじめたり、.SRCINFO
を後から追加したりするとはまります。
https://git.archlinux.org/aurweb.git/tree/aurweb/git/update.py?h=v4.7.0#n275 でチェックしてます。
全ての commit で PKGBULD や .SRCINFO のフォーマットが正しくないといけない
途中のコミットに中途半端なのがいたりすると怒られます。フォーマットが正しくないといけないのは分かるんですが、もうちょっと緩くてもいいのにと思います。
https://git.archlinux.org/aurweb.git/tree/aurweb/git/update.py?h=v4.7.0#n295 から先のあたりでチェックしてます。
サブディレクトリが存在してはいけない
パッチを別ディレクトリに置いておいて整理するとかができません。
また、Github にもリポジトリを置いておいて、パッチのテストを CI したい時に CircleCI が使えません (.circleci/config.yml
が無理)。TravisCI を使いましょう。
https://git.archlinux.org/aurweb.git/tree/aurweb/git/update.py?h=v4.7.0#n283 でチェックしてます。
おわりに
こんな所でしょうか。たまーに困ることがありますが、大抵は rebase で何とかなる範囲です。それでは、良き AUR ライフを。