top page > la vie en rose > here

Maxima on FreeBSD


概要

目的は,最新の Maxima を FreeBSD の ports として導入する方法を提示することです.

対象は次のようなものです.

  1. OS は FreeBSD の 8 系以降 (FreeBSD/i386, /pc98, /amd64)
  2. Maxima は 5.38.1 について例示します.

目次

1. 概説
2. 導入

1. 概説

Maxima は FreeBSD の ports/packages に収録されています. ports で言えば math/maxima にあります.

ソースは以下のところにあります.ここで歴代の version を確認することができます.

http://sourceforge.net/projects/maxima/files/Maxima-source

version up は,不定期ですが数ヵ月に一度のペースです. ここ 3 年ほどは下表のようになっております. (FreeBSD の ports になったものは右側に記します.)
    5.31.3 (2013.10.15)     ports (2013.11.21)
    5.32.0 (2013.12.25)
    5.32.1 (2014.1.2)
    5.33.0 (2014.4.5)
    5.34.0 (2014.8.27)
    5.34.1 (2014.9.8)
    5.35.1 (2014.12.13)     移植して bugzilla に送りましたが commit されませんでした.
    5.36.0 (2015.4.16)
    5.36.1 (2015.5.1)
    5.37.0 (2015.8.17)
    5.37.1 (2015.8.31)
    5.37.2 (2015.9.17)
    5.37.3 (2015.11.10)     ports (2016.3.1)
    5.38.0 (2016.4.3)
    5.38.1 (2016.5.12)      移植して bugzilla に送りました. → 2016.9.21 に commit されました.
    5.39.0 (2016.12.12)     ports (2017.4.8) [1]
    5.40.0 (2017.5.3)       移植して bugzilla に送りました. → 2017.8.18 に commit されました.
    5.41.0 (2017.10.3)      移植は未着手です.

一見して分かるように,ports が更新される頻度がかなり低いです.

そこで,以下に最新の Maxima を FreeBSD に ports として導入する方法を提示致します. ここで「ports として」とは,他の ports/packages と同等に FreeBSD の管理ツールを使うことができると言う意味です.

[1] これは私の貢献によるものではありません.
  私も移植を試みたのですが,work/maxima-5.39.0/doc/info/errormessages.texi から生じるエラーでお手上げ状態になりました.

新しい Makefile を見ると,この問題は次のようにして解決されていました.

.if ${OSVERSION} < 1100000
# The older makeinfo from the base fails in 10.3
BUILD_DEPENDS+= ${LOCALBASE}/bin/makeinfo:print/texinfo
CONFIGURE_ENV+= MAKEINFO="${LOCALBASE}/bin/makeinfo"
.endif

すなわち,makeinfo の方に問題があったのでした.

2. 導入

ある port を更新する方法の一般論は,maintain ports に提示しました. ここでは Maxima 特有の事項を述べます.

ソースは,以下のようにして download できます.

% fetch http://sourceforge.net/projects/maxima/files/Maxima-source/5.38.1-source/maxima-5.38.1.tar.gz

新しい Maxima を ports として導入するために必要な作業は,math/maxima の中の以下のファイルを修正することです.

ここで,

pkg-plist ですが,make makeplist で作成された pkg-plist.make を以下のように修正するだけです.

--- pkg-plist.make      2016-09-20 01:23:03.000000000 +0900
+++ pkg-plist   2016-09-19 23:16:28.000000000 +0900
@@ -1,15 +1,7 @@
-/you/have/to/check/what/makeplist/gives/you
 bin/maxima
 bin/rmaxima
 bin/xmaxima
-info/dir
-info/imaxima.info
 info/maxima-index.lisp
-info/maxima.info
-info/maxima.info-1
-info/maxima.info-2
-info/maxima.info-3
-info/xmaxima.info
 lib/maxima/%%PORTVERSION%%/%%BINDIR%%/%%MAXIMABIN%%
 libexec/maxima/%%PORTVERSION%%/mgnuplot
 man/man1/maxima.1.gz

bugzilla への報告にあたっては,四つのファイルの patch よりも math/maxima の tar ball を送る方が合理的です.

poudriere の出力 maxima-5.38.1_1.log は attachment の制限 1.2MB を大きく越えるので,圧縮します.

% gzip maxima-5.38.1_1.log

sbcl も更新するなら,先にそちらをやる必要があります. これは sbcl の version の違いだけが理由ではありません. 同一の sbclmake deinstall, make reinstall しただけで,maxima が動かなくなったこともありました. (この場合には maximamake し直したら動くようになりました.)