Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2012-07-01 [長年日記]
_ [Debian] memo 2012/03/08 Debian Lenny/Squeezeでのうるう秒対策まとめ
7/1の09:00に閏秒が挿入されて、いくつかのLinuxでは、Kernelが原因とされるCPU100%張り付きの不具合があった。それに関連して twitter で流れてきた Debian での閏秒対策の URL を貼り付けておく 2012/03/08 Debian Lenny/Squeezeでのうるう秒対策まとめ(http://d.hatena.ne.jp/labunix/20120308)
2012-07-02 [長年日記]
_ Bugs Stories
ソフトウェアの不具合のことを、ソフトウェア作成に関わる人たちは Bug(虫)といいます。そもそもは、リレー式のコンピュータに、蛾(Bug)が入り込んで不具合が発生して、引き継ぎレポートに貼り付けられた所からだという話は、本で読んだことがあります。
Bugハンター日記(Tobias Klein/新井 悠/長尾 高弘)を購入した。積ん読リストに入った。Debconf 12へ飛ぶ途中には時間があるので、何冊か積ん読を解消できると思う。
上記に関連して、ハードなバグの発見をまとめようとしている link があるので、ついでにメモ BugStories(http://practical-scheme.net/wiliki/wiliki.cgi?BugStories)鵜飼さんや新部さんの対峙したbugもある
2012-07-03 [長年日記]
_ Linux用動画編集ツール
『OpenShot 1.0』はちゃんと使い物になるLinux用動画編集ツール(http://www.lifehacker.jp/2010/02/100208openshot_10linux.html) まだ使ったことがないが、HandyCamの動画編集につかえるだろうか?
2012-07-04 [長年日記]
_ タニタのバイブレーションタイマー
音でなく、振動でタイミングを知りたい場合がある。図書館の中や静かな事務所で、タイマーを使いたい。その用途にタニタのタイマーを購入した。(http://chalow.net/2003-02-23-1.html)
2012-07-06 [長年日記]
_ プロセスを凍結して、ファイルへ落とす
指定プロセスを、ノートパソコンのハイバネのようにfileへ落とす方法。CryoPID - A Process Freezer for Linux(http://cryopid.berlios.de/)
リブートや、別のマシンでも実行できる。CryoPID allows you to capture the state of a running process in Linux and save it to a file. This file can then be used to resume the process later on, either after a reboot or even on another machine.
2012-07-07 [長年日記]
_ kvm cpu type
kvmは現状下記のCPUタイプが利用できる。使い分ける必要がある時には有用だ。
$ kvm -cpu ? x86 qemu64 x86 phenom x86 core2duo x86 kvm64 x86 qemu32 x86 coreduo x86 486 x86 pentium x86 pentium2 x86 pentium3 x86 athlon x86 n270
2012-07-09 [長年日記]
_ [Debian] Lintian W:debian-rules-missing-recommended-target
lintianで上記のエラーが出ているのなら、debian/rules を編集する。どのように編集するかは、lintian -iで表示される例でわかると思う。
build: build-arch build-indepと一手間をかけたほうがよさげ。
build-arch: build-stamp
build-indep: build-stamp
build-stamp: ......
_ [Debian] Lintian W:format-3.0-but-debian-changes-patch
(http://lintian.debian.org/tags/format-3.0-but-debian-changes-patch.html)で出てくる奴、debian/source を 3.0 (qulit)にしたが、でっかい1つのpatch debian-changes-VERSION patch で運用されている場合にでる。
ケースバイケースだが、quiltで細かく分割するか、debian/source/optionに'single-debian-patch'を書く方法 --- 説明は、man dpkg-source の'debian/source/options'を参照せよ
後日談、結局 quilt rename -P orig newname でパッチの名前を変更して、DEP-3のフォーマットでパッチの記述を埋めて、ついでに sectionをeditorから lisp に変更して upload しておきました
_ [Debian] quilt は、debian/source/format が 3.0(quilt)の場合build時に必要なので、debian/control で記述される build-dep に入れる必要があるのではないか?
patchをquiltで管理するのでなければ、build-depにquiltを入れる必要なないのではないか?単にスタイルの話なので。という会話をした。
後日談、wiki.debian.org の 3.0 quilt の話で、そのままの QAがあった。のを発見
_ [Debian] hardening:dpkg-buildflags
hardening-checkプログラムで、strcpyやmemcpyなどの関数を使っていると、hardeningを使っていても、Fortify Source Fuctions:がNoになることがある。false positive。そのため、linitian の override をすることで lintian を黙らせる。
メンテナーガイド 5-13(http://www.debian.org/doc/manuals/maint-guide/dother.ja.html#lintian)を参照する。
ここでのtipsは、新しい形式のパッケージ(debhelper 7 and/or CDBS)でパッケージ作成を行う。または、旧式のパッケージ方式なら、dh_lintianをdh_md5sumおよびdh_builddebの前で実行する。です。
2012-07-11 [長年日記]
_ kvmで日本語変換キーを押下すると"no scancode found for keysym 0"と表示されて、日本語入力モードにならない。
kvm の -k ja オプションを使っていると発生する。たしかに外して起動すると日本語入力ができる。
_ RCバグの一覧
DebianのRCバグは、Release-critical bugs status(http://bugs.debian.org/release-critical/)よりは、Ultimate Debian Database (UDD) の "Bugs Search: multi-criteria search engine for bugs"を利用したほうがいいのね
_ 直すのが難しいなら、Request for Help(RFH)
対処しようとして、自分だけで対処できない bug なら、 Request For Help(RFH) をだして、助力が必要だというのも必要。
_ [Debian] chromium-browserの拡張プログラムを Debian Squeeze でも開発するには、
chromeと同じように、あるディレクトリに、html、js,pngなどを配置して読み込む。
詳しくは、Google Chrome Extensions (拡張機能) を作ってみる(http://www.serendip.ws/archives/3823)を参照した。残念ならfastladderはサービスが止まっているので、実際に全機能は試せないが、どのようなファイルが必要でどんな関係なのか?がわかる。
_ [Debian] hardeningのお供に --- blhc, hardening-check
debuildなどのログをテンポラリーファイルに落として、そのログファイルをblhc --- build log hardening check に食わせると、コンパイル時およびリンカへの指示が、hardeningの意図どおりに渡されているかを確認できる。パッケージ名は、コマンドと同じ、blhcです。
hardening-checkは、バイナリがhardeningされているかどうかを確認できる。ただし、ある条件下で誤検知する場合があるので最終的には、strcpy,memcpyなどの関数が使われている場合は、プログラムを見て誤検知であると確信できたら、lintianに指示して誤検知のエラーを無視するように伝える。
もちろん、無視していることはログにも残るので、自分がエラーを抑制しているのは、記録に残る。パッケージ名は、hardening-includesに入っている。
_ [Debian] experimental
試験版(experimental)(http://www.debian.org/doc/manuals/developers-reference/resources.html#experimental)の記述だけだとピンとこないが、freezeしているときに、unstableに新しいパッケージを突っ込んで、バグがあるとリリースマネージャからおしかりをうける。
そのため、この期間中は、ITPするようなものは、experimentalにいれておくのが良いそうだ。
もちろん、新しいstableがリリースされたら、unstableへdputすること。
2012-07-12 [長年日記]
_ [Debian] git-buildpackage
手元で新しいパッケージを作るにあたって、ようやくgit-buildpackageを使い、パッケージ開発をしてみるテスト。タイミングを作ってやらないとダメね。
gitとquiltとの連携は、どうなるのかはちょっと使い込んでいくと判るのかな。
gitをそこそこ使ったことがあれば、git-buildpackageは快適に使える環境だと今のところは思う。これで git remoteなどを定義すれば、push/pullもできるしね
_ [Debian] scim-*をgtk2からgtk3へのtransition
岩松さんが作った scim-canna への patch をみると、scimがビルドできないRCバグの原因は、scimをgtk2からgtk3へtransitionさせる必要があるのにできていない点にある。ような感じ
例えば、scim-primeのソースコード中に、GtkOptionMenuが使われているが、こいつはgtk2.4までサポートされており、gtk3では削除されている。代わりにgtk3のGtkComboBox APIを使えってことらしい。他にもtooltipsやvbox,hboxなど他のディストリビューションのことも考えて、#if !GTK_CHECK_VERSION(2, 12, 0)とかでバージョンチェックをして、gtk2およびgtk3の両方でコンパイルさせる。
2012-07-13 [長年日記]
_ [Debian] sbuild
/var/lib/sbuild/build /var/lib/sbuild/apt-keys
/usr/bin/sbuild-shell /usr/bin/sbuild-upgrade /usr/bin/sbuild-unhold /usr/bin/sbuild-hold /usr/bin/sbuild-checkpackages /usr/bin/sbuild-abort /usr/bin/sbuild-distupgrade /usr/bin/sbuild-update /usr/bin/sbuild-clean /usr/bin/sbuild /usr/bin/sbuild-apt
/usr/sbin/sbuild-createchroot /usr/sbin/sbuild-adduser
/usr/share/man/man1/sbuild-checkpackages.1.gz /usr/share/man/man1/sbuild-apt.1.gz /usr/share/man/man1/sbuild-update.1.gz /usr/share/man/man1/sbuild-abort.1.gz /usr/share/man/man1/sbuild-shell.1.gz /usr/share/man/man1/sbuild-hold.1.gz /usr/share/man/man1/sbuild.1.gz /usr/share/man/man1/sbuild-clean.1.gz /usr/share/man/man1/sbuild-unhold.1.gz /usr/share/man/man1/sbuild-upgrade.1.gz /usr/share/man/man1/sbuild-distupgrade.1.gz /usr/share/man/man5 /usr/share/man/man5/sbuild.conf.5.gz /usr/share/man/man8 /usr/share/man/man8/sbuild-adduser.8.gz /usr/share/man/man8/sbuild-createchroot.8.gz /usr/share/man/man7 /usr/share/man/man7/sbuild-setup.7.gz
2012-07-14 [長年日記]
_ gtk_combo_box_text_append
gtk2からgtk3に移行する手助けのドキュメントとして、Migrating from GtkOptionMenu and GtkCombo to GtkComboBox and GtkComboBoxEntry(http://developer.gnome.org/gtk/2.24/gtk-migrating-GtkComboBox.html)を参考にした。このドキュメントの「存在」は、かなりありがたかったのですが、これを見ながら、patchを作ろうかと作業していました。
作業を進めていくと、
GtkWidget *combo_box; combo_box = gtk_combo_box_text_new (); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), "First Item"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), "Second Item"); gtk_combo_box_text_append (GTK_COMBO_BOX_TEXT (combo_box), "Third Item");の例でgtk_combo_box_text_append の関数を使う例があるわけですが、実際にコンパイルすると、
scim_prime_imengine_setup.cpp:848:78: error: too few arguments to function 'void gtk_combo_box_text_append(GtkComboBoxText*, const gchar*, const gchar*)' In file included from /usr/include/gtk-3.0/gtk/gtk.h:84:0, from scim_prime_imengine_setup.cpp:29: /usr/include/gtk-3.0/gtk/gtkcomboboxtext.h:79:15: note: declared here scim_prime_imengine_setup.cpp:849:68: error: too few arguments to function 'void gtk_combo_box_text_append(GtkComboBoxText*, const gchar*, const gchar*)' In file included from /usr/include/gtk-3.0/gtk/gtk.h:84:0, from scim_prime_imengine_setup.cpp:29: /usr/include/gtk-3.0/gtk/gtkcomboboxtext.h:79:15: note: declared hereのようなエラーが出て、引数の数がちがうんじゃねーの?とか怒られてます。ということで、今となってはドキュメントをそのままパクってもダメなので、ちょっとヘッダーファイルを確認してから、実際の使い方を学ばねばなりません。