↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

わんこ日記 [RDF]

過去の日記

2010-08-15(Sun) [長年日記] この日を編集

[mozc][Debian][ibus] Debian squeeze(testing)のibusも1.3に上がったね

5月31日の日記では、Debian squeeze(testing)でmozcの言語バーにアイコンをだすために、ibus 1.2のパッケージソースにパッチしていたけど、今日ふと気がついたら、いつのまにかDebian squeeze(testing)のibusも1.3に上がっていた。

これで、Ubuntuと同じように苦労しなくても言語バーに辞書とかツールのアイコンがでるようになってよかった。

最新のmozcのソースにはオレンジ色のアイコンも付いているしね。

[]

2010-08-08(Sun) [長年日記] この日を編集

[git][sourceforge] cvs2gitで作ったgitリポジトリにタグを送り忘れていた

昨日の日記で、無事にsourceforge.jpのCVSリポジトリがGitリポジトリに出来たと安心していたけど、tagを送り忘れていて、sourceforge.jpのGitリポジトリで、タグが見えていないことが判明した。

$ git push --tags sf

としてタグ情報もsourceforge.jpに送った。 昨日の最後でpushするときに、git push --all sf master としてあればタグも一緒に送られていたのだけど、今回は忘れていたので、あとからtagをpushした。

[]

2010-08-07(Sat) [長年日記] この日を編集

[sourceforce][cvs][svn][git] soruceforce.jpのリポジトリをgitにする (まだ失敗)

sourceforge.jpで管理しているMail送信先確認プログラムは、現在CVSでソースリポジトリを管理しているけれど、最近の流行はCVSやSubversionのような集中型バージョン管理プログラムではなくて、gitのような分散型バージョン管理プログラムなので、Sourceforge.jpでも使えるGitでのソースリポジトリ管理に変える事にした。

まずはcvs2svn → git-svn によって変換しようとして失敗した例。

1. CVSリポジトリをローカルに持ってくる

$ rsync -avz rsync://cvs.sourceforge.jp/cvsroot/mdc .

2. 次にcvs2svnでSubversionのリポジトリに変換

% cvs2svn -s mdc-cvs2svn mdc

これでは、/trunk/BetaProject,/trunc/CSVROOT...なので、/BetaProject/trunkに変換

% svnadmin dump mdc-cvs2svn > dump

% perl -pi -e 's|Node-path: trunk/([^/\n]*)|Node-path: $1/trunk|' dump

CVSROOTはCVS用なので削除

% svndumpfilter exclude 'trunk/CVSROOT' < dump > dump2

きれいになったSubversionリポジトリを展開

% svnadmin create mdc-git

% mkdir tmp

% cd tmp

% svn co file://$HOME/mdc-svn

% cd mdc-svn

% svn mkdir BetaProject

% svn ci -m "new directories"

% cd ../..

% svnadmin load mdc-svn <dump2

svn mkdirしているのはフォルダーを作っておかないとdumpのloadに失敗するかららしいが、これをやっても失敗する…

ということで残念ながら…

3. とりあえずは、「/BetaProject/trunkに変換」はあきらめてcvs2svnのまま、git svn clone -sしてgitに取り込む。

しかし、うつくしいソースリポジトリが作れず失敗…

[sourceforce][cvs][git] git cvsimportでトライ

そんな事をしているうちに、「git cvsimport なんてコマンドが有る事をしったので、

$ git cvsimport -d $HOME/mdc -C mdc-git BetaProject

としたけど、結局/CVSROOTが入ってしまって、cvs2svn→git-svnと変わらず…

[sourceforce][cvs][git] 完成! cvs2gitでsourceforge.jpのリポジトリをGitに移行

なんとかいらない/CVSROOTを消しながら良い方法は無いかと、/usr/share/doc/cvs2svn/examples/をあさっていて、cvs2gitコマンドか有ることを発見。これが一番良かったので、sourceforge.jpのソースリポジトリをCVSからGitに変更するにはこれを利用することにした。

1. CVSリポジトリをローカルに持ってくる

$ rsync -avz rsync://cvs.sourceforge.jp/cvsroot/mdc .

2. 次にcvs2gitでSubversionのリポジトリに変換

ここで、/CVSROOTが入らないように/BetaProjectとから取ってくるのと、一時的にdump fileを作るがそれを上手く展開するのがミソ

$ cvs2git --username="Takuya" --keep-cvsignore --blobfile=git-blob --dumpfile=git-dump mdc/BetaProject

$ mkdir mdc-git

$ cd mdc-git

