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

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

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

Ubuntu12.04LTSのqmail

Ubuntu12.04LTSにはqmailパッケージ(universe)が存在するので、旧来のqmail-srcパッケージ(multiverse)ではなく、 qmailを入れてみた。たぶん前者はnet-qmailで、後者はDJBのqmail+patchかな。

Ubuntu8.04LTSのqmail(qmail-srcからbuildしたもの)といくつかの違いがあって、はまっていたのでメモしておく。

Maildirを使う

/var/lib/qmail/control/defaultdelivery を以下の通り変更。

./Maildir/

再起動の方法

sysvinitでもupstartでもなく /usr/bin/qmailctl というのを使う(かなり悩んだ)。

#  qmailctl restart

 そんなの知らないよ、ほんとに。

ログの出力内容と場所

標準では /var/log/qmail に、独特のファイル名 & 独特のタイムスタンプでログを吐く。
@4000000050ec01243503ffa4 status: local 0/10 remote 1/20
@4000000050ec021b06849e04 delivery 84: success: 111.87.239.132_accepted_message./Remote_host_said:_250_Ok:_queued_as_F0C1216F/
@4000000050ec021b0685ab8c status: local 0/10 remote 0/20
@4000000050ec021b094ef904 end msg 2100129
こういう、一目で時刻が分からない、謎な形式は本当にやめて頂きたい。

あと、mail.logに吐いてもらった方が標準的で良いかと思い /var/lib/qmail/rc を以下の通り修正。

qmail-start “`cat /var/lib/qmail/control/defaultdelivery`” splogger qmail

すると、以下の通り、普通に出る。これなら読める。
Feb 18 20:05:01 host qmail: 1361185501.323090 status: local 0/10 remote 1/20
Feb 18 20:05:01 host qmail: 1361185501.494435 delivery 2: success: 111.87.239.132_accepted_message./Remote_host_said:_250_Ok:_queued_as_62FA0179/
Feb 18 20:05:01 host qmail: 1361185501.494581 status: local 0/10 remote 0/20
Feb 18 20:05:01 host qmail: 1361185501.494607 end msg 2097550
 (hostはhost名)
本当にqmailって変わってるよなあ。この機会にPostfixに乗り換えたい気持ちは大きかったけど、互換性の問題もあって、仕方なく入れたものの、すでに半分嫌になっているというところ。 

国家資格

もともと好奇心旺盛で、勉強するのが好きな方なので、色々と資格を取ってきた。

資格を取ったから、どうということはない。ただ、知識がないよりはある方がいいだろうとも思うので、結構な数の資格を持つに至ってしまった。

そのうち、国家資格とかに類するものは以下の通り。

  • 第二種情報処理技術者 1996/12/13 (通商産業大臣: 佐藤信二)
  • 第一種情報処理技術者 1998/7/3 (通商産業大臣: 堀内光雄)
  • テクニカルエンジニア(ネットワーク) 2004/12/16 (経済産業大臣臨時代理: 島村宣伸)
  • テクニカルエンジニア(情報セキュリティ) 2006/6/13 (経済産業大臣: 二階俊博)
  • 情報セキュリティアドミニストレータ 2006/12/11 (経済産業大臣: 甘利明)
  • テクニカルエンジニア(データベース)  2007/6/11 (経済産業大臣: 甘利明)
  • システムアナリスト 2008/12/15 (経済産業大臣: 二階俊博)
  • 技術士一次試験 2006/12/26 (文部科学大臣: 伊吹文明)

ちなみに父親も同業者であり、第一種情報処理技術者を持っているが、その合格証書に通産大臣「中曽根康弘」と書いてある。なかなかうらやましい。

最近合格していたら経済産業大臣「枝野幸男」だったみたいで、それなら欲しかったかもしれない。

こうしてまとめると、最近何にも合格してない。お金を払えば「技術士補(情報工学)」を名乗れるので、確定申告のついでにやってこようかな。