最新 追記

ポケットを空にして。

1985|10|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|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|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2100|01|

「人の心に残るというのが大事」と言う話。

何か連絡がある場合はメールでどうぞ(過去の日記へのツッコミは基本的にみていません)
プレゼントは随時受け付けております :-) ここ最近のツッコミ/トラックバックリスト。


2013-01-03 [長年日記] この日を編集

DebianでのRuby関連パッケージのことはじめ

誰かの役に立つかもしれないので、試考錯誤の記録を残そうかと。

  • Debian Wiki で Ruby について探すと、開発のページがあることが示唆されます。こちらの指示にしたがいましょう。
  • 開発のページは2つのグループがあることが述べられています。
    • Ruby本体についての議論をする「pkg-ruby team」
    • Ruby関連ライブラリ/アプリケーションについてのメンテナンスをする「pkg-ruby-extras team」
    • 私はRubyGemsをパッケージにする作業をするので「pkg-ruby-extras」が適当そうです
  • まず、Pkg-ruby-extras-maintainers メーリングリストにsubscribe してみましょう。
  • それから、Debian での sourceforge 的位置づけの Alioth.debian.org のpkg-ruby-extrasページのアカウントを作ります (Debian Developerなら作成済み)
  • 過去ログでも読んでおきましょうか…あれ、思ったよりもあんまり活発に議論はされていないですね。
  • さて、早速パッケージングのページを見て作業を始めましょう。「Joining the pkg-ruby-extras team」の項目はほぼクリアですね(全ドキュメント見てね、はちょっと難しいな…)
  • ソースを mr コマンドでチェックアウトしましょう。ちなみに squeeze の mr は古いそうなので、Wheezy以降で。
    $ git clone henrich@git.debian.org:/git/pkg-ruby-extras/pkg-ruby-extras.git
    $ mr -j 5 checkout (エラーになるので次の行で対応)
    $ echo "/home/henrich/src/ruby/pkg-ruby-extras/.mrconfig" > ~/.mrtrust
    $ mr -j 5 checkout
    (snip)
    mr checkout: finished (368 ok; 10 skipped)
    
  • 400個近くチェックアウトされた、ですか…巨大だな。では、次に自分の作ったパッケージを登録しましょう。
  • git.debian.org にログインして、今回は ruby-bcat パッケージを登録するために以下を実行
    henrich@vasks:~$ cd /git/pkg-ruby-extras
    henrich@vasks:/git/pkg-ruby-extras$ ./setup-repository ruby-bcat
    Initialized empty shared Git repository in /srv/git.debian.org/git/pkg-ruby-extras/ruby-bcat.git/
  • ローカルに戻ってソースをリポジトリに登録作業。
    $ ./make-mrconfig # これで mr で取ってくるパッケージリストを更新
    $ mr -j 5 checkout # 再度チェックアウト
    $ apt-get install git-buildpackage
    $ cd ruby-bcat
    $ git import-dsc --pristine-tar ~/src/cloud/ruby-packages/ruby-bcat_0.6.2-1.dsc  #この時点で既にパッケージの雛形はできていることが前提。.dsc ファイルを import する
    gbp:info: Tag upstream/0.6.2 not found, importing Upstream tarball
    pristine-tar: committed ruby-bcat_0.6.2.orig.tar.gz.delta to branch pristine-tar
    gbp:info: Version '0.6.2-1' imported under 'ruby-bcat'
    $ git tag -d debian/0.6.2-1
    Deleted tag 'debian/0.6.2-1' (was 698ce79) # まだパッケージが完成してないのでタグを外す
    $ git push --all
    Counting objects: 56, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (50/50), done.
    Writing objects: 100% (56/56), 29.26 KiB, done.
    Total 56 (delta 2), reused 0 (delta 0)
    To git+ssh://git.debian.org/git/pkg-ruby-extras/ruby-bcat.git
     * [new branch]      master -> master
     * [new branch]      pristine-tar -> pristine-tar
     * [new branch]      upstream -> upstream
    $ git push --tags
    Counting objects: 1, done.
    Writing objects: 100% (1/1), 176 bytes, done.
    Total 1 (delta 0), reused 0 (delta 0)
    To git+ssh://git.debian.org/git/pkg-ruby-extras/ruby-bcat.git
     * [new tag]         upstream/0.6.2 -> upstream/0.6.2
  • で、色々いじって push
    $ git push
  • 問題なければ tag つける
    $ git tag debian/0.6.2-1
    $ git push --tags
  • git-buildpackage すればパッケージが作成されるので、dput で push する。

