blockdiagシリーズがmain入りしました。

blockdiagシリーズがようやく全てSidのmain入り しました。 1 スポンサーをお願いした 岩松さん 、upstreamの tk0miyaさん 、依存パッケージ(funcparserlib)のupstreamの Andreyさん には大変お世話になりました。ありがとうございました。

それぞれ、Sidおよび、testing(wheezy)では下記のパッケージ名でインストールすることができます。 2

  • python-blockdiag

  • python-seqdiag

  • python-actdiag

  • python-nwdiag

  • python-sphinxcontrib.blockdiag

  • python-sphinxcontrib.seqdiag

  • python-sphinxcontrib.actdiag

  • python-sphinxcontrib.nwdiag

Sidユーザでblockdiagシリーズをパッケージで待っていた方はぜひ使ってみてください。

次のリリース

blockdiag, actdiagは1.1.2および0.3.0をパッケージにしていますが、既にそれぞれ1.1.3、0.3.1がリリースされています。actdiagはパッケージ作成しスポンサー依頼をこれからするのですが、blockdiagは下記のテストがコケるのでこれを解決してからになります。

======================================================================
FAIL: test_auto_font_detection (blockdiag.tests.test_boot_params.TestBootParams)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kohei/devel/debpkg/blockdiag/blockdiag-1.1.3/src/blockdiag/tests/utils.py", li
ne 14, in wrap
    func(*args, **kwargs)
  File "/home/kohei/devel/debpkg/blockdiag/blockdiag-1.1.3/src/blockdiag/tests/test_boot_par
ams.py", line 158, in test_auto_font_detection
    self.assertTrue(fontpath)
AssertionError: None is not True
    'None is not True' = self._formatMessage('None is not True', "%s is not True" % safe_rep
r(None))
>>  raise self.failureException('None is not True')
1

今日じゃなくて数日前ですけどね。

2

sphinx-contrib.{seq,act,nw}diagは3/11現在はtesting入りしていません。

mercurial-buildpackageを使ってDebianパッケージを作成。

upstreamがmercurialで管理されているソフトウェアをDebianパッケージにするのに、mercurial-buildpackageを使ってみたのでそのメモです。

まずはパッケージの導入。

$ sudo apt-get install mercurial-buildpackage

upstream(今回はfuncparserlib)からcloning。

$ hg clone https://code.google.com/p/funcparserlib/
複製先ディレクトリ: funcparserlib
全チェンジセットを取得中
チェンジセットを追加中
マニフェストを追加中
ファイルの変更を追加中
154 のチェンジセット(443 の変更を 132 ファイルに適用)を追加(+1個のヘッド)
ブランチ default へ更新中
ファイル状態: 更新数 33、 マージ数 0、 削除数 0、 衝突未解消数 0

デフォルトのブランチはdefaultですが、

$ cd funcparserlib
$ hg branch
default
$ hg branches
default                      153:faefc873c619
0.3.x                        112:28528a73b122

funcparserlibは0.3.xがリリース用のブランチなので、0.3.xにチェックアウトします。

$ hg update 0.3.x
ファイル状態: 更新数 20、 マージ数 0、 削除数 14、 衝突未解消数 0

glogでチェンジセットが112になっていることを確認できます。

$ hg glog
(snip)
| o  チェンジセット:   113:f7bb0e84c0fe
| |  親:               111:004c67aabeb3
| |  ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| |  日付:             Wed May 05 17:49:27 2010 +0400
| |  要約:             m
| |
| | @  チェンジセット:   112:28528a73b122
| | |  ブランチ:         0.3.x
| | |  親:               110:e568fcc9e6d6
| | |  ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| | |  日付:             Tue Nov 29 23:03:05 2011 +0300
| | |  要約:             Switched from nosetests to unittest for compatibility
| | |
| o |  チェンジセット:   111:004c67aabeb3
| | |  親:               109:e33b53943458
| | |  ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| | |  日付:             Mon Mar 15 12:43:18 2010 +0300
| | |  要約:             m
| | |
+---o  チェンジセット:   110:e568fcc9e6d6
| |    ブランチ:         0.3.x
| |    親:               108:f7b9c45450d7
| |    ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| |    日付:             Tue Nov 29 23:03:03 2011 +0300
| |    要約:             Python 3 compatibility
| |
| o  チェンジセット:   109:e33b53943458
| |  親:               107:c2069a3825d2
| |  ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| |  日付:             Sun Mar 14 13:18:09 2010 +0300
| |  要約:             Fixed #12: Positions in lexer error ouput are now 1-based instead of 0-based
| |
o |  チェンジセット:   108:f7b9c45450d7
| |  ブランチ:         0.3.x
| |  親:               106:4e1434e9013b
| |  ユーザ:           Andrey Vlasovskikh <andrey.vlasovskikh@gmail.com>
| |  日付:             Fri Nov 18 02:15:56 2011 +0300
| |  要約:             More information in exception objects (Issue 14)
| |
(snip)

