tsharkをbuildする
参考
1. ソースを取得する。
gitからとってきた方がいい気もするが、今回は公式が配布しているソースコードを取得した。
tar.xzは-xJfオプションで解凍できるらしい。
code: source downloads
$ tar -xJf wireshark-2.6.6.tar.xz
2. buildする
configure のオプションは適当に-helpから選んだ。
code: configure
$ ./configure --enable-wireshark=no --enable-tshark=yes
GnuTLS >= 3.1.10 not found
checking for LIBGNUTLS... no
GnuTLS >= 2.12.0, < 3.0 not found
GnuTLS with compatible license not found, disabling SSL decryption
checking for libgcrypt-config... no
checking for LIBGCRYPT - version >= 1.4.2... no
configure: error: libgcrypt not installed for development; install libgcrypt, including any development package, for your system
このあと、configureとmakeはうまくいったけど、make installした後のバイナリ実行してみてもlibのリンクがうまく通ってなくてうまいこと動かせなかった。ので、この辺り得意な人に聞いてみたところ配布packageにpatch当ててみたら?とのことで、配布パッケージにpatchを当てる方法に変更。
4. tsharkの配布パッケージにパッチを当てる。
まずはパッケージのソースをダウンロード
code: download src package
apt source tshark
次にパッチを当てる。場所はwireshark-2.6.5-1/debian/patches 以下。
まずはパッチのファイルを作る。patches/seriesをみてみると、17_〜〜までがリストされてたので、18_〜〜でファイル名にする。
code: 18_bolt11_message.patch
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -60,7 +60,7 @@ extern "C" {
WS_DLL_PUBLIC int hf_text_only;
/** the maximum length of a protocol field string representation */
-#define ITEM_LABEL_LENGTH 240
+#define ITEM_LABEL_LENGTH 10000
#define ITEM_LABEL_UNKNOWN_STR "Unknown" 次は、このpatchを適用したパッケージを作る。まずはpackageビルドに必要なツールをインストール
code: install devscripts
$ sudo apt install devscripts
で、debuildを叩けばいいんだけど、これだけだとうまく行かず、makeに必要なlibを入れないといけない。今回はpackage配布物のrepackageなので、次のコマンドで依存libは簡単に入れることができる。
code: install dependency libs
$ sudo apt build-dep tshark
libいれたのでdebuild 。この時にsignなしのoptionをつける。
code: run debuild
$ debuild -uc -us -b
ビルド長い。。。。ビルドが無事終了したら、ソースディレクトリの1つ上にpackageファイル(.deb)が生成されるのでそれをインストールする。
5. patchを当てたtsharkをインストールする
code: install
$ sudo apt install tshark_2.6.5-1~ubuntu18.04.0_amd64.deb
rebuildしていた作業ディレクトリの1つ上で上記コマンドを発行すればOKです。