ん、git のツリー直下で git-buildpackage するのは問題ないのかな?

どれ作業してるか判らなくなる

  • ruby-bcat は new queue に入れた
  • ruby-aruba を作業して git に登録
  • ruby-aruba が通ったから、ruby-simplecov がいけるかな、と思ったら ruby-capybara と ruby-appraisal が必要
    • ruby-capybara には ruby-launchy と ruby-fuubar が必要
      • ruby-fuubar には ruby-rspec-instafail が必要 → とりあえず ITP して git に登録
        あと、ruby-progressbar には実装が二つあって、Debian に入っているのと違うのが必要…なんだけど、とりあえず Debian パッケージの方を無理やり使うようにパッチした。一応ビルドは通る。
      • →ruby-rspec-instafail を git に登録、test がよくわからない。
      • ruby-launchy には ruby-spoon パッケージと ruby-ffi の更新が必要…
        ruby-spoon は ITP して git に登録...しようとしたら被ってた。アップデートしていいか一応確認しておく。これはそのまま放り込めそう。ruby-ffi はどうするかな。
    • ruby-appraisal は素直にパッケージにすれば良さそう…修正が必要だけど。

2013-01-04 [長年日記] この日を編集

mplayerを使おうとして気になったことがあったのでメモ

libvdpau_nouveau.soが無いという。はて。

spamassasin日本語化パッチ

こちらが配布元。はて、upstreamのissue登録はあるのかな?
この辺らしい。

http://githubredir.debian.net/が500エラー

なんだろう。問い合わせてみた

dnscacheのCVE

Fedoraはパッチ当てて終わりのようだが、前にこれじゃ意味ないって話になっていたような…


2013-01-05 [長年日記] この日を編集

雑作業

  • sysstat の ja.po 更新
  • mirmonの返事
  • unidicのITP
    blockerとして同梱PDFのソースがない件があるので、これで一旦区切り。
  • azureagentの確認とアップロード→問い合わせdone
  • 尻切れとんぼになっていたIceweasel in Wheezyの件を蒸し返した
  • 先日のCDN障害の件をつついた

2013-01-06 [長年日記] この日を編集

やること

  • rubygem 関連パッケージのコミット

雑作業

  • naist-jdic,darts,chasen,unidic-mecabをcollab-maintに登録するや否や、問いかけてみた。
  • Fedoraのファームウェア関連のライセンシングについて訳してみた
  • 細々とした作業。DEP5対応とか。

2013-01-07 [長年日記] この日を編集

net-snmpと戯れ。

Debian の net-snmp が古いまんまだよーという嘆きを以前に twitter 上で聞いて対処しようとしてそのまま延び延びになっていたのを再開。で、色々ビルドをしていてどうもビルドエラーになる。

/usr/bin/ld: cannot find -linux-gnu

python/setup.py 中に以下のようなコードがある。

if intree:
    netsnmp_libs = os.popen(basedir+'/net-snmp-config --libs').read()
    libdir = os.popen(basedir+'/net-snmp-config --build-lib-dirs '+basedir).read()
    incdir = os.popen(basedir+'/net-snmp-config --build-includes '+basedir).read()
    libs = re.findall(r"-l(\S+)", netsnmp_libs)
    libdirs = re.findall(r"-L(\S+)", libdir)
    incdirs = re.findall(r"-I(\S+)", incdir)
else:
    netsnmp_libs = os.popen('net-snmp-config --libs').read()
    libdirs = re.findall(r"-L(\S+)", netsnmp_libs)
    incdirs = []
    libs = re.findall(r"-l(\S+)", netsnmp_libs)

実際 net-snmp-config --libs を動かすと以下のようになる。

-Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm

正規表現で -l で始まるものを拾い出しているので -linux-gnu がマッチしてしまい、ライブラリとして inux-gnu という存在しないものをリンクしようとする。ヒドス。解決方法は…単純に -l の前に空白を置くだけ。