なお最新のリリースの0.3.5のタグは、.hgtagsファイルで確認できます。

$ cat .hgtags
7d24cd9e4b75a85b1ee04f761e59857296d535d4 0.1
e68a2a1d0f55f07f9702dc4ee5da7f6f536402e8 0.2
8c9841ffcaa8b2b17ae93140aea89fd99526bed8 0.3
e5f9249d65bc6c9f8a5d219e31c3abd30167588a 0.3.1
23cf9ed9635b112fcb2247d960f4a918eaaad4bc 0.3.2
dfcce3e0b5765a393489570a41c7c95f5d8f1b15 0.3.3
ce8269e2e9ad9795f089b397efbec33758337016 0.3.4
2a094772c9e97ee5de5618f9c4479253fb357e4e 0.3.5

現在Debianパッケージとなっているfuncparserlib0.3.5は、Python2.7がデフォルトになってからビルドができないバグがあります。これは0.3.xのheadであるチェンジセット112では修正されているので、これをtarballにアーカイブします。doc/changes.mdとdoc/index.mdがsymlinkになっていますが、このままアーカイブするとmercurial-importorigおよびdebuild時にコケます。原因は、

http://twitter.com/#!/yy_y_ja_jp/status/176181847347298305:

@mkouhei mercurial-buildpackageが使ってるnekoがsymlink対応してない 6 days ago

とのことなので、この二つのsymlinkはアーカイブせずに-Xオプションで除外しておきます。

$ hg archive --prefix funcparserlib/ -r 112 -t tgz -X doc/Changes.md -X doc/index.md ../funcparserlib_0.3.5+hg~100.orig.tar.gz

このアーカイブしたファイルを元にmercurial-importorigを行います。

$ mkdir -p deb/funcparserlib
$ cd deb/funcparserlib
$ hg init
$ mercurial-importorig ../../funcparserlib_0.3.5+hg~100.orig.tar.gz
I: Reverting branch funcparserlib to state before import.

importができたらdh_makeを実行します。

$ dh_make -p funcparserlib_0.3.5+hg~100 -f ../../funcparserlib_0.3.5+hg~100.orig.tar.gz

Type of package: single binary, indep binary, multiple binary, library, kernel module, kerne
l patch?
 [s/i/m/l/k/n] s

Maintainer name  : Kouhei Maeda
Email-Address    : mkouhei@palmtb.net
Date             : Sun, 04 Mar 2012 02:29:27 +0900
Package Name     : funcparserlib
Version          : 0.3.5+hg~100
License          : blank
Type of Package  : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the funcparserlib Makefiles install into $DESTDIR and not in / .

