トップ «前の日記(2011-08-19(Fri)) 最新 次の日記(2011-08-23(Tue))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2011-08-22(Mon) 涼しい朝から、暑い昼へ

tcpdump-4.2.0rc1

LFSにインストールしようとあれこれ。libpcap-1.2.0rc1 は問題なしだった。

$ make
gcc -O2 -DHAVE_CONFIG_H  -I./missing  -D_U_="__attribute__((unused))" \
 -I. -I/usr/include  -I/usr/include -I./missing -DINET6 -g -O2 \
 -c ./print-ppi.c
./print-ppi.c:16:17: fatal error: ppi.h: No such file or directory
compilation terminated.
make: *** [print-ppi.o] Error 1

./print-ppi.c の当該部分は、

    15  #include "extract.h"
    16  #include "ppi.h"
    17
    18  #ifdef DLT_PPI

"ppi.h" なんてソースツリーには見当たらない。tcpdump-4.1.1 は特に考えることもなくビルドできた。

適当にぐぐっていると、なんと githubが。
そこからppi.hを貰うとできた。でも、流石にmake install する気にはなれなかった。

hping3-20051105

を、LFSにも入れてみた。その前にSqueeze。

Debian Squeeze にあることを知らず、すぐには通らないビルドで あーだこーだしていた。
適当に あちら こちらと、 ぐぐったりなんだりしてビルドが通るようになった頃、 既にパッケージがあることが分かった。
ソースパッケージをダウンロードして、diff と睨めっこ。
ビルドが通るだけなら、変更は3,4箇所ほど。

まず、"<net/bpf.h>"は要らないらしい。
エンディアンを区別する定義部分で、x86_64向けの設定がなかった。
そしてtclのライブラリをリンクするが、/usr/lib/libtcl8.4.so.0 を 見つけられなかった。末尾の".0"がひっかかるらしく、"libtcl8.4.so" というシンボリックリンクを作るとうまくいった(LFSには不要)。

$ diff -r hping3-20051105 hping3-new
diff -r hping3-20051105/bytesex.h hping3-new/bytesex.h
10a11
>       || defined(__amd64__) \
diff -r hping3-20051105/libpcap_stuff.c hping3-new/libpcap_stuff.c
20d19
< #include <net/bpf.h>
diff -r hping3-20051105/script.c hping3-new/script.c
27d26
< #include <net/bpf.h>

リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。