CyrusSASLのビルドに手間ひま

Berkeley DB を、それまでの 4.X.X から 5.2.28 にあげたところ、CyrusSASL も対応していなかった。
Gentoo にてパッチがあがっている。
https://bugs.gentoo.org/attachment.cgi?id=249599&action=diff

ただし CyrusSASL-2.1.23 は、そのパッチのようなソースになっていない。
Gentoo のパッチは CyrusSASL のいくつのマイナー/リビジョン番号に対するものなのか、読み取れない。

CyrusSASL をビルドしてみたら、該当箇所が分かったので、自分でパッチを作る。
WITH_DES のところは、かつてうまくいかなかった際に、どこぞのページから情報ゲットして自作成していたもの。
よくよく BLFS を読んだら、BLFS では sed コマンドで簡単に対処していた。patch とする方が適切であろう。

diff -Naur cyrus-sasl-2.1.23.orig/plugins/digestmd5.c cyrus-sasl-2.1.23/plugins/digestmd5.c
--- cyrus-sasl-2.1.23.orig/plugins/digestmd5.c  2009-04-29 00:09:17.000000000 +0900
+++ cyrus-sasl-2.1.23/plugins/digestmd5.c       2011-08-21 00:28:54.977661677 +0900
@@ -2715,7 +2715,7 @@
        "DIGEST-MD5",                   /* mech_name */
 #ifdef WITH_RC4
        128,                            /* max_ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
        112,
 #else
        1,
@@ -4034,7 +4034,7 @@
        "DIGEST-MD5",
 #ifdef WITH_RC4                                /* mech_name */
        128,                            /* max ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
        112,
 #else
        1,
diff -Naur cyrus-sasl-2.1.23.orig/sasldb/db_berkeley.c cyrus-sasl-2.1.23/sasldb/db_berkeley.c
--- cyrus-sasl-2.1.23.orig/sasldb/db_berkeley.c 2009-04-29 00:09:18.000000000 +0900
+++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c      2011-08-21 00:29:30.521687291 +0900
@@ -100,7 +100,7 @@
     ret = db_create(mbdb, NULL, 0);
     if (ret == 0 && *mbdb != NULL)
     {
-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
+#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
        ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
 #else
        ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
diff -Naur cyrus-sasl-2.1.23.orig/utils/dbconverter-2.c cyrus-sasl-2.1.23/utils/dbconverter-2.c
--- cyrus-sasl-2.1.23.orig/utils/dbconverter-2.c        2003-02-14 04:56:17.000000000 +0900
+++ cyrus-sasl-2.1.23/utils/dbconverter-2.c     2011-08-21 00:28:54.985663356 +0900
@@ -214,7 +214,7 @@
     ret = db_create(mbdb, NULL, 0);
     if (ret == 0 && *mbdb != NULL)
     {
-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
+#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
        ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
 #else
        ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);

これが果たして正しいのか、十分なのか、まったく不明。
CyrusSASLのアップストリームか、BLFSの担当各位が、早く確かな情報を出して欲しいな。

カテゴリー: LFS パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です