«前の日(05-04) 最新 次の日(05-06)» 追記

ポケットを空にして。

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|

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

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


2004-05-05 まぶたの郷里 この日を編集

d-i それから

先日衝動買いしてしまったdellの安サーバにて こちらのイメージ を試してみる。(そんなもん買ってるから(略)

  • linux26 vga=791 で起動。
    vgaオプションつけると表示が広めになるのでおすすめ。
  • 「'modprobe -v usb-strage' の実行中にエラーが発生しました」
    「'modprobe -v ide-generic' の実行中にエラーが発生しました」
    「'modprobe -v ide-disk' の実行中にエラーが発生しました」
    「'modprobe -v ide-cd' の実行中にエラーが発生しました」
    と画面が真っ赤になってエラーが。無視してさくさく。
  • NICドライバが検出されなかった…。
    手動でe1000モジュールを選択したが、成功したか失敗したのか表示されず。
    他のマシンからping打って反応あるから大丈夫っぽいな
    で、いきなりDHCP設定に飛ばされる。あれ、固定IPを選択したい場合はどうするのだろうか?
    そもそもネットワークケーブルを挿していないのでDHCPは当然失敗。再試行するかに「いいえ」で答えて、ようやくIPアドレスを固定で設定となった。
  • 「'modprobe -v usb-strage' の実行中にエラーが発生しました」
    「'modprobe -v ide-generic' の実行中にエラーが発生しました」
    「'modprobe -v ide-disk' の実行中にエラーが発生しました」
    「'modprobe -v ide-cd' の実行中にエラーが発生しました」
    と画面が真っ赤になってエラーが again。
  • あとはつつがなく終了。Xはいれてないので自動認識あたりがどうかは不明。
  • あ、/etc/environment に LANG が書かれてるせいでrootでも日本語表示しようとしてconsoleで文字化け起こしてたのか。grepして気づいた。
  • うへ、modconfが入ってない!デフォルトで入らなくなってるのか…不便だなぁ…modprobeしなさい、ってことなんだろうか。
  • 昔のようにpcmciaのパッケージを削除されるかどうかを聞かれなくなった。で、当然のようにpcmciaパッケージは入ったまま。
    この点は前のほうがよかったと思う。
    (ついでにpppもいらなかったりするけど、まぁこれは必要になった際に大変そうなこともあるので手動削除でいいだろう)
  • うひ、eximのuserが「Debian-exim」だって。これっていいんかなーなんか意味無く気持ち悪い(苦笑)
    そうだ、daemonで使うユーザには「hogefuga daemon user」とかユーザ名のところに入らないかなー

今日の俺的 po-debconf/ja

setserial の po が送ったときの setserial.ja.po のままのようだったので、bugをreopenしておく。
このメンテナ、imp3も持ってるので、先日CVSに取り込んだ旨貰ってたのを思い出し、あっちも必要かな?と一言添えておく。が、例によって怪しい英語なので伝わるかは不明

debian-installerの感想としては

良く出来てると思います。
パーティションをいちいち分けるとか考えなければハマるところは少なめでしょう。
以前のインストーラで駄目だった人も、 ある程度までは 使えるようになるかなーと思っています。

鬼門は「X の設定」。これに尽きます。
他のdistroが出来てるところなので、比較されてしまうのがつらいかなーと。(一度リリースしてしまってから、この部分だけをひたすら改善しまくるチーム作って、次のバージョンとしてすぐにリリースでも良いかなーとか思ってたり。SP1とかいって(わら)

GUIの設定ツールの要不要

まず、必要かといえば必要だと思います。
問題は「CUIの単なる置き換えでは意味が無い」ということです。
GUIを使おうという層、つまりは「現状=CUIツールでは満足しない」人へのアプローチとしては弱いという話。単なる置き換えなら、CUIと同じわけでGUIを使う意味はなんじゃらほい、と。
GUIというのは無駄に膨大な情報量を活かして利用者に視覚的な訴えを行うのが肝だと思ってるので、widgetの制限から貧弱な情報しか与えられないCUIと同じ情報表示のアプローチでは使う気にはなかなかならないだろうなーと思う次第。
(逆に膨大すぎて整理しきれない悪い例のGUIも多々ありますけどね)


2005-05-05 この日を編集

停電につきサーバメンテナンス

HDD追加して rsync 開始。さて、いつ終わるかな。


2010-05-05 この日を編集

DDになったらやること(まだ)

  • いきなり DM で使ってた GPG キーでのアップロードがダメになってるようなので、ボチボチとパッケージの debian/control の Maintainer や Uploaders を .org アドレスなアドレスに更新して、DMupload の欄を削除して、changelog に記載してアップロードというお仕事が…って40個あるぜ orz
  • あ、ssh キーも migration して .svn なのとか .git なのをゴリゴリと
  • そーいやそろそろ名刺作るかね、って誰に言えばいいんだこれ

bug triage

tags 580287 patch
thanks

2014-05-05 この日を編集

openSUSEでパッケージングを試してみる

RPMパッケージの作成から参考になる知見を得るため、opensuse conference 2014のパッケージングワークショップの動画を見て、プレゼン資料を見ながら作業

henrich@linux-1xx3:~> sudo zypper ar http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_13.1/openSUSE:Tools.repo
root's password:
リポジトリ 'openSUSE.org tools (openSUSE_13.1)' を追加しています ..................................................[完了]
リポジトリ 'openSUSE.org tools (openSUSE_13.1)' を正常に追加しました
有効: はい (Y)
自動更新: いいえ (N)
GPG チェック: はい (Y)
URI: http://download.opensuse.org/repositories/openSUSE:/Tools/openSUSE_13.1/
  • 「自動更新: いいえ (N)」ってのはどういうことなんだろ。
  • 「GPG チェック: はい (Y)」ってのはパッケージごとにGPGキーでの署名が行われている?
henrich@linux-1xx3:~> sudo zypper ref
リポジトリ 'openSUSE-13.1-1.10' は最新の状態に更新済みです。
リポジトリ 'openSUSE.org tools (openSUSE_13.1)' のメタデータを取り出しています... ------------------------------------[\]
 
新しいリポジトリまたはパッケージの署名鍵を受信しました:
鍵 ID: 85753AA5EEFEFDE9
鍵名: openSUSE:Tools OBS Project 
鍵指紋: 0A031153E2F5E9DB71510D8C85753AA5EEFEFDE9
鍵の作成: 2008年01月23日 06時08分03秒
鍵の有効期限: 2014年12月20日 22時18分55秒
リポジトリ: openSUSE.org tools (openSUSE_13.1)
 
鍵を拒否しますか (R)? 一時的に信頼しますか (T)? それとも今後ずっと信頼しますか (A)? [r/t/a/? 全てのオプションを表示] (r): y
回答 'y' が正しくありません。 [r/t/a/? 全てのオプションを表示] (r): a
リポジトリ 'openSUSE.org tools (openSUSE_13.1)' のメタデータを取り出しています... .................................[完了]
リポジトリ 'openSUSE.org tools (openSUSE_13.1)' のキャッシュを構築しています ......................................[完了]
リポジトリ 'openSUSE-13.1-Non-Oss' は最新の状態に更新済みです。
リポジトリ 'openSUSE-13.1-Update' は最新の状態に更新済みです。
リポジトリ 'openSUSE-13.1-Update-Non-Oss' は最新の状態に更新済みです。
全てのリポジトリを更新しました。
  • デフォルトでNon-Ossのリポジトリを見にいくの?
  • 鍵を信頼しないで進められるのかな?
henrich@linux-1xx3:~> sudo zypper in --from openSUSE_Tools osc build
リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...
パッケージの依存関係を解決しています...
 
問題点: osc-0.145.0-131.1.noarch は python-urlgrabber を必要としていますが、この要求を解決する方法がありません
  インストール不可能なプロバイダ: python-urlgrabber-3.9.1-10.1.2.noarch[openSUSE-13.1-1.10]
 解決方法 1: patterns-openSUSE-minimal_base-conflicts-13.1-13.6.1.x86_64 のアンインストール
 解決方法 2: osc-0.145.0-131.1.noarch をインストールしない
 解決方法 3: osc-0.145.0-131.1.noarch をインストールしない
 解決方法 4: いくつかの依存関係を無視することによって osc-0.145.0-131.1.noarch を壊します
 
いずれかの数字を入力するか、キャンセル(C) を入力してください [1/2/3/4/c] (c): 1
依存関係を解決しています...
パッケージの依存関係を解決しています...
  • いきなり「インストール不可能なプロバイダ」ってのはいったい。。。
henrich@linux-1xx3:~> osc co home:darix:workshop
 
Your user account / password are not configured yet.
You will be asked for them below, and they will be stored in
/home/henrich/.oscrc for future use.
 
Creating osc configuration file /home/henrich/.oscrc ...
Username: henrich
Password: 
done
Server returned an error: HTTP Error 401: basic auth failed

適当なユーザー名とパスワードだとダメですね。これはopenSUSEのOBSサイトの方で先に作っておかないとダメなのかな?
→あたり。昔、アカウント作ってたのをすっかり忘れてたのでリセットした。しかし~/.oscrcファイルむっちゃながいね。。。

Use spdx format for licenses

copyright format 1.0だと spdx と違いあるかな?

Using %{?_smp_flags} can speed up your build a lot.

pbuilderrcで設定していることはあるけど、自動で判別してということではなかったから、こっちの方が賢い気がする。
できればデフォルトでsmpを判別、値を指定するようにして、例外でoffにするとかの指定をつけるようにするほうがいい気がする

"osc repos" to see what we can build for.
"osc build openSUSE_13.1 x86_64"

cowbuilder --basepath でビルド環境切り替えるのと同様か。事前に作らなくてもいいのは楽なのかな。何か改善できるかな

"pkgconfig($libraryname)" for portability, except for older distributions.

これはいいアイデアなのでは?

"osc vc"

dchと同じ。

"osc addremove"

これ、説明あったかな?

For many languages we already have guide lines or even tools (gem2rpm, py2pack)

gem2rpmってgem2debとどっちが先なのかな?

Create a seperate user/group for your package. Most of the time your daemon does not need root to run.

ユーザーとグループを作るのであれば、rulesに直書きではなく分かれたファイルにしておいた方がいいような気がしてきた

zypper in spec-cleaner

rpmlintとは別なの?

henrich@linux-1xx3:~> man spec-cleaner
-bash: man: コマンドが見つかりません

oh...

とりあえず spec-cleaner -d foobar.spec したら差分表示でいい感じに直してくれるようだ。

buildは.specファイルのあるディレクトリで osc build すれば /var/tmp/build-root/ 以下に chroot して作るっぽい。パッケージは一度取得すると/var/tmp/osbuild-packagecache/ 以下にバージョンごとにopenSUSE:13.1 のようにフォルダを作って、その下にアーキテクチャごとに分かれてパッケージが保存されているようだ。…けど、一度取得したパッケージを再展開している様子が見えない。どこに展開したイメージを保存するの?

$ osc build openSUSE_13.1  x86_64
Building librelp.spec for openSUSE_13.1/x86_64
Getting buildinfo from server and store to /home/henrich/home:darix:workshop/librelp-01-base/.osc/_buildinfo-openSUSE_13.1-x86_64.xml
Getting buildconfig from server and store to /home/henrich/home:darix:workshop/librelp-01-base/.osc/_buildconfig-openSUSE_13.1-x86_64
Updating cache of required packages
 
The build root needs packages from project 'openSUSE:13.1'.
Note that malicious packages can compromise the build result or even your system.
Would you like to ...
0 - quit (default)
1 - always trust packages from 'openSUSE:13.1'
2 - trust packages just this time
? 2
0.0% cache miss. 111/111 dependencies cached.
 
Verifying integrity of cached packages
using keys from openSUSE:13.1
Writing build configuration
Running build
root's password:
logging output to /var/tmp/build-root/openSUSE_13.1-x86_64/.build.log...
[    0s] Memory limit set to 3405340KB
[    0s] Using BUILD_ROOT=/var/tmp/build-root/openSUSE_13.1-x86_64
[    0s] Using BUILD_ARCH=x86_64:i686:i586:i486:i386
[    0s] 
[    0s] 
[    0s] linux-1xx3 started "build librelp.spec" at Mon May  5 13:02:02 UTC 2014.
[    0s] 
[    0s] 
[    0s] processing recipe /home/henrich/home:darix:workshop/librelp-01-base/librelp.spec ...
[    0s] running changelog2spec --target rpm --file /home/henrich/home:darix:workshop/librelp-01-base/librelp.spec
[    0s] init_buildsystem --configdir /usr/lib/build/configs --cachedir /var/cache/build --rpmlist /tmp/rpmlist.0R3aBQ /home/henrich/home:darix:workshop/librelp-01-base/librelp.spec ...
[    0s] reordering...cycle: libcrack2 -> cracklib
[    0s]   breaking dependency libcrack2 -> cracklib
[    0s] cycle: libtasn1-6 -> libtasn1
[    0s]   breaking dependency libtasn1-6 -> libtasn1
[    0s] done

うーん…?

henrich@linux-1xx3:/var/tmp/build-root/openSUSE_13.1-x86_64/installed-pkg> ls
aaa_base              fillup                libaudit1        libitm1          libtasn1-6         permissions
aaa_base-malloccheck  findutils             libblkid1        liblua5_1        libtasn1-devel     pkg-config
attr                  gawk                  libbz2-1         liblzma5         libtirpc1          post-build-checks
bash                  gcc                   libcap2          libmagic1        libtsan0           rpm
binutils              gcc48                 libcloog-isl4    libmount1        libustr-1_0-1      rpm-build
brp-check-suse        gettext-runtime-mini  libcrack2        libmpc3          libutempter0       rpmlint-Factory
brp-extract-appdata   gettext-tools-mini    libdb-4_8        libmpfr4         libuuid1           rpmlint-mini
build-compare         glibc                 libelf1          libncurses5      libz1              sed
build-mkbaselibs      glibc-devel           libffi4          libnettle-devel  libzio1            systemd-rpm-macros
bzip2                 glibc-locale          libgcc_s1        libnettle4       linux-glibc-devel  tar
coreutils             gmp-devel             libgdbm4         libp11-kit0      m4                 terminfo-base
cpio                  grep                  libgmp10         libpcre1         make               update-alternatives
cpp                   gzip                  libgmpxx4        libpopt0         net-tools          util-linux
cpp48                 info                  libgnutls-devel  libreadline6     p11-kit-devel      which
cracklib              insserv-compat        libgnutls28      libselinux1      pam                xz
diffutils             libacl1               libgomp1         libsemanage1     pam-modules        zlib-devel
file                  libasan0              libgssglue1      libsepol1        patch
file-magic            libatomic1            libhogweed2      libstdc++6       perl
filesystem            libattr1              libisl10         libtasn1         perl-base
 
henrich@linux-1xx3:/var/tmp/build-root/openSUSE_13.1-x86_64/installed-pkg> cat gcc48
gcc48-4.8.1_20130909-3.2.1 1380871479

あれ?別のパッケージをビルドしてみて、/var/tmp/build-root/openSUSE_13.1-x86_64/usr/include以下を見たら、ファイルが増えてるような…もしかして、最小限のchrootを作ってくれるのではなく、毎度使いまわすのか、これは。あまりうれしくないなぁ…

そして謎なのが、/var/tmp/build-root/openSUSE_13.1-x86_64/opt/testing 以下にファイルがあることですよ。なぜ/opt?

|-- bin
|   |-- checkbashisms
|   |-- dash
|   |-- desktop-file-validate
|   |-- python
|   `-- rpmlint

dashとかcheckbashismsとかがあるし、なぜここにもrpmlintがある?

カーネルイメージを作り直してみる

SWAP無効にしていたカーネルだとsnmpdがエラーログ吐きまくるぜと言われていたのがあったので、そちらを検証するために作業。 インストールガイドを参考に。

$ sudo apt-get install linux-source-3.2 kernel-package
$ tar xvf /usr/src/linux-source*
$ cd linux-source*
$ cp /boot/config-3.2.* ./.config
$ vi .config (で、SWAPのところだけ無効にして)
$ fakeroot make-kpkg --initrd --revision=1.0custome kernel_image (ガイドの--revision=custom.1.0だと無効と言われたような)
$ sudo dpkg -i ../linux-image-3.2*
$ sudo shutdown -r now

で、試したけどふつーに/proc/vmstatの下の項目が見えていて特にエラーを吐かなかったので、これ以上の深追いはいらないだろうとwontfixタグをつけました。

%{?_smp_flags} と同等のものがあるといい気がする

  • 一応/etc/pbuilderrcで DEBBUILDOPTS="-j4" などとすればいいのだけど、問題がいくつか。
    1. ビルドするユーザーが手で書かないといけない。
    2. 決め打ち
    3. そもそもその値は適切なのかどうか
  • pbuilder/cowbuilderで指定するよりも、ソース側でやったほうがいい?→でもそうするとソース側で色々対応しなければいけない気がする…これは手間。
  • となると、debhelperで対応するといいんじゃないか?
  • 新規バージョンでビルドすると自動的にsmpなフラグを立ててビルド、それで失敗するようであれば、debian/rulesに明示的にdisableにする記述する

debhelperにハックすればいい、という結論だ。

$ expr 1 + `grep ^processor /proc/cpuinfo |tail -n1|cut -d':' -f2|sed -e s/\ //`

コア数自体は上記で簡単にとれるんだけど。