トップ 追記

毎日が反省会

rss
2007|04|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|06|07|08|09|10|11|12|
2013|02|03|04|

2013-04-06

_ [Debian] Debian / Mozc 近況

Debian / Mozc ってどうなってんの?と聞かれたので書いておきます。

Mozc の バージョン1.10.1390.102 がリリースされているのですが、このバージョンから protobuf バージョン2.5.0 に依存していて、unstable ではビルドできない状況です。

もちろん mozc のビルドプロセスの中で protobuf をビルドできるのですが、これはDebian的にはよろしくないので、experimental / unstable で protobuf バージョン2.5.0 を提供できるようにしなければありません。しかし、みなさんがご存知のように Debianはリリースに向けてフリーズに入っているのでこれらの作業は先になると思います。

また、protobuf バージョン2.5.0から soname が 7から8に変わるので Debian内部えのライブラリの移行作業も必要になります。これによってまた提供するのが遅れると思います。その間何もしないというのは時間がもったいないですので、できるだけ早く提供できるように、protobuf バージョン2.5.0 のDebianパッケージ作成と、ライブラリ移行テストを行なっているところです。

Mozc バージョン1.10.1390.102 をお待ちのDebian/Ubuntuユーザ方々、しばらくお待ちください。


2013-03-10

_ dput-ng の オプションdm

前日記に書いた気がするんだけど。 DMUAの有効には dput-ng の dm オプションを使うのが簡単です。
dcut dm --uid "Maintainer name" --allow package-name

2013-02-01 テスト

_ 復旧テスト

書き込みテスト


2012-12-18

_ [Debian/Ubuntu JP Advent Calendar 2012] mr ツール について

Debianは多くのVCSツールをサポートしていて、パッケージメンテナンスする人によって使うVCSも異なります。同じチームでもSVNの人がいたり、Gitの人がいます。 このような場合、git を使っているのに svn と入力してしまったりすることが多いわけです。多分。VCS毎に異なったコマンドを毎回入力するのは面倒なので、Debianにはmr というツールがあります。今回は簡単な使い方を紹介します。
まず、mr をインストールします。
$ sudo apt-get install mr
次にmrで管理したいVCSのディレクトリに移動し、「mr register 登録名」を実行します。
$ cd ~/dev/debian/maint/erlang/erlang-bear
$ mr register erlang-bear
実行すると VCS リポジトリが mr の管理下に置かれ、~/.mrconfig に設定が保存されます。
$ cat ~/.mrconfig 
[dev/debian/maint/erlang/erlang-bear]
checkout = git clone 'git+ssh://git.debian.org/git/pkg-leofs/erlang-bear.git' 'erlang-bear'

これで準備は完了です。 何か編集して、コミットしたい場合には「mr record」コマンドを実行します。 実行すると 各 VCS で設定されたエディタが起動し、コミットメッセージの入力が要求されます。
$ mr record
似たコマンドに commit がありますが、これはリモートリポジトリへのpushまで行います(SVN と同じ動き)。record はローカルリポジトリにコミットするだけです(Git のcommitと同じ動き)。record を実行した後に、リモートリポジトリにもpushしたい場合には mr pushを使います。
その他、リモートリポジトリの更新を取得したい場合には「mr update」、diff を取りたい場合には 「mr diff」、 コミットログを確認したい場合には「mr log」を実行します。 その他細かい動作や設定ができますが、今回は割愛します。 需要がありそうならどこかで発表します。
複数のVCSを操作するためのツール 「mr」 について紹介しました。 ローカルリポジトリでコミットを入れ替えたり、アップストリーム用のパッチを書いたりしないなど複雑な操作をしない人には便利なツールだと思います。また、普段VCSを使っている人にとっても単純なコマンドで各VCSを操作できるので便利かもしません。 機会があったらつかってみてはいかがでしょうか。

2012-12-17

_ [Debian/Ubuntu JP Advent Calendar 2012] ディストリビューション間のバーションを比較する

