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である以上たぶん大丈夫だろう。
というか、一からビルドした方が気楽かもしれない。パッケージシステムの意味がかなりない。さらに、これから地雷を踏みまくるのかもしれない。
後々、追記することになるかもしれません。