$ git init --bare --shared

$ cat ../git-blob ../git-dump |git fast-import

3. コミットユーザとメールアドレスの変更

sourceforge.jpのCVSリポジトリはcommitしたユーザがsourceforge.jpのユーザ名になっているので、Gitらしく正しいユーザ名とメールアドレスを設定する。

$ git filter-branch --commit-filter '

ORG_EMAIL="takuya-o";

NEW_EMAIL="takuya@page.on-o.com";

NEW_NAME="Takuya";

if [ "$GIT_AUTHOR_EMAIL" = "$ORG_EMAIL" ]; then

GIT_AUTHOR_NAME="$NEW_NAME";

GIT_AUTHOR_EMAIL="$NEW_EMAIL";

GIT_COMMITTER_NAME="$NEW_NAME";

GIT_COMMITTER_EMAIL="$NEW_EMAIL";

git commit-tree "$@";

elif [ "$GIT_COMMITTER_EMAIL" = "$ORG_EMAIL" ]; then

GIT_AUTHOR_NAME="$NEW_NAME";

GIT_AUTHOR_EMAIL="$NEW_EMAIL";

GIT_COMMITTER_NAME="$NEW_NAME";

GIT_COMMITTER_EMAIL="$NEW_EMAIL";

git commit-tree "$@";

else

git commit-tree "$@";

fi' HEAD

参照: Pro Git 6.4歴史の書き換え - メールアドレスの一括変更

4. sourceforge.jpのGitリポジトリにpush

まずはsourceforge.jpでGitリポジトリを使えるように「プロジェクトで利用するツールの選択」でGit機能を有効にして、「Git管理ページで、「新規Gitリポジトリを作成」で「BetaProject」リポジトリを作成してから、

$ git remote add sf takuya-o@git.sourceforge.jp:/gitroot/mdc/BetaProject master

$ git push sf master

として、sourceforge.jpのGitリポジトリに載せて、CVS→Gitの移行完了。

[]

2010-07-31(Sat) [長年日記] この日を編集

[Debian] flashplugin-nonfreeがadobe-flash-player-browserpluginに変わった

Debian testingなので、パッケージ: flashplugin-nonfree (1:2.8.1)を使っていたのだけど、chromium-browserでYuTubeで「Flash Playerがないよ」と出ると思ったら、Debian unofficialに、 adobe-flash-player-browserplugin-amd64が有ったので使ってみることにした。

[]

2010-07-30(Fri) [長年日記] この日を編集

[git] sshでgitサーバに接続できるようにするためのサーバの準備

sshで接続できるgitサーバ作るには、gitというユーザ作って、その.ssh/authorized_keysファ イルに接続したい人のSSH公開キーを並べればよい

# adduser --system --home /var/cache/git --no-create-home --gecos "create by takuya" --gid 33 --disabled-password --disabled-login git

# mkdir ~git/.ssh

# cat ~takuya/.ssh/id_rsa.pub >~git/.ssh/authorized_keys

# chown -R git.www-data ~git/.ssh

あとは、ユーザーgitがsshdで入れるように登録して (sshで入れるユーザ制限していることに気かず、これ忘れていて、少し時間が掛かってしまった)

$ git clone git@on-o.com:test.git

Initialized empty Git repository in /home/akuya/test.git/

remote: Counting objects: 38, done.

remote: Compressing objects: 100% (18/18), done.

remote: Total 38 (delta 6), reused 32 (delta 5)

Receiving objects: 100% (38/38), done.

Resolving deltas: 100% (6/6), done.

と取れること確認した。

参考: Pro Git 4.4 サーバーのセットアッ プ

[]

2010-07-28(Wed) [長年日記] この日を編集

[git] プロキシー超えてgit clone http://..する

サーバ側は、bareのgitリポジトリがWebDavで見えるようにすればよい。

クライアント側が認証付きプロキシーを使わないといけなかったので面倒だった。

結局、環境変数 all_proxyに http://ユーザ:パス@プロキシーサーバ:8080 と入れれば良かったんだけど、環境変数http_proxyで設定したのでhttpsだとダメだとか、httpsだとオレオレ証明書なので

$ git config --global http.sslVerify false

とないとダメだったとかに気づくまでに時間が掛かった。

まだ、.netrcがうまくgitからつかえていないけど… (なんでか不明)

[]

2010-07-27(Tue) [長年日記] この日を編集

[mozc][Debain] mozcがDebian testingに入った

いままで、google日本語入力のオープンソース版のmozcは自分でビルドしていたけれど、最近、アイコンもちゃんと入ったDebian testginのパッケージになった。

