2014年7月30日 19:32 1xx <itsango@gmail.com>:
しかし、以下の2つが大きな変更が取り込まれず pendingになっています。 仕様を大きく変更してしまうので、 おそらくupstreamには取り込まれないでしょう。
これらの変更をopenSUSE独自のpatchとして 適応するか否かの判断に迷っています。
etckeeperは割としょっちゅうソースが更新されているので パッチを当てると、後々メンテが面倒になりそうです。
1. ZYpp pluginのタイムアウトに対するパッチ
zypperやYaST 1 click installなど、ZYppが動作すると、 etckeeperはプラグインを通じて自動的に起動します。 そして更新前・更新後の/etcの状態をVCSで管理しようとします。
しかしこの動作が遅いという問題が有ります。 30秒かかってpluginがtimeoutしてしまいます。 (インストール自体は成功します。) そして、timeoutした場合、etckeeperの自動commitは成功しません。
原因は解っています。 etckeeperはVCSのログにどのパッケージを追加・削除・変更したのかを 記録します。 この記録をするために、(アン)インストーラの起動前後で 合計2回rpm -qa | sortでパッケージ一覧を取得し、 その差分を取っています。 試しに私の環境で今rpm -qaしてみると24.255秒かかりました。 これを合計2回行うので30秒を超えてしまいZYppのpluginが timeoutします。
そこで、このログにパッケージの増減リストを取るのを諦めて、 rpm -qaをさせないことをconfファイルに定義できるpatchを書きました。
また、ZYppプラグインをサブパッケージにして、 アンインストール可能にしました。 ZYppによるetckeeperの自動commitを必要としない人は プラグインだけをアンインストールできます。 (が、etckeeperの魅力が半減します。) こちらはパッチではなく、サブパッケージなのでリリースします。
2. ZYpp, YUMの2つのパッケージマネージャーに対応するパッチ
あまり知られていませんが、openSUSEは パッケージマネージャーとして、ZYppの他にYUMも使えます。 (使っている人がいるかどうかは判りませんが。) しかしetckeeperは複数のパッケージマネージャーを使う ディストリビューションを想定していません。
そこで複数のパッケージマネージャーに対応するパッチを 書いたのですが、仕様変更が大きく、 upstreamに取り込まれていません。
これらのパッチを入れた状態でリリースすべきでしょうか? それとも独自仕様は入れない方が良いでしょうか?
「1.」は機能的に不便なのでパッチを当ててもいいかなと 思うのですが、後々メンテを考えると入れてしまっていいのか どうか悩みます。 「2.」はYUMを使っている人がいるか否か判らないので、 あてないでいいかなと思っています。
私だったらbug reportを出すlevelだと思うので、悩んだ末 「1.」のパッチを当てることにしました。 「2.」についてはパッチを当てるのを見送ります。 現状の最新は https://build.opensuse.org/package/show/home:Mitsutoshi:branches:utilities/e... にあります。 テストを協力していただける方がいらっしゃれば幸いです。 今晩からテスト項目を考えます。 https://docs.google.com/spreadsheets/d/1kmtjqvCnqNMmuFHRLh0-xh1iBdjhxnvKoYgR... -- 1xx <ItSANgo@gmail.com> <https://twitter.com/ItSANgo> <http://d.hatena.ne.jp/Itisango/> -- To unsubscribe, e-mail: opensuse-ja+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ja+owner@opensuse.org