>>> import os
>>> import re
>>> import string
>>> import sys
>>> netsnmp_libs="-Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm"
>>> print netsnmp_libs
-Wl,-z,relro -Wl,-z,now -L/usr/lib/x86_64-linux-gnu -lnetsnmp -lcrypto -lm
>>> re.findall(r"-l(\S+)", netsnmp_libs)
['inux-gnu', 'netsnmp', 'crypto', 'm']
>>> re.findall(r" -l(\S+)", netsnmp_libs)
['netsnmp', 'crypto', 'm']

まだ他にも直すところがありそう。

試しにtestをenableにしたら

We failed these 52 tests:
  Checking the Net-SNMP configure script validity ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T000configure_simple )
  SNMPv1 support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T001snmpv1get_simple )
  SNMPv2c set of system.sysContact.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T0141snmpv2cset_simple )
  SNMPv2c get of system.sysUpTime.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T014snmpv2cget_simple )
  SNMPv2c getnext of system.sysUpTime ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T015snmpv2cgetnext_simple )
  SNMPv2c bulkget of system components ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T0160snmpv2cbulkget_simple )
  SNMPv2c get of system.sysUpTime.1 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T019snmpv2cnosuch_simple )
  SNMPv3 get using noAuthNoPriv of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T020snmpv3get_simple )
  SNMPv3 getnext using initial of .1.3.6.1.2.1.1.3 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T021snmpv3getnext_simple )
  SNMPv3 bulkget of system ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T0220snmpv3bulkget_simple )
  SNMPv3 get using MD5/noPriv of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T022snmpv3getMD5_simple )
  SNMPv3 get using MD5/AES of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T023snmpv3getMD5AES_simple )
  SNMPv3 get using MD5/DES of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T023snmpv3getMD5DES_simple )
  SNMPv3 get using SHA/noPriv of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T024snmpv3getSHA1_simple )
  SNMPv3 get using SHA/DES of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T025snmpv3getSHADES_simple )
  SNMPv3 get using SHA/AES of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T026snmpv3getSHAAES_simple )
  SNMPv3 get using default config of .1.3.6.1.2.1.1.3.0 ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T027snmpv3Defaults_simple )
  for failure of SNMPv3 get using unknown user. ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T028snmpv3getfail_simple )
  SNMPv3 agent USM user management with snmpusm ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T030snmpv3usercreation_simple )
  SNMPv3 snmptrapd USM user management with snmpusm ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T035snmpv3trapdusermgmt_simple )
  SNMPv3 informs (noAuthNoPriv) received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T049snmpv3inform_simple )
  SNMPv3 informs (authNoPriv) received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T049snmpv3informauth_simple )
  SNMPv3 informs (authPriv) received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T049snmpv3informpriv_simple )
  SNMPv3 traps received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T050snmpv3trap_simple )
  SNMPv2c traps received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T051snmpv2ctrap_simple )
  SNMPv2c informs received and sent by tools ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T052snmpv2cinform_simple )
  authentication failure traps are sent by snmpd ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T058agentauthtrap_simple )
  snmptrapd traphandle: launching external shell script ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T059trapdtraphandle_simple )
  snmptrapd embedded perl support (NetSNMP::TrapReceiver) ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T060trapdperl_simple )
  snmpd embedded perl support (using NetSNMP::agent) ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T061agentperl_simple )
  extending agent functionality with extend ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T065agentextend_simple )
  extending agent functionality with pass ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T066pass_simple )
  extending agent functionality with pass_persist ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T067passpersist_simple )
  com2sec6 directive ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T071com2sec6_simple )
  com2secunix directive ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T072com2secunix_simple )
  that the agent responds properly to a kill -HUP ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T100agenthup_simple )
  AgentX GET support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T110agentxget_simple )
  AgentX SET support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T111agentxset_simple )
  AgentX illegal SET handling support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T112agentxsetfail_simple )
  AgentX trap sending support using agentxtrap ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T114agentxagentxtrap_simple )
  AgentX subagent in Perl (using NetSNMP::agent) ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T115agentxperl_simple )
  Proxy GET support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T120proxyget_simple )
  Proxy SET support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T121proxyset_simple )
  Proxy illegal SET handling support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T122proxysetfail_simple )
  SNMPv1 vacm acceptance support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T130snmpv1vacmget_simple )
  SNMPv2 vacm acceptance support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T131snmpv2cvacmget_simple )
  SNMPv3 vacm acceptance support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T132snmpv3vacmget_simple )
  SNMPv1 vacm denial support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T140snmpv1vacmgetfail_simple )
  SNMPv2 vacm denial support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T141snmpv2cvacmgetfail_simple )
  SNMPv3 vacm denial support ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T142snmpv3vacmgetfail_simple )
  uptime using HOST-RESOURCES ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T152hostuptime_simple )
  full snmpwalk (SNMPv2c) against agent (may take time) ( /tmp/buildd/net-snmp-5.7.2~dfsg/testing/fulltests/default/T200snmpv2cwalkall_simple )