ディストリビューションの間バージョン比較をしたい人がいるようです。理由を聞いてみると、どのパッケージが更新されていないとか、更新されているとかそういうのをチェックしたいんだとか。
このような場合、chdist コマンドを使うと簡単に調べることができます。 例としてtesting と unstable の比較をしてみます。 chdist コマンドは devscripts パッケージで提供されているのでインストールしていない人はインストールします。
$ sudo apt-get install devscripts
次にディストリビューションのパッケージ情報を格納するためのディレクトリや設定ファイルを作成します。unstable用に以下のコマンドを実行します。
$ chdist create unstable
次に ~/.chdist/unstable/etc/apt/sources.list を修正します。unstable なら以下のようになります。
deb http://ftp.debian.org/debian/ unstable main
deb-src http://ftp.debian.org/debian/ unstable main
次に、ディストリビューション情報を取得します。
$ chdist apt-get unstable update
testing も同じように設定フィイルを作成し、情報を取得してください。
$ chdist create unstable
$ cat ~/.chdist/testing/etc/apt/sources.list
deb http://ftp.debian.org/debian/ unstable main
deb-src http://ftp.debian.org/debian/ unstable main
$ chdist apt-get unstable update
準備ができたら、 chdist compare-packages testing unstable を実行します。 実行すると パッケージ名、testing のバージョン、unstable のバージョンという順で結果が出力されます。
$ chdist compare-packages testing unstable
0ad 0~r11863-2 0.0.11-1
0ad-data 0~r11863-1 0.0.11-1
2ping 2.0-1 2.0-1

ディストリビューション間のバーションを比較する chdist コマンドについて紹介しました。派生ディストリビューションでもチェックできるので、Ubuntu のみで提供されているパッケージのチェックにも使えますね。(どこかに比較サイトがあったような気がしますが忘れた。)

2012-12-13

_ [Debian/Ubuntu JP Advent Calendar 2012] namecheck / 同じ名前のパッケージ/プロジェクト名がないか確認する

Debian は多くのパッケージを提供していて、各プロジェクトの開発者もDebianを使っている事が多いです。
このため、パッケージ名やプロジェクト名が重なってしまうことがあります。例えばGitは良い例ですね。VCSのGitが出る前までは Gitと言えば GNU Gitだったのですが、その座を奪われてしまいました。
このようなこともあり、これらをチェックするためのツール namecheck が devscripts で提供されています。
では早速使ってみましょう。hoge というプロジェクトがあるか確認します。namecheck コマンドの引数に確認したいプロジェクト名を指定します。
$ namecheck hoge
Testing   hoge.tuxfamily.org - Available
Testing    alioth.debian.org - Available
Testing developer.berlios.de - Available
Testing        freshmeat.net - Available
Testing        launchpad.net - Available
Testing     savannah.gnu.org - Available
Testing      sourceforge.net - In use
Aborting - name 'hoge' is currently used.
sourceforge.net で登録してあることがわかりました。
同じ名前のパッケージ/プロジェクト名がないか確認する namecheck コマンドの使い方を紹介しました。多くのパッケージを提供しているディストリビューションならではのツールだと思いました。

2012-12-12

_ [Debian/Ubuntu JP Advent Calendar 2012] Oracle Java を Debianにインストールする

Oracle Java を Debian にインストールするぐらいなら OpenJDK 入れるだろ!と言われそうですが、政治的な理由や圧力によってインストールせざるを得ない状況になることがあります。
まさにいまがそのような状態です。最悪です。
このような状況でもDebianパッケージにしてインストールしておくと後が楽になります。
DebianのJavaメンテナンスチームによって提供されている java-package には make-jpkg があり、これを使うと簡単にDebianパッケージにしてくれます。
$ sudo apt-get install java-package
$ make-jpkg jdk-7u2-linux-x64.tar.gz
$ ls
jdk-7u2-linux-x64.tar.gz
oracle-j2sdk1.7_1.7.0+update2_amd64.deb
$ sudo dpkg -i oracle-j2sdk1.7_1.7.0+update2_amd64.deb
alternatives は自動で設定してくれない(優先順位が低く設定されている)ので、手動で設定する必要があります。
$ sudo update-alternatives --set java /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java
$ sudo update-alternatives --set javac /usr/lib/jvm/j2sdk1.7-oracle/bin/javac
$ sudo update-alternatives --set javah /usr/lib/jvm/j2sdk1.7-oracle/bin/javah
$ sudo update-alternatives --set javap /usr/lib/jvm/j2sdk1.7-oracle/bin/javap
$ sudo update-alternatives --set javaws /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/javaws
以上が Debianで Oracle Java を使うための方法です。 このような素敵なツールを提供してくれているJavaメンテナンスチームに感謝します。

2012-12-07

_ [Debian/Ubuntu JP Advent Calendar 2012] apt-forktracer を使ってパッケージをチェックする

Debian リポジトリ以外から入れたパッケージはどのように管理していますか。 apt-forktracer を使うとある程度簡単にチェックできます。

使い方

