しばらくぶりにubuntu ppaへパッケージを上げるときの手順

Ubuntu Preciseへのアップグレードをしたので、自分のppaのpythonライブラリのパッケージを更新した。launchpadへのgpg鍵の登録から行うことになり、そのメモ。

パッケージのPreciseへの対応

debian/controlのDependsでpreciseのパッケージに対応するパッケージ名に変える。preciseではPythonのバージョンはpythonが2.7でpython3が3.2で、2.6がpython2.6として独立してインストール可能である(3.1は消えた)。

すなわち"debuild -uc -us"でビルドできるようにしておく。

gpg鍵生成

gpg --gen-key

有効期限は1yでアルゴリズムや鍵長はデフォルトで良いが、名前とメールアドレスはdebian/changelogの名前とメールアドレスに合わせなくてはいけない。鍵生成をサーバで行う場合rng-toolsパッケージを入れておくといい。passphraseは必須。

gpg鍵登録

まず鍵送信

gpg --send-keys --keyserver keyserver.ubuntu.com 580B5697

最後の引数は生成した鍵のID。"gpg --list-keys"コマンドで鍵一覧が見える。この限りストのうちuidが付いているpubの鍵IDを送る。

次にlaunchpad上で鍵を登録する。ブラウザで"OpenPGP Keys"のアイコンをクリックし、下部の"Import and OpenPGP Key"のフォームにfingerprintを入れ、"Import Key"ボタンを押す。(鍵送信からlaunchpadが利用可能になるまで少し時間がかかるので、失敗したら数分待ってから行う)

fingerprintの出し方は、以下のようにコマンドで鍵IDを指定して行う。

gpg --fingerprint 580B5697

ここで出る指紋の4x10文字をスペース入りのままフォームへコピペする。

するとメールが送られてくる。このメールのうち

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.10 (GNU/Linux)
...
-----END PGP MESSAGE-----

の部分をテキストファイルとして保存する。たとえばencrypt.txtというファイル名にする。

このファイルをgpgで復号する。

gpg encrypt.txt

復号したファイル内の一番下の行のURLへアクセスし、continueすればOpenPGP Keysに登録される。

この鍵でCode of Conductサイン

launchpad上で古いCoCをdeactivateすれば、CoC署名のインタフェースが出る。
UbuntuCodeofConduct-1.1.txtをダウンロードし、署名する。

gpg --clearsign UnbuntuCodeofConduct-1.1.txt

UnbuntuCodeofConduct-1.1.txt.ascが生成されるので、そのファイルを開き内容全部をlaunchpadのフォームへコピペし送れば完了。

ppaへアップロード

dch -v 1.0.5.5-0nmu1ppa1
debuild -S -sa
cd ..
dput ppa:bellbind/python-simplexquery_1.0.5.5-0nmu1ppa1_source.changes

上から順に、dchでppa用バージョン付をし、debuild -S -saで署名付きのchangesをつくる。dput出アップロードする。あとはlaunchpadでビルドが終わるのを待つ。