make[2]: *** [test] Error 1

oh...


2013-01-15 [長年日記] この日を編集

net-snmp5.7.2ベースでパッケージが大体できた

が、課題あり。

  • -dbgパッケージがおかしい。
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/cf/
    -rw-r--r-- root/root     15986 2013-01-14 16:25 ./usr/lib/debug/.build-id/cf/ee060726c38b3a4b0de28b588a1d22cca8ea33.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/06/
    -rw-r--r-- root/root     34563 2013-01-14 16:25 ./usr/lib/debug/.build-id/06/2b1df36b1a2795c5f128326e56e38669bacdc3.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/fd/
    -rw-r--r-- root/root     13330 2013-01-14 16:25 ./usr/lib/debug/.build-id/fd/8ea1a6d71e303943309982bbf559dffbc36330.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/d2/
    -rw-r--r-- root/root      5270 2013-01-14 16:25 ./usr/lib/debug/.build-id/d2/8a247a539e18ba9a3b25a8db39bb4f381802a5.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/d5/
    -rw-r--r-- root/root     56296 2013-01-14 16:25 ./usr/lib/debug/.build-id/d5/ea4d24e4d6bc891ff0a2f8786a04a75be5a2a4.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/c8/
    -rw-r--r-- root/root    673505 2013-01-14 16:25 ./usr/lib/debug/.build-id/c8/eded6bb123358eb90ef9898e2a1791b043de70.debug
    -rw-r--r-- root/root     36048 2013-01-14 16:25 ./usr/lib/debug/.build-id/c8/1947bc871721f4087128386e17d21614fc0365.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/44/
    -rw-r--r-- root/root    673505 2013-01-14 16:25 ./usr/lib/debug/.build-id/44/197cb5f3aea7324e283178d8eb744d0f8c02b2.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/86/
    -rw-r--r-- root/root     13859 2013-01-14 16:25 ./usr/lib/debug/.build-id/86/806d2e75e4688701ac87f38da5774397822772.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/08/
    -rw-r--r-- root/root   1351013 2013-01-14 16:25 ./usr/lib/debug/.build-id/08/88ea36b175d62264b167c286d443965114b696.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/d1/
    -rw-r--r-- root/root     16406 2013-01-14 16:25 ./usr/lib/debug/.build-id/d1/bef84cc48d3ad709a1f731625e1560c68ed74d.debug
    -rw-r--r-- root/root     25696 2013-01-14 16:25 ./usr/lib/debug/.build-id/d1/54ff7307b44df90a3c130b6e3b58b1d679edfe.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/d8/
    -rw-r--r-- root/root     16563 2013-01-14 16:25 ./usr/lib/debug/.build-id/d8/8e03802040ed258c0e182d75a1d570b7f3beab.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/cb/
    -rw-r--r-- root/root     14327 2013-01-14 16:25 ./usr/lib/debug/.build-id/cb/056781f9dc9e480f1082d212832d041e030342.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/64/
    -rw-r--r-- root/root     22480 2013-01-14 16:25 ./usr/lib/debug/.build-id/64/f76ace66b2ef052dd1c61c239032f0233f9f31.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/b3/
    -rw-r--r-- root/root     67093 2013-01-14 16:25 ./usr/lib/debug/.build-id/b3/60d8e02e3ba4b3d9f5553edcdbb9318d384084.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/a7/
    -rw-r--r-- root/root     50245 2013-01-14 16:25 ./usr/lib/debug/.build-id/a7/d2cb27615a333c21969ac8fc367d746db0e59f.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/03/
    -rw-r--r-- root/root     29523 2013-01-14 16:25 ./usr/lib/debug/.build-id/03/2e63d7f122f42b44c18413ab99141d421ba9b9.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/7d/
    -rw-r--r-- root/root     26149 2013-01-14 16:25 ./usr/lib/debug/.build-id/7d/cc4ab7ff4439de4d4b084f3e20c78b9ee938ef.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/5d/
    -rw-r--r-- root/root     15760 2013-01-14 16:25 ./usr/lib/debug/.build-id/5d/2338c8b39a5b048e9c6c7c3301c163e178cbb0.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/65/
    -rw-r--r-- root/root     17735 2013-01-14 16:25 ./usr/lib/debug/.build-id/65/6e0a489117c5ea067358671d38c3d4d43f26b4.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/78/
    -rw-r--r-- root/root     36837 2013-01-14 16:25 ./usr/lib/debug/.build-id/78/53c178a35b05c7749e636d0124c132c9f7790b.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/ef/
    -rw-r--r-- root/root     23973 2013-01-14 16:25 ./usr/lib/debug/.build-id/ef/e60619435ee7b03eec1b9535716b74c6bb1a71.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/c0/
    -rw-r--r-- root/root     13326 2013-01-14 16:25 ./usr/lib/debug/.build-id/c0/e614fba197d25f19cd191f692b02b277ca9679.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/34/
    -rw-r--r-- root/root     18686 2013-01-14 16:25 ./usr/lib/debug/.build-id/34/171b9ee0c75ec9f0d8c13160ff33cea10d78de.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/8b/
    -rw-r--r-- root/root     45655 2013-01-14 16:25 ./usr/lib/debug/.build-id/8b/0871a56d0b197cdac284e3da83110dd8368367.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/c6/
    -rw-r--r-- root/root     25788 2013-01-14 16:25 ./usr/lib/debug/.build-id/c6/db3ffe46a41d0f1d06cff962aa34771090dfe4.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/23/
    -rw-r--r-- root/root     14365 2013-01-14 16:25 ./usr/lib/debug/.build-id/23/6ef2469fcc6970840938b7654b10132927eeb5.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/4a/
    -rw-r--r-- root/root     19750 2013-01-14 16:25 ./usr/lib/debug/.build-id/4a/60ed9951b340e0f097b95effafaaa0763b5f08.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/ed/
    -rw-r--r-- root/root    117599 2013-01-14 16:25 ./usr/lib/debug/.build-id/ed/20586a3a6bc2d7d42780fdcb1ac92fec15c043.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/85/
    -rw-r--r-- root/root     15980 2013-01-14 16:25 ./usr/lib/debug/.build-id/85/fd2dbb3727ab7836e9474c6038e7a203f99337.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/88/
    -rw-r--r-- root/root     26306 2013-01-14 16:25 ./usr/lib/debug/.build-id/88/617ac3052976efa8d52228e9c131ef1d7a2a36.debug
    drwxr-xr-x root/root         0 2013-01-14 16:25 ./usr/lib/debug/.build-id/f6/
    -rw-r--r-- root/root    460640 2013-01-14 16:25 ./usr/lib/debug/.build-id/f6/b629f6817895bd887d401bc8be28f9cf36569b.debug
  • 前述のとおり、テストがこけまくる。
  • そもそも実際使ってテストまだ。

