Guix に ox-rss パッケージを追加してもらった
動機
このサイトの RSS を生成するのに Emacs の org-contrib に含まれていた ox-rss
というパッケージを使用していたのですが、
9/3(土)に記事を CI サーバー経由で投稿をしようとしたところ org-contrib
から ox-rss
が削除されていたために失敗しました(Debugger entered--Lisp error: (void-function org-rss-publish-to-rss)
というエラーメッセージから原因を特定しました)。
毎週金曜日に CI サーバーの CI 用のユーザーが利用する guix のリポジトリを自動更新していて、
この自動更新によって emacs-org-contrib パッケージが更新された影響で失敗したと分かったので、
9/3 時点では guix pull --rollback
を実行して一つ前の世代に戻してから記事を投稿していました。
ただし、来週にはまたパッケージが更新されて org-contrib
から ox-rss
が消えてしまう問題が再発するので、
Guix の公式リポジトリに ox-rss
パッケージを追加してもらうための対応をしました。
CI が失敗した原因
調べてみると orb-contrib のバージョン 0.4.0 のリリース時に ox-rss.el
ファイルが削除されたことが分かりました。
~bzg/org-contrib: lisp/org-contrib.el: Bump version to 0.4 - sourcehut git
コミットメッセージによると、Nicholas Savage / ox-rss · GitLab リポジトリにあるファイルであるという理由で消されていました。
Nicholas Savage / ox-rss · GitLab の ox-rss.el
を参照したところ、
メンテナが Bastien Guerry さんから Nick Savage さんに代わったようで今後は Nicholas Savage / ox-rss · GitLab を使うとよいと分かりました。
Guix にパッケージ追加の依頼
Guix に新しいパッケージを追加を依頼するには guix リポジトリの gnu/packages/
以下にビルドする際の手順を表わすパッケージ定義を書いてパッチを送る必要があります。
パッチを書いて Guix の運営に送るための手順は Contributing (GNU Guix Reference Manual) に具体的に書かれています。
今回は Nicholas Savage / ox-rss · GitLab の ox-rss
をビルドするパッケージ定義を追加してパッチを送りました。
パッチをメールで送ると自動的に Guix issue tracker というサイトに送信した内容が掲載されてスレッドが作成されます。
私が送ったパッチに関するやりとりは下記から参照できます。
[PATCH] gnu: Add emacs-ox-rss.
Nicolas Goaziou さんによってレビュー・修正された emacs-ox-rss のパッケージ定義が無事にマージされました。 素早く対応をしていただき本当にありがたいです。
おわりに
今回のような問題は自分用の Guix のチャンネルのリポジトリがあればそこにパッケージ定義を追加するだけでも解決します。 ただし、 今回の対応は比較的簡単だし同じように困る人もおそらくでてくるのに自分だけ解決するのは申し分けない感じがするので、 パッケージの追加を公式に依頼しました。
同じように Guix で Emacs のパッケージを管理しているけど、 必要なパッケージがなかったりなんらかの不具合があって困っていたりする方は是非パッチを送ってみてください。