2024/06/21(金)OpenLDAP 2.6.8 では、Cyrus-SASL 抜きの構築は出来ない
2024/06/21 16:53
OpenLDAP をソースコードから構築する場合、configure で指定するオプションに --without-cyrus-sasl を指定して、Cyrus-SASL のサポートを外すことが出来ます。
ところが、こうすると、 OpenLDAP 2.6.8 では、途中で下記のエラーを吐いて構築不能になるのです:
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_host_connected_to' failed: symbol not definedこれは、Cyrus-SASL をインストールし、更に --without-cyrus-sasl のオプションを外さないとエラーが取れない。
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_int_sasl_config' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_int_sasl_get_option' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_int_sasl_open' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_int_sasl_set_option' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_cbinding' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_cbinding_parse' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_install' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_mutex_dispose' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_mutex_lock' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_mutex_new' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_mutex_unlock' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_remove' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_secprops' failed: symbol not defined
ld: error: version script assignment of 'OPENLDAP_2.200' to symbol 'ldap_pvt_sasl_secprops_unparse' failed: symbol not defined
cc: error: linker command failed with exit code 1 (use -v to see invocation)
弊社の使用形態では Cyrus-SASL は使わないため、このオプションは必須の形で指定していたが、嫌でも Cyrus-SASL をインストールし、サポートさせないといけない状態に…
このバージョンだけの問題なのか、本来は Cyrus-SASL と OpenLDAP はセットで使う仕様であるので、今後の強制的な方針なのかは判りません。
メンテナンス・運用管理の観点からは、出来る限り余計なものは入れたくないんだけどね・・・
2024/06/20(木)FreeBSD 13.3R で dovecot 2.3.21 はそのまま構築できない
2024/06/21 16:36
FreeBSD 13.3 では、clang が Ver 17 になった影響か、dovecot 2.3.21 ではこんな感じで、コンパイルエラーになる:
test-mail-index-transaction-update.c:633:14: warning: comparison of function 'timezone' equal to a null pointer is always false [-Wtautological-pointer-compare] 633 | test_assert(timezone == 0); | ^~~~~~~~ ~ ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' 20 | if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ | ^~~~ test-mail-index-transaction-update.c:633:14: note: prefix with the address-of operator to silence this warning 633 | test_assert(timezone == 0); | ^ | & ../../src/lib-test/test-common.h:20:8: note: expanded from macro 'test_assert' 20 | if (!(code)) test_assert_failed(#code, __FILE__, __LINE__); \ | ^ test-mail-index-transaction-update.c:648:42: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] 648 | hdr.day_stamp = tests[i].old_day_stamp + timezone; | ^ ~~~~~~~~ test-mail-index-transaction-update.c:648:17: error: incompatible pointer to integer conversion assigning to 'uint32_t' (aka 'unsigned int') from 'char *(*)(int, int)' [-Wint-conversion] 648 | hdr.day_stamp = tests[i].old_day_stamp + timezone; | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test-mail-index-transaction-update.c:650:49: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] 650 | mail_index_update_day_headers(t, tests[i].now + timezone); | ^ ~~~~~~~~ test-mail-index-transaction-update.c:650:36: error: incompatible pointer to integer conversion passing 'char *(*)(int, int)' to parameter of type 'time_t' (aka 'long') [-Wint-conversion] 650 | mail_index_update_day_headers(t, tests[i].now + timezone); | ^~~~~~~~~~~~~~~~~~~~~~~ ./mail-index-transaction-private.h:127:77: note: passing argument to parameter 'day_stamp' here 127 | void mail_index_update_day_headers(struct mail_index_transaction *t, time_t day_stamp); | ^ test-mail-index-transaction-update.c:654:63: warning: arithmetic on a pointer to the function type 'char *(int, int)' is a GNU extension [-Wgnu-pointer-arith] 654 | test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); | ^ ~~~~~~~~ ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx' 26 | if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \ | ^~~~ test-mail-index-transaction-update.c:654:37: warning: comparison between pointer and integer ('uint32_t' (aka 'unsigned int') and 'char *(*)(int, int)') [-Wpointer-integer-compare] 654 | test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); | ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/lib-test/test-common.h:26:9: note: expanded from macro 'test_assert_idx' 26 | if (!(code)) test_assert_failed_idx(#code, __FILE__, __LINE__, i); \ | ^~~~ 5 warnings and 2 errors generated. gmake[3]: *** [Makefile:916: test-mail-index-transaction-update.o] エラー 1 gmake[3]: ディレクトリ '/usr/local/src/dovecot-2.3.21/src/lib-index' から出ます gmake[2]: *** [Makefile:573: all-recursive] エラー 1 gmake[2]: ディレクトリ '/usr/local/src/dovecot-2.3.21/src' から出ます gmake[1]: *** [Makefile:704: all-recursive] エラー 1 gmake[1]: ディレクトリ '/usr/local/src/dovecot-2.3.21' から出ます gmake: *** [Makefile:548: all] エラー 2軒並み、timezone 絡みのようで、この件に関するパッチが3つ公開されています:
その1 https://github.com/dovecot/core/commit/e983ead775671186b3c8567d59973d2e52b678c7
その2 https://github.com/dovecot/core/commit/1a7b1f66fe4b86cb642dbcfe5a0192c1b77d0e17
その3 https://github.com/dovecot/core/commit/867a37fa7b74f798a931fb582214b5377f57610e
〔その1 src/lib/ioloop-notify-kqueue.c を修正〕
@@ -11,6 +11,7 @@ | |||
11 | 11 | ||
12 | 12 | #include "ioloop-private.h" | |
13 | 13 | #include "llist.h" | |
14 | + | #include "time-util.h" | |
14 | 15 | #include <unistd.h> | |
15 | 16 | #include <fcntl.h> | |
16 | 17 | #include <sys/types.h> |
〔その2 src/lib-index/test-mail-index-transaction-update.c を修正〕
@@ -6,6 +6,7 @@ | ||||
6 | 6 | #include "test-common.h" | ||
7 | 7 | #include "mail-index-private.h" | ||
8 | 8 | #include "mail-index-transaction-private.h" | ||
9 | + | #include "utc-offset.h" | ||
9 | 10 | |||
10 | 11 | #include <time.h> | ||
11 | 12 | |||
@@ -630,7 +631,9 @@ | ||||
630 | 631 | |||
631 | 632 | /* daylight savings times were confusing these tests, so we'll now | ||
632 | 633 | just assume that TZ=UTC */ | ||
633 | - | test_assert(timezone == 0); | ||
634 | + | time_t now = time(NULL); | ||
635 | + | struct tm *local_time = localtime(&now); | ||
636 | + | test_assert(utc_offset(local_time, now) == 0); | ||
634 | 637 | |||
635 | 638 | hdr.messages_count = 10; | ||
636 | 639 | t = mail_index_transaction_new(); |
〔その3 src/lib-index/test-mail-index-transaction-update.c を修正〕
@@ -648,13 +648,13 @@ | ||||
648 | 648 | i_zero(&hdr); | ||
649 | 649 | for (j = 0; j < N_ELEMENTS(hdr.day_first_uid); j++) | ||
650 | 650 | hdr.day_first_uid[j] = 8-j; | ||
651 | - | hdr.day_stamp = tests[i].old_day_stamp + timezone; | ||
651 | + | hdr.day_stamp = tests[i].old_day_stamp; | ||
652 | 652 | memcpy(t->post_hdr_change, &hdr, sizeof(hdr)); | ||
653 | - | mail_index_update_day_headers(t, tests[i].now + timezone); | ||
653 | + | mail_index_update_day_headers(t, tests[i].now); | ||
654 | 654 | |||
655 | 655 | struct mail_index_header new_hdr; | ||
656 | 656 | memcpy(&new_hdr, t->post_hdr_change, sizeof(new_hdr)); | ||
657 | - | test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp + timezone, i); | ||
657 | + | test_assert_idx(new_hdr.day_stamp == tests[i].new_day_stamp, i); | ||
658 | 658 | test_assert_idx(memcmp(new_hdr.day_first_uid, | ||
659 | 659 | tests[i].new_day_first_uid, | ||
660 | 660 | sizeof(uint32_t) * 8) == 0, i); |
これらのパッチを手動で当て、いつもの手順でコンパイルすることで、いくつか Warning が出るものの、通常通りの使用可能となるようです。
バージョンアップで、この不具合が解消されることを期待したいところ。
2024/01/13(土)危うく騙されそうになった、、
2024/01/13 6:03
EXPIRATION REMINDER当該ドメインがレジストリ的に有効期限切れで使用不能になった、みたいな通知だが、
This notice is to bring to your notice that your domain invoice number
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn is OVERDUE. example.com to be due
in 12 January 2024 is SUSPENDED.
The contact currently listed is xxxxxxxxx xxxxxxxxx.
RENEW example.comT
https://csschecker.com/cart/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
EXPIRATION:
12 JANUARY 2024
DISCLAIMER NOTICE:
We can not be held legally accountable for any claims, damage or
suffering that you may incur owing to the expiration of
example.com. Any such damages may include but are not solely
limited to: sales losses, lost files without backups, loss of results
in search rankings, lost appointments, undeliverable email and any
other business, service or technical damages that you may incur. For
further reference please refer to section 22.l.3.g of our TOS
LIABILITY:
This is the final notice that we are required to send out with regards
to the expiration of example.com.
SECURE ONLINE RENEWAL
https://csschecker.com/cart/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
Unable to click the link? Copy and Paste this into your browser:
HTTPS://CSSCHECKER.COM/CART/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
All web services will be restored automatically on example.com upon
receipt of payment. We thank you for your cooperation and continued
business.
ALERT SENT ON JANUARY 12 2024
The contents of this email are strictly confidential.
2ヶ月くらい前に自動更新したばかりで、whois で確認してもドメインステータスには問題は無さそう。
恐らく、ドメイン更新料金を騙し取ろうとしているのだろう。
ドメインレジストラ業者でないと、入手できない個人情報を使っているので、たちが悪い。
今後、こういうのには注意が必要である。皆さまもご注意ください。