2013-01-21 [長年日記] この日を編集

なんでbindの脆弱性がisc-dhcpでトラックされてるん?

げ、4.2.xからbindのソースがdhcpの中に含まれているとな。
確かにbindってディレクトリがあってその中のbind.tar.gzを展開したらbind-9.8.3とかいうディレクトリが出てきたよ…oh...。

cveを追っていてドキュメントの修正に気づく

pythonのドキュメント翻訳にちょっとした間違いがあったので 報告しておいた。

dh_stripの謎→Build IDベースになっていた

dh_strip -plibsnmp30 --dbg-package=libsnmp30-dbg
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/b3
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmptrapd.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/b3/60d8e02e3ba4b3d9f5553edcdbb9318d384084.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/b3/60d8e02e3ba4b3d9f5553edcdbb9318d384084.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmptrapd.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/b3/60d8e02e3ba4b3d9f5553edcdbb9318d384084.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmptrapd.so.30.0.2
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/54
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmphelpers.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/54/a1e755a8f86443c04851bdcf8a09af5241097d.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/54/a1e755a8f86443c04851bdcf8a09af5241097d.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmphelpers.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/54/a1e755a8f86443c04851bdcf8a09af5241097d.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmphelpers.so.30.0.2
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/58
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libsnmp.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/58/af8343357054e5330ccec757b5245b80c38b05.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/58/af8343357054e5330ccec757b5245b80c38b05.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libsnmp.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/58/af8343357054e5330ccec757b5245b80c38b05.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libsnmp.so.30.0.2
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/45
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmp.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/45/9632afa8f974ecf0a0200f5b141bdcd9e9efaf.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/45/9632afa8f974ecf0a0200f5b141bdcd9e9efaf.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmp.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/45/9632afa8f974ecf0a0200f5b141bdcd9e9efaf.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmp.so.30.0.2
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/a0
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpmibs.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/a0/472dfa237f2c3d22e9de97835029859f17d471.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/a0/472dfa237f2c3d22e9de97835029859f17d471.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpmibs.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/a0/472dfa237f2c3d22e9de97835029859f17d471.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpmibs.so.30.0.2
        install -d debian/libsnmp30-dbg/usr/lib/debug/.build-id/6b
        objcopy --only-keep-debug --compress-debug-sections debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpagent.so.30.0.2 debian/libsnmp30-dbg/usr/lib/debug/.build-id/6b/35ddc1ad5ccc089d9e4bc98b7890a1e1c94cf7.debug
        chmod 644 debian/libsnmp30-dbg/usr/lib/debug/.build-id/6b/35ddc1ad5ccc089d9e4bc98b7890a1e1c94cf7.debug
        strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpagent.so.30.0.2
        objcopy --add-gnu-debuglink debian/libsnmp30-dbg/usr/lib/debug/.build-id/6b/35ddc1ad5ccc089d9e4bc98b7890a1e1c94cf7.debug debian/libsnmp30/usr/lib/x86_64-linux-gnu/libnetsnmpagent.so.30.0.2

