パッケージにアップロード権限をつけてもらう

この記事は、Debian/Ubuntu JP Advent Calendar 2012 の何日目かの記事です。

2013 年の 11 月末から、Debian Maintainer (DM) によるパッケージアップロードの権限付与方法が変更されました。


通常、DM は自力でパッケージを Debian 公式アーカイブにアップロードすることはできず、Debian Developer (DD) にスポンサーとして代理アップロードしてもうら必要があります。

これまでは、debian/control ファイルに DM-Upload-Allowed (DMUA) フィールドを記述したパッケージを、スポンサーの DD に代理アップロードしてもらうことで、そのパッケージに限ってはそれ以後の自力アップロードができるようになっていました。

今回の変更により、DMUA フィールドは廃止され、debian/control に記述があろうとなかろうと意味をもたなくなりました。これからは、許可情報はパッケージ自体ではなくアーカイブサーバ側に移されており、そのデータを更新するには、dak コマンドを使用することになります。

dak コマンドは、所定のフォーマットで作成したテキストファイルをアーカイブにアップロードすることで実行されますので、やはりアップロード自体は DD に依頼する必要があります。

Archive: ftp.debian.org
Uploader: DD のメールアドレス

Action: dm
Fingerprint: DM の GPG フィンガープリント
Allow: パッケージ名 (スペース区切りで複数可)

上記の通り、書式自体はとても簡単なので、DM が依頼する時は単純に自分のフィンガープリントと対象のパッケージ名だけを伝えるだけで十分かもしれません。ただ、DD 本人はこの変更の当事者ではないので、新しい dak コマンドのことをそもそも知らない可能性もあります。
ですので、依頼する場合は、上記のフォーマットをつけた上で、「gpg 署名してアップロード」することを依頼するとスムーズになると思います。最初の debian-devel-announce のリンクを付記しておいてもよいでしょう。

依頼を受けた DD は、依頼内容通り権限をつけてよいと判断したら、dak コマンドのファイルに gpg 署名したものを、dput コマンドなどを使ってアーカイブにアップロードすることになります。
アーカイブ上でコマンドが無事実行されると、次のような結果通知メールが、DD と DM に送付されますので、内容を確認しておきましょう。

Subject: Results of processing (DD の名前)-(適当な数字).dak-commands

> Action: dm
> Fingerprint: C11CA58C0175C240D58C30C8D27DDE1140A2F113
> Allow: mypackage
Fingerprint: C11CA58C0175C240D58C30C8D27DDE1140A2F113
Uid: lurdan@gmail.com
Allowed: mypackage

では皆さま、年末年始も happy hacking!