====== WITH_CHARSET, WITH_XCHARSETを指定するのは止めにしよう ======
FreeBSDでPrtsからPortsからMySQL/MariaDBを入れる際、よく指定されるオプションに''WITH_CHARSET'', ''WITH_XCHARSET''がある。調べてみたら、なんとmysql55で廃止されていた。
今まで盲目的に指定していたのだけど、なんとなく気になってググってみても、これぞという解説が見当たらない謎オプション。とりあえずFreeBSD Ports独自のオプションで、日本以外での使用例は殆どない。やむなくportsの更新履歴や8-RELEASE以前の古いportsツリーをあさってみると、mysql51-serverのportsのMakefile(MySQLそのもののMakefileじゃないよ)には以下の記述があるが、mysql55-serverからは消えているという事実が判明。MariaDBはMySQL 5.5からのフォークなので言わずもがなである。
.if defined(WITH_CHARSET) && ${WITH_CHARSET} != ""
CONFIGURE_ARGS+=--with-charset=${WITH_CHARSET}
.endif
.if defined(WITH_XCHARSET) && ${WITH_XCHARSET} != ""
CONFIGURE_ARGS+=--with-extra-charsets=${WITH_XCHARSET}
.endif
御覧の通り、portsの''WITH_CHARSET'', ''WITH_XCHARSET''オプションは、それぞれMySQLの''--with-charset'', ''--with-extra-charsets''オプションに対応している。そして、MySQL 5.5からは''--with-charset''自体が消えてるっぽい。似た所で''--extra-charsets''ってのはあるみたいだけど。そして''--with-extra-charsets''の方も[[https://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_with_extra_charsets|デフォルト値がall]]となったため、ports側から敢えて指定する必要がなくなり、オプションが削除されたのだと思われる。
''WITH_CHARSET'', ''WITH_XCHARSET''オプションは、2001年1月25日にmysql323-serverに対する追加が初出のようだ。その時のコミットメッセージは「Add options for alternate charsets (WITH_CHARSET and WITH_XCHARSET).」といったもの。
というわけで、MySQL/MariaDBインストールでWITH_CHARSET, WITH_XCHARSETを付けるのはもう止めよう!
===== 参考サイト =====
* [[https://www.freshports.org/databases/mysql323-server/?page=2|FreshPorts -- databases/mysql323-server]]
* [[https://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.htmlMySQL :: MySQL 5.5 Reference Manual :: 2.9.4 MySQL Source-Configuration Options]]
* [[http://d.hatena.ne.jp/mir/20070703/p1|configure --with-extra-charsetsについて - mir the developer]]