正常な方は

dh_strip -plibsnmp15 --dbg-package=libsnmp15-dbg
	install -d debian/libsnmp15-dbg/usr/lib/debug//usr/lib
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libsnmp.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libsnmp.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libsnmp.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libsnmp.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libsnmp.so.15.1.2 debian/libsnmp15/usr/lib/libsnmp.so.15.1.2
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libnetsnmptrapd.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmptrapd.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmptrapd.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libnetsnmptrapd.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmptrapd.so.15.1.2 debian/libsnmp15/usr/lib/libnetsnmptrapd.so.15.1.2
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libnetsnmpmibs.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpmibs.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpmibs.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libnetsnmpmibs.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpmibs.so.15.1.2 debian/libsnmp15/usr/lib/libnetsnmpmibs.so.15.1.2
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libnetsnmphelpers.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmphelpers.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmphelpers.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libnetsnmphelpers.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmphelpers.so.15.1.2 debian/libsnmp15/usr/lib/libnetsnmphelpers.so.15.1.2
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libnetsnmpagent.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpagent.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpagent.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libnetsnmpagent.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmpagent.so.15.1.2 debian/libsnmp15/usr/lib/libnetsnmpagent.so.15.1.2
	objcopy --only-keep-debug debian/libsnmp15/usr/lib/libnetsnmp.so.15.1.2 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmp.so.15.1.2
	chmod 644 debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmp.so.15.1.2
	strip --remove-section=.comment --remove-section=.note --strip-unneeded debian/libsnmp15/usr/lib/libnetsnmp.so.15.1.2
	objcopy --add-gnu-debuglink debian/libsnmp15-dbg/usr/lib/debug//usr/lib/libnetsnmp.so.15.1.2 debian/libsnmp15/usr/lib/libnetsnmp.so.15.1.2

dh_stripを見ると

        if (! compat(8) &&
            `readelf -n $file`=~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) {
                $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug"
        }
        else {
                $debug_path=$desttmp."/usr/lib/debug/".$base_file;
        }

compat 8 じゃないとbuildidなディレクトリを作る?

で、changelogを見ると、どうやらbuild idの方を使うようになった様子。

debhelper (8.9.13) unstable; urgency=low
 
  * Pass CPPFLAGS to qmake. Closes: #646129 Thanks, Felix Geyert
  * dh_strip: Use build-id in /usr/lib/debug in v9.
    Closes: #642158 Thanks, Jakub Wilk

#642158を見よう、ということでこの件は一応解決。