例えば、自分のある環境でapt-forktracerを実行すると以下のような結果が出力されます。
$ apt-forktracer
....
libsbc1 (1.0-2)
....
gnu-efi (3.0l-1) [Debian: 3.0i-4]
....
bluez (4.101-2) [nigauri: 4.101-2] [Debian: 4.99-2]
libsbc1 は 私がメンテナンスしているパッケージの一つで、まだ experimental のみでしか提供されていません。
これは私がデバッグするために debi コマンドでインストールされたものなので、手動でインストールされた(ローカルのAPT用のリポジトリにない)と判断されたようです。
また、apt-forktracerを動作させたマシンとリポジトリで管理されているパッケージのバーションが異なる場合(バージョンが古いなど)、gnu-efi のような結果が出力されます。これはDebianで提供されているパッケージよりインストールされているパッケージが新しいという結果になっています。
そして、bluez パッケージは 4.101-2がインストールされ、それは nigauri という名前の付いたリポジトリにあることがわかります。
その他、リポジトリから消されたけど、マシンにはインストールされているパッケージも一緒に出力されます。

出力を無視する

/etc/apt/forktracer.conf や /etc/apt/forktracer.d/ に設定を記述sるうと、出力結果を無視できるようになるらしいのですが、思ったように動きませんでした。また調べて報告します。

まとめ

apt-forktracer を使うと、どのパッケージがどのリポジトリからインストールされたのかわかります。今まで独自のスクリプトでチェックされていた方はapt-forktracerに移行してみてはいかがでしょうか。

2012-12-03

_ [Debian/Ubuntu JP Advent Calendar 2012] 今時のバグレポート操作方法

はじめに

この記事は Debian/Ubuntu JP Advent Calendar 2012 : ATND の 12/03(月) の記事です. 昨日は佐々木さん(@uwabami)による 次期安定版 Debian 7.0 "Wheezy" での TeX 環境(特に pTeX 環境)について でした。

今時のバグレポート操作方法

Debianのバグレポートは Debian BTSので管理されており、これらのバグレポート にはタグなどをつけて管理できるようになっています。 例えば、もっとバグの情報が欲しい!(moreinfo)というタグをつけるには「control@bugs.debian.org」というバグコントロールサーバ用のメールアドレス宛に
tags バグ番号 + moreinfo
thanks
という内容を送ります。 これらはバグコントロール用コマンドと言われ、メールの本文に書く必要があります。 バグコントロールだけののメールを書くこともできますが、メールの返信の頭に上記のようなコマンドを記述し、バグコントロールサーバ用のメールアドレスをCCやBCCに(もちろんTOでもいいですけど)指定し、メールのメッセージとバグコントロールを同時に行うこともできます。 (その他のコマンドや細かいことはバグ制御とメールサーバの操作を参照)。

さて、最近になって、「Control 擬似ヘッダ」をメール本文に追加することができるようになり、バグコントロールサーバにメールを送らなくてもバグ報告をコントロールできるようになりました。例えば先に書いたことは以下の行を本文の頭に書くことによって可能になっています。
Control: tags -1 + moreinfo
簡単に説明すると、-1 は現在のバグ番号を参照する、tags はタグに対する操作、moreinfo はタグ名、+ は付加するという意味になります。
これによってメールアドレスを追加するという手間が減り、バグコントロール内容と本文が同時に送信できるようになりました(これは前からできますけど)。
これからバグレポートをする場合は、バグコントロールサーバ用のメールアドレスにメールを送らず、本文にControl擬似ヘッダを使ってコントロールしてみてはいかがでしょうか。

明日の記事

明日は西田さん(@kozo2)による記事の予定です。

2012-11-27

_ [Debian] Changes to Debian Maintainer upload permissions

Debian Maintainer のパッケージアップロード方法が変わりました。 今まではパッケージの DM-Upload-Allowed フィールドによってコントロールされていましたが、これは廃止され(control ファイルからも削除されます) 今後は dak (Debian Archive Kit)側でコントロールするようになります。 そのためには Debian Maintainerはどのパッケージをアップロードできるのかという情報をdakに登録する必要があります。 これは 登録用コマンドが記述された $login-EPOCH.dak-commands(例えば、iwamatsu-1.dak-comamnds) というファイルを作って、Debian Developer によってGPGサインしてアップロードしてもらう必要があります。
Archive: ftp.debian.org
Uploader: A Developer 
 
Action: dm
Fingerprint: 1234567890ABCDEF1234567890ABCDEF
Allow: one-package another-package
Deny: yet-another-package
$login-EPOCH.dak-commands のアップロードですが、dput や dupload コマンドではまだ対応していません(BTSはされています)。今のところは、アップロードするには dcut の -U オプションを使って行うのがよいみたいです。
$ dcut -U iwamatsu-1.dak-comamnds