Ubuntu12.04LTSにfmlを入れる

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である以上たぶん大丈夫だろう。

というか、一からビルドした方が気楽かもしれない。パッケージシステムの意味がかなりない。さらに、これから地雷を踏みまくるのかもしれない。

後々、追記することになるかもしれません。

コメントを残す

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