2013-01-24 [長年日記] この日を編集

net-snmp更新話

5.7.2ベースにしてみましたが、以下の問題が残っています。

  • hardening が -pie しないと perl module の構築でこける。
  • テストが 4 つこける
  • MIBファイルがおそらく改変再配布不可なのがあるので、それを除去する必要があり、さらにそれを除去したらまともに動かせそうに無い…

2013-01-26 [長年日記] この日を編集

アイデアめも

  • パッケージングエラー/ワーニングを減らすにはどうするか?→「ラチェット方式」(継続的デリバリー P.116)=以前のチェックインと警告やTDDOの数を比較し、数が増えたらビルドを失敗させる→パッケージのアップロード時にlintian error/warningを比較し、増えていたらrejectさせる
  • どこに実装する?→dputに実装すると良いのでは
  • サーバーサイドで実施すると、サイドエフェクトが大きすぎた時に戻すのに時間がかかったり不満が高まったりする。負荷も大きくなる。
  • ツール側で実施したら、処理に時間がかかっても各ノードで分散されているので大して影響はない。サイドエフェクトが大きくてもexcludeなオプションをつけておけば回避可能。
  • dputだとアップロード時に気づく形でちょっとタイムラグがある →debuildに実装したら?
    →debuildでlintianを呼ぶときにオプションをつける形にする
    →lintianに適切なオプションを実装する(過去のlintianの結果を取得して、数を比較する)
    →多分lintian.debian.orgにはパッケージのバージョンごとにファイルは用意していないので、サーバー側で生成する形にする

オチはありません。

直した方が良さそうなlintian warning

W: net-snmp source: dependency-is-not-multi-archified libsnmp30 depends on libsnmp-base (multi-arch: no)
W: net-snmp source: dependency-is-not-multi-archified libsnmp-dev depends on libsnmp-perl (multi-arch: no)
W: libsnmp-dev: manpage-has-errors-from-man usr/share/man/man3/netsnmp_config_api.3.gz 368: warning [p 4, 10.2i]: cannot adjust line
W: libsnmp-dev: manpage-has-errors-from-man usr/share/man/man3/netsnmp_mib_api.3.gz 280: warning [p 3, 7.5i]: cannot adjust line
W: snmp: manpage-has-errors-from-man usr/share/man/man1/snmpcmd.1.gz 891: warning [p 11, 9.2i]: can't break line
W: libsnmp-base: manpage-has-bad-whatis-entry usr/share/man/man5/mib2c.conf.5.gz
W: libsnmp-base: manpage-has-errors-from-man usr/share/man/man5/variables.5.gz 87: warning [p 1, 10.0i]: cannot adjust line
W: libsnmp-dev: executable-not-elf-or-script etc/snmp/mib2c.perl.conf
W: libsnmp-dev: executable-not-elf-or-script etc/snmp/mib2c.row.conf

大体修正終わり。パッケージをとりあえず置いてみた

次はMIBファイルどれがアウトなのかを確認する、だなぁ…
→RFCのライセンスとか変わってないかを確認する


2013-01-27 [長年日記] この日を編集

tiarra を ITP した

IRC proxyな tiarra を作者の Topia さんにも会ったということもあり、いい機会だったので ITP した。

ライセンスをメールで問い合わせる

嘘英語で送りつける。さて、吉と出るか凶と出るか。

これがうまくいったら、upstreamにapply要請する方向になる。

Closes: 44373 344979 397573 411858 428824 445608 447705 453124 495060 505149 514842 527231 528104 557186 557348 558356 561124 568550 572414 581185 583391 599929 603593 611837 616437 616913 623499 631063 641608 647468 661899 668545 672063 673197 684388

という所なので、ぜひputしてしまいたい。


2013-01-28 [長年日記] この日を編集

loqui update

パッチがマージされているようなのでdrop。

めも

sysvinitの2.88dsf-39はhurdでこける。2.88dsf-34をsnapshotから取ってきて一時しのぎをした。


2013-01-29 [長年日記] この日を編集

MAXPATHLENがないよ@hurdさん

perl-5.14.2/ext/File-Glob/bsd_glob.cのようにする。

#ifndef MAXPATHLEN
#  ifdef PATH_MAX
#    define     MAXPATHLEN      PATH_MAX
#  else
#    define     MAXPATHLEN      1024
#  endif
#endif