亀山の「野良」OpenDX パッケージ置き場

わざわざリポジトリを作るまでもないと思うので、Debian GNU/Linux 12 (Bookworm) および 11 (Bullseye)、10 (Buster) 向けに亀山が作り直した OpenDX 関係の deb パッケージを置いておきます。

OpenDX を実行するのに最低限必要なもの。 この2つをダウンロード・インストールすれば使えます。

インストールするには、例えば以下のようにすればOK。
# apt install ./dx_4.4.4-15.1_amd64.deb ./libdx4_4.4.4-15.1_amd64.deb
以下はなくてもいいもの。

Debian の公式パッケージの OpenDX には、行儀よく (reset server してから) 終了させないと dxexec のプロセスが残ったままになってしまうという不便さ (バグか?) がある。 上の deb パッケージはこの不便さを解消させたものである。

やったこと

  1. 必要なパッケージのインストール。sudo apt-get install dpkg-dev devscripts quilt により、dpkg-dev と devscripts と quilt をインストール。
  2. ソースパッケージの入手。apt-get source dx とすると、リポジトリからソースパッケージがダウンロードされるとともに、コマンドを実行したディレクトリにパッケージ作成作業に使われる作業ディレクトリが作成され、ソースコードの展開からパッチ当てなどが行われる。
  3. パッケージに手を入れる。 修正は http://www.opendx.org/cgi-bin/forum/YaBB.pl?num=1176042404 (リンク切れ?) の通り。 具体的には
    $ cat 99_src_exec_dpexec_lex.patch
    Index: dx-4.4.4/src/exec/dpexec/lex.c
    ===================================================================
    --- dx-4.4.4.orig/src/exec/dpexec/lex.c
    +++ dx-4.4.4/src/exec/dpexec/lex.c
    @@ -504,7 +504,7 @@ int yylex(YYSTYPE *lvalp)
         for (;;)
         {
     	yyleng = 0;
    -
    +	errno  = 0;
     	c = input();
    
     	switch (c)
    
    にあるように、src/exec/dpexec/lex.c に1行追加するだけだが、それを quilt で管理させる。
    1. 作業ディレクトリに移動。
    2. quilt new 99_src_exec_dpexec_lex.patch としてパッチ名を設定。
    3. quilt add src/exec/dpexec/lex.c として変更されるファイルを宣言した後に、エディターで src/exec/dpexec/lex.c を開いて修正。
    4. quilt diff で内容を確認し、quilt refresh で修正の内容を 99_src_exec_dpexec_lex.patch に記録。
  4. dch -i で新しいリビジョンを追加とともに changelog を編集。
  5. パッケージのビルド。sudo apt-get build-dep dx としてビルド時に必要なパッケージをインストールする。そこでいよいよ debuild -uc -us -b とすれば、1つ上のディレクトリにバイナリパッケージができている。
あとはできたパッケージを dpkg -i なりでやっちゃえばOK。