debian/*を編集後、debianディレクトリを登録しコミットします。

$ hg add debian
$ hg commit

Debianバージョン用のタグを設定します。

$ cat .hgtags
b4881fbed50135a62b070892f1f6fc2f91b81c5d funcparserlib_0.3.5+hg~112
$ mercurial-tagversion
$ cat .hgtags
b4881fbed50135a62b070892f1f6fc2f91b81c5d funcparserlib_0.3.5+hg~112
2e1787194ce0a880ef38e2ac09af5648a7cae27c funcparserlib_0.3.5+hg~112-1

mercurial-buildpackageコマンドでビルドすると、

$ mercurial-buildpackage

親ディレクトリにパッケージが生成されます。

$ ls -lrt ..
(snip)
-rw-r--r-- 1 user user  2837  3月  4 04:50 funcparserlib_0.3.5+hg~112-1.debian.tar.gz
-rw-r--r-- 1 user user   978  3月  4 04:50 funcparserlib_0.3.5+hg~112-1.dsc
drwxr-xr-x 9 user user  4096  3月  4 04:50 funcparserlib
-rw-r--r-- 1 user user 30376  3月  4 04:50 python-funcparserlib_0.3.5+hg~112-1_all.deb
-rw-r--r-- 1 user user  2241  3月  4 04:50 funcparserlib_0.3.5+hg~112-1_amd64.changes
-rw-r--r-- 1 user user  4790  3月  4 04:50 funcparserlib_0.3.5+hg~112-1_amd64.build

あとはいつもと同じようにpbuilderでチェックします。

$ cd ..
$ sudo pbuilder --build funcparserlib_0.3.5+hg~112-1.dsc

参考

リンク先はgit-buildpackageを使っていて、野良パッケージの作成が目的で、origファイルを消すという謎の手順がありますが、基本的な手順は参考になりました。

http://d.hatena.ne.jp/metalglue/20100409/1270798344

VyattaにGanglia monitorを導入する。

こちら を参考にして、Vyatta VC6.3にSqueezeベースのリポジトリのAPT Lineを追加し、ganglia-monitorをインストール。

$ configure
# set system package repository squeeze components main
# set system package repository squeeze url http://packages.vyatta.com/debian/
# set system package repository squeeze distribution squeeze
# commit
# save
# exit
$ sudo apt-get update
$ sudo apt-get install ganglia-monitor

Ganglia monitorの設定は、

diff --git a/ganglia/gmond.conf b/ganglia/gmond.conf
index 9192a13..ccd42e7 100644
--- a/ganglia/gmond.conf
+++ b/ganglia/gmond.conf
@@ -18,7 +18,7 @@ globals {
  * of a <CLUSTER> tag.  If you do not specify a cluster tag, then all <HOSTS> will
  * NOT be wrapped inside of a <CLUSTER> tag. */
 cluster {
-  name = "unspecified"
+  name = "Vyatta"
   owner = "unspecified"
   latlong = "unspecified"
   url = "unspecified"
@@ -32,16 +32,16 @@ host {
 /* Feel free to specify as many udp_send_channels as you like.  Gmond
    used to only support having a single channel */
 udp_send_channel {
-  mcast_join = 239.2.11.71
+  mcast_join = 239.xxx.xxx.xxx
   port = 8649
   ttl = 1
 }

 /* You can specify as many udp_recv_channels as you like as well. */
 udp_recv_channel {
-  mcast_join = 239.2.11.71
+  mcast_join = 239.xxx.xxx.xxx
   port = 8649
-  bind = 239.2.11.71
+  bind = 239.xxx.xxx.xxx
 }

 /* You can specify as many tcp_accept_channels as you like to share

とクラスターグループの名前と、マルチキャストアドレスを変更して再起動して終わり。

$ sudo /etc/init.d/ganglia-monitor restart

resolverの設定は行っていないので、/etc/hostsにpackages.vyatta.comのIPアドレスを追記しておきました。なお、この/etc/hostsの変更と、/etc/ganglia/gmond.confは、Vyattaのconfig(/config/config.boot)の管理外なので、etckeeperで管理しています。 1

1

Squeezeベースなので、etckeeperもAPTで入れられるので便利ですね。

硬いベッドは嫌い?

昨日、レンタルのベビーベッドが来たので、組み立てて、おまめを寝かせてみました。夜泣きがかなり酷かったらしいです。らしい、というのは同じ部屋で寝ているのにワシは全くもって気づかず爆睡していたためです。サーセン。

何故ベッド嫌がるのかなぁとベッドのマットレスを押してみたら、かなり硬い。病院のベビー用のゲージも硬かったのと、泣いてばかりでなかなか寝ないため、ヨメさんが自分のベッドで一緒に添い寝していました。帰宅してからも、日中はカウチソファに座布団とバスタオルを敷いて寝かせているし、初日はワシとヨメさんの間に挟んでベッドで寝かせていました。いずれも柔らかい。うーむ、おまめちゃんは硬いベッドが嫌いなのでしょうか。

病院も借りたマットレスも、義兄にもらった赤ちゃん用の布団セットもいずれもマットレスが硬いってことは、赤ん坊って硬いところで寝かせないといけないのかなぁ…?

続々・チャイルドシート

Webサイトに出てたヤツとは微妙に違っていて、古いモデルで組み込みタイプではありませんでした。くれた妻の友人に確認してもらわないと…。もしレッグサポートなかったら粗大ごみと化す…。