これで、ビルドの手間は減るけれど、「私家版Mozc辞書」(なんかJS/Redirという木馬が検知されるのでリンクは張りません)とか組み込んで辞書拡充していたんだけど、それが有効にならないので結局、ローカルバージョン作ってビルドしなきゃだめかなぁ〜

[]

2010-07-19(Mon) [長年日記] この日を編集

[Ubuntu] ブートできなくなる

今日、Ubuntu 10.04 LTSをブートしたら

Kernel panic-not syncing:VFS: Unable to mount root fs on unkno wn-block(0,0)

と出てブートできない。

色々調べてみるとgrabを再インストールすると良いらしいので、「RecoveringUbuntuAfterInstallingWindows」を参考にして、Ubuntu 10.04 LTSのインストールCDでLive Linuxでgrubをreinstallした。

しかし、これでもうまくいかないので、linux-imageの再インストールを試みた。

Ubuntu 10.04 LTSのインストールCDでLive Linuxかインストールか選択する画面で、F6を押してブートパラメータをfile=を残して後は消してroot=/dev/sdb5としてrootドライブをつなげて起動した。残念ながらインストールCDと同じkernelバージョン(2.6.32-21)のモジュールは残っていなかったのでネットワークは使えなかったけれど、linux-image-2.6.32-24-genericのdebパッケージのキャッシュは残っていたので、aptitudeで再インストールした。

linux-iamgeの再インストールによりUbuntuがブートできるようになった。(ほっ)

[]

2010-07-16(Fri) [長年日記] この日を編集

mail2entryが失敗する

2007年4月8日の日記で問題が発生して以来ちゃんと動いていたのだけど、python 2.6になったら、

Traceback (most recent call last):

File "/usr/local/mail2entry/mail2entry.py", line 59, in <module>

from settings import *

ImportError: No module named settings

とsetting.pyをimportする所でエラーメールが帰ってくるようになってしまった。

.pycが2.5で作られたのがいけないのかと思って、.pycを一度消してコンソールからmail2entry.pyを起動して.pycを作り直したがうまくいかない。

とりあえず、python 2.5で実行させるために

--- mail2entry.py.latest 2006-09-03 22:51:48.000000000 +0900

+++ mail2entry.py 2010-07-17 02:41:26.727474642 +0900

@@ -1,4 +1,4 @@

-#! /usr/bin/env python

+#! /usr/bin/env python2.5

"""Post a new MT entry from a mail message"""

として、最新版のPython 2.6ではなくて2.5を使うようにした。

しかし、これでも/tmp/log-tracebacks.log

2010-07-17 02:02

Traceback (most recent call last):

File "/usr/local/mail2entry/mail2entry.py", line 27, in main

{ 'imageurl' : imageurl }, imageurls )

File "/usr/local/mail2entry/mail2entry.py", line 27, in <lambda>

{ 'imageurl' : imageurl }, imageurls )

KeyError: 'caption'

とエラーが出てしまう。

これは「元に戻したのに変だなぁ」ってことで長い時間はまってしまった。

なんと、2007年4月8日の日記以来うまく動いていたのは settings.pyc が古いままだったからだ。2009年8月16日にsettings.pyで、

-imgtemplate = "<img src=\"%(imageurl)s\">"

+imgtemplate = "<img src=\"%(imageurl)s\" alt=\"%(caption)s\"/>"

mail2entry.pyを

--- mail2entry.py.org 2003-05-07 11:10:12.000000000 +0900

+++ mail2entry.py 2010-07-17 03:13:32.351974311 +0900

@@ -1,4 +1,4 @@

-#! /usr/bin/env python2.2

+#! /usr/bin/env python2.5

"""Post a new MT entry from a mail message"""

@@ -24,7 +24,8 @@

if images :

imageurls = saveimage.save ( images )

imagecontent = map ( lambda imageurl : imgtemplate % \

- { 'imageurl' : imageurl }, imageurls )

+ { 'imageurl' : imageurl,

+ 'caption' : content.getTitle() }, imageurls )

else :

imagecontent = u''

という修正を入れて、動くようにした。

[]

2010-06-30(Wed) [長年日記] この日を編集

[Security] ポットのIPリスト

6月19日の日記のように、Brute force攻撃を受けているので、どんなIPアドレスが使われているのか、2009年12月11日の日記のように接続してきたIPアドレス一覧(今回はユーザ名無し)を作り同じようにiptablesでDROPするようにした。

[]

Google Web検索 on-o.com内を検索