MLは標準のmailmanで運用しようと思ったけど、どうもML用にサブドメインを切らないとうまくない様子。これだと、これまでのfmlとの互換性がいまいち。
仕方ないので、fmlを入れましょうか。
まあPerlスクリプトだし何とかなるだろう。よい子は真似してはいけないと思うけど、参考にする奇特な人もいるだろうからエントリにする。
まず、古いDebian(たぶんetch/4.0)からfmlパッケージ(4.0.3.dfsg-2)を持ってきて入れる。
インストールスクリプトが、なんか警告を吐いている
defined(%hash) is deprecated
けど、これは気にしない(後述)。
次に、[debian-users:55112]で武藤さんが作成されているパッチを宛てる。
— libkern.pl.old 2010-12-30 08:12:13.000000000 +0900+++ libkern.pl 2010-12-30 08:12:18.000000000 +0900@@ -616,8 +616,8 @@### Header Fields Extraction$s = $Envelope{‘Header’}.”\n”;– $* = 0; # match one line– if ($s =~ /^From\s+(\S+)/i) {+ # $* = 0; # match one line+ if ($s =~ /^From\s+(\S+)/is) {# XXX NO REACH HERE (1999/10/27 by fukachan)# $Envelope{‘UnixFrom’} = $UnixFrom = $1;$s =~ s/^From\s+.*//i;
で、先ほどの警告は、Perl5.12から出るようになったらしく、
if ( defined(%hash) ) {…}
みたいなコードがあれば出てしまう。これは単に以下のように書きなおす(definedを消すだけ)。
if ( %hash ) {…}
/usr/share/fml/makefmlでいきなり遭遇したので、diff -uしたものを貼っておく。
— makefml.orig 2013-02-19 18:05:20.619777999 +0900+++ makefml 2013-02-19 19:50:33.175776879 +0900@@ -6252,12 +6252,12 @@}if ((($] !~ /5\.\d\d\d/) &&– $key ne “_$package” && $key ne “_DB” && defined %entry+ $key ne “_$package” && $key ne “_DB” && %entry)||(($] =~ /5\.\d\d\d/) &&$key ne “$package::” && $key ne “DB::” &&– (defined %entry) &&+ (%entry) &&($dumpPackages || $key !~ /::$/)&& ($key !~ /^_</ || $dumpDBFiles)&& !($package eq “dumpvar” && $key eq “stab”)
まあ、こういう感じで直していけば良い。
その他、こういう警告も出ている。
Legacy library getopts.pl will be removed from the Perl core distribution in the next major release. Please install the separate libperl4-corelibs-perl package. It is being used at /usr/share/fml/makefml, line 139.
「next major release」までは動くと言っているのだから、Ubuntu12である以上たぶん大丈夫だろう。
というか、一からビルドした方が気楽かもしれない。パッケージシステムの意味がかなりない。さらに、これから地雷を踏みまくるのかもしれない。
後々、追記